In recent press releases, we have been besieged with new jargon such as cloud computing, software as a service (SaaS), and just recently, virtual machine (VM) systems. This article describes each of the three and explains how they are used collectively for good economic and good business sense. It ties together the components permitting the term "cloud computing" to be clearly understood as a vehicle for application delivery.
Cloud computing is the migration of applications, storage, and other IT resources from desktops and company data centers to massive, often scattered server farms. These server farms, operated by third-party providers, are accessible by users over the "Internet cloud," thus giving rise to the name cloud computing.
Global business entities today are more connected via the Internet than by dedicated lines. The Internet by nature is a spider web of interconnected nodes. Between Internet gateways (your service provider) to another gateway, multiple paths are available. Failure of one path does not stop access, as an alternate connection will be dynamically made via another node. One perspective considers the multiplicity of available paths—connections via the Internet—cloud connections. Cloud communications are reliable, and current communication speeds are more than sufficient for supporting real-time business activities.
New manufacturing processes have introduced relatively low-cost, high performance computer hardware technology to the extent that these systems have excess computing capability in regular business environments. The compute portion of the hardware goes beyond the needs of current IT applications, as only a small percentage of the central processing unit (CPU) capability is actually used. The result is that for the bulk of the time, the computer is waiting for data entry or disk activity. Coupled with this newer technology is the availability of reliable fast large storage disks in the 500 gigabyte range. Large data stores using this disk technology are becoming common.
The coming together of the high-speed global network connectivity, powerful low-cost computers with large memory capacities, and fast processors, leads to a whole new paradigm in the supply of many business services.
Progress of VM
In the 1960s, IBM introduced a mainframe system called VM, tailored to software development. This virtual memory system allowed the spare computer capacity to be redeployed. At the time it was a success for the software development companies, as they could produce more products without requiring costly hardware upgrades. IBM's VM introduced the concept of mini-disks for a developer's needs, and large storage drives for guest operating systems. The ubiquitous personal computer (PC) killed the need for the VM system, and IBM's VM gradually faded from use.
Recently, due to the low-cost availability of high-performance computer hardware, the 1960s VM concept has returned. VM systems have proved to be very cost-effective in implementation and in extending the VM concept beyond what was available in the past. A virtual machine has two major components. The first one is a computer system with ample compute power, memory, and the architecture to support virtualization.
The second component of a virtual machine is the hypervisor program that emulates in software, the computer system similar to the one on which it resides. The emulation is multitasking and allows several emulated hardware systems to be executing concurrently. Because the VM may be configured with more or less processing memory than the physical machine on which it resides, it is possible for application vendors to build and deliver a standard VM configuration. This configuration is stored as a sequential file. From the application vendor perspective, all its VM clients have identically sized and configured logical machines—a new form of appliance. All clients with the same contract conditions get a copy of the same sequential "flat" file.
When any of the virtual application systems (see figure 1) requires disk I/O or network I/O to be performed, the hypervisor does it on the application's behalf. As far as the virtual system application is concerned, it sees itself as executing directly on the real computer.
Figure 1. Virtual machine layout.
Virtual Machine Benefits
For large enterprise resource planning (ERP) applications that do not require intensive CPU cycles, the VM approach is ideal.
Virtualization has allowed anywhere from two to 10 times reduction in the number of hardware servers in a park of computers. Some IT vendors have seen reductions from 1,000 individual computers to 10 powerful ones, with corresponding savings in floor space, wiring, electrical consumption, licensing, and staff. VM allows IT departments to go "green."
Another benefit, somewhat related, is in the application of patches to the operating system or business application. A VM with the application is started, the patches applied and thoroughly tested. If all is well, the new version is saved, replacing the current production version flat file.
Virtual Machine Appliance
A virtual appliance is a virtual machine image that consists of an application and an integrated operating system (OS). A customer-created virtual machine would normally consist of an OS such as Windows, Unix, or Linux, on top of which is installed one or more related applications. With a virtual machine, the user is responsible for managing and installing the OS, whereas with a virtual appliance, the ERP vendor delivers the entire stack of OS and applications as a single, preinstalled and preconfigured unit to the customer.
How Does a VM Do What It Does?
Every computer program consists of three parts: a set of read-only instructions to be executed; read-only constant data for headers, titles, form layouts, etc.; and the remaining part, dynamic memory, used for buffers to hold data for reading, storing or writing. The VM system also knows that if the same program is loaded from the same file for another virtual machine, only one copy of the read-only memory need be loaded. The references to the read-only data from the second copy will be redirected to the first, resulting in reduced memory consumption.
A VM system administrator allocates a virtual machine slot (see figure1) and allocates the disks and networking for the application. In the virtual slot, an operating system is booted and an application is installed. At the ERP vendor or software packager, just before the application is ready for its first transaction, the entire virtual machine is saved to disk as a sequential (flat) file. What is in the flat file is the operating system and application that are ready to run.
Product Offering in the Cloud
Suppose an ERP vendor provides system-hosting for clients with similar needs. When a client needs access to its ERP system, it initiates its VM system. The hypervisor assigns a slot and reads the flat file, previously created. About 10 seconds later, control is passed to the active application in the slot.
In a similar manner, when a second client needs its ERP system, the hypervisor assigns another slot from the pool of slots, reads the same flat file, and transfers control to that application. As mentioned above, the read-only code is shared between VM machines, leading to fast startup times.
Smart code in the hypervisor recognizes that the second slot's read-only memory data is identical to the first system's, and instead of loading it into memory and wasting space, the hypervisor just points the application to the first copy. The same process repeats up to the number of available VM slots.
Benefits of VM systems
If one of the VM slot applications is hit with a virus, that virus cannot be transferred to another VM. The way to eliminate the virus is to start a duplicate VM, transfer over the application, and shut down the infected machine. Poof! With the shut down, the virus has disappeared into nowhere, and generally, with no loss of productivity as a result.
Many applications are only needed for a few hours per day. If on a VM, that application can be started and available within 10 seconds. Typically, part-time SaaS applications are used for human capital management (HR). Other applications, such as business intelligence (BI), customer relationship management (CRM), and applications with similar characteristics, fall into the part-time SaaS application category.
The Cloud and Its Relationship to SaaS
Cloud computing is a new IT service, and it provides multiple gigabytes of disk storage. Storage is made available in a computer system that can be reached via the networking "cloud." Thus, a hosting service setup with a new set of best-of-breed SaaS applications (BI, HR, payroll, and others) will exist, available via the Internet. Some of these applications rely on large quantities of storage for statistical analysis or for archival. Other applications such as Human Capital Management applications require smaller amounts of storage, such as an SMB that has preferred to not to host this application. In either case, it is rare that that data files will be returned to the client.
The plus side of cloud computing is that the cloud vendor can provide either a VM environment or data storage, or both. With conventional file systems (NTFS for Microsoft, EXT3 for Linux), large files on large disks require a long time to restore. New technologies for file systems have been developed after one research site with a very large quantity of data required a solid week of 24/7 processing for recovery. Modern businesses cannot afford to be off line for more than a few hours. Because cloud computing storage is massive, backup and recovery of such large quantities of data have given rise to newer file system designs (LVM, Z64, Tru64) that support file sizes in petabytes (one quadrillion bytes, or 1,000 terabytes) and accommodate rapid backup and recovery.
The managing of archives, restoring, and performance-tuning for rapid access are the responsibility of the cloud vendors.
Data storage vendors make up the majority of cloud computing customers. This coupled with VM appliances, responsibility for the management of backups, database recovery, etc, is transferred to a third party. The bigger players here are EMC2, Amazon, and NetApp. Disks are not required to be in close proximity to the computers on which the applications run. In other words, we have the application on one VM and the file system provider at one or more remote systems.
Negative aspects of cloud computing, which concern many small to medium businesses (SMBs), are the answers to these questions: Where is my data? Who owns the data? Is it legal for the data to be stored offshore? Does it make financial sense? If the Internet is down, how do I continue doing business?
Vendors try to ease these fears by explaining that data stored in the cloud is inherently safer than data that inevitably ends up on scattered laptops, smartphones, and home PCs. Internet access can be made available with the same reliability as the business's connected telephone system.
If the SMB subscribes to a SaaS application such as CRM or HR, the SMB is restricted to interaction with the application. Most often, the SMB does not have the ability to download data. Therefore, while the SMB may own the data, he the client, cannot import it to its site.
Some consider Citrix, a thin client interface, as a way to economize computer memory and provide controlled access to an application. The comparison with Citrix to VM is as follows: Citrix offers virtual terminals such that all Citrix terminals reside in one name space (internal to one VM), and if there is a crash of one Citrix terminal can bring down all the others. In the VM environment, if a VM slot crashes, only that one VM crashes, and time it takes to return it online can be as short as 10 seconds. If the VM hypervisor crashes, it is equivalent to each VM slot crashing. At this time, there is no production VM system that runs under a VM system.
Some Closing Remarks
I have touched only the surface as to what VM operation is. Complete books can be written as new applications take advantage of new methods of delivery. Main deliverers of VM operating systems include Linux vendors (RedHat and Novell, for example), and Microsoft and VM-ware.