Conjuring Clouds

Much of the popularity of cloud computing is owed to a technology known as virtualization. A host computer runs an application known as a hypervisor; this creates one or more virtual machines, which simulate real computers so faithfully that the simulations can run any software, from operating systems to end-user applications. The software “thinks” it has access to a processor, network, and disk drive, just as if it had a real computer all to itself. The hypervisor retains ultimate control, however, and can pause, erase, or create new virtual machines at any time. Virtualization means that e-mail, Web, or file servers (or anything else) can be conjured up as soon as they’re needed; when the need is gone, they can be wiped from existence, freeing the host computer to run a different virtual machine for another user. Coupled with management software and vast data centers, this technology allows cloud providers to reap massive economies of scale. And it gives cloud users access to as much computing power as they want, whenever they want it.

The dream of on-demand computing–a “utility” that can bring processing power into homes as readily as electricity or water–arose as soon as computers became capable of multitasking between different users. But early attempts to create this capacity were too restrictive–for example, limiting users to a particular operating system or set of applications. With virtualization, a user can write applications from scratch, using practically any operating system. And users don’t have to write their own applications: cloud providers, and companies that partner with them, can offer and customize a variety of sophisticated services layered on top of the basic virtual machines. This means that developers interested in, say, rolling out a new social-networking website don’t need to design and deploy their own supporting database or Web servers. By allowing users and developers to choose exactly how much they want in the way of computing power and supporting services, cloud computing could transform the economics of the IT and software industries, and it could create a whole raft of new online services (see “Virtual Computers, Real Money”).

“Cloud computing is a reincarnation of the computing utility of the 1960s but is substantially more flexible and larger scale than the [systems] of the past,” says Google executive and Internet pioneer Vint Cerf. The ability of virtualization and management software to shift computing capacity from one place to another, he says, “is one of the things that makes cloud computing so attractive.”

Virtualization technology dates backs to 1967, but for decades it was available only on mainframe systems. When data centers became common during the Internet boom of the 1990s, they were usually made up not of mainframes but of numerous inexpensive computers, often based on the x86 chips found in PCs worldwide. These computers had hardware idiosyncrasies that made virtualization difficult. While companies like VMware offered software solutions in the late 1990s, it wasn’t until 2005 that Intel (soon followed by its rival AMD) offered hardware support for virtualization on x86 systems, allowing virtual machines to run almost as fast as the host operating system.