Thursday, August 19, 2010

Is Virtualization the Same as Cloud Computing?




Turning to that modern oracle, Wikipedia, is helpful. Wikipedia doesn't provide a single definition for virtualization; instead, it defines (if you can call it that) various types of virtualization, e.g. hardware virtualization, virtual memory, storage virtualization, operating system-level virtualization, etc. Clicking through to Wiktionary for "virtualization" doesn't shed any additional light. But a careful reading of Wikipedia's coverage turns up two concepts repeatedly: simulation and abstraction.

Wikipedia does provide a definition for cloud computing: "Cloud computing is Internet-based computing, whereby shared resources, software, and information are provided to computers and other devices on demand, like the electricity grid." Not entirely adequate, but not bad.

The fact is, virtualization and cloud computing are related but entirely different concepts. Virtualization is simulation; the request fulfillment is in terms of a simulation -- make-believe that behaves like real. Several "make-believes" can be produced from one "real" -- often without significant impact in terms of performance, and at far lesser cost, hence the attraction of virtualization. Loosely speaking, anything can be virtualized -- memory, storage, operating system services, etc. The primary objective (and hence benefit) of virtualization is to "do more with less" and save on costs.

Cloud computing is something else entirely -- it is, literally, computing in the (Internet) cloud. Components that make up the application -- for example, application components, databases, external/real-time data feeds, etc. -- are typically dispersed across the Internet and made available in the form of services. A "cloud app" is then in effect an assembly of such cloud-based services. In turn these services may use virtualization, but that's only incidental. Internal clouds -- which are seeing in increasing prevalence -- are just that; mostly internal services, hosted internally within the organization. In that sense, internal clouds are an extension of classic SOA architecture. By "merely" dispersing these services across the internet, we begin to truly realize the benefits of SOA. Cloud computing allows us to not just "do more with less" -- it enables us to "do more," period.
Virtualization and cloud computing make a good team, but they complement rather than supplant each other. And they are not identical.