Cloud Computing vs. Virtualization
June 29, 2009 5 Comments
Twice this past week I had someone ask me to explain the differences between virtualization and cloud computing. I answered them both in overly drawn-out ways. But kept pondering the question in hopes of coming up with a more succinct answer. Here it goes…
Cloud Computing is a mechanism, an approach, for the delivery of services. Virtualization is one possible service that could be delivered. However, like most services, virtualization can be delivered via mechanisms other than cloud computing.
Yeah, I know it sounds like a marketing sound bite. But its short and I believe gets the point across. How I came down to this involved revisiting my What is Cloud Computing blog post from last May and comparing that to the solutions offered currently.
NIST – On-demand self-service, Ubiquitous network access (internet standards based), location independent resource pooling, rapid elasticity, and measure/metered service
Gartner – service-based, scalable and elastic, shared, metered by use, and uses internet technologies
Pretty similar on the whole. Now for Virtualization. From Wikipedia:
Desktop virtualization is the use of virtual machines to let multiple network subscribers maintain individualized desktops on a single, centrally located computer or server. The central machine may be at a residence, business or data center. Users may be geographically scattered but are all connected to the central machine by a proprietary local area network (LAN) or wide area network (WAN) or the Internet.
Where my thoughts took me
As I pondered how to really help clarify the differences, I was troubled. Many cloud solutions, both public and private, leverage virtualization to deliver their functionality. Amazon’s EC2 is all about virtualized infrastructure. Microsoft’s Windows Azure uses virtual instances of a customized version of Windows Server. Its no wonder that folks were confused.
I opted to focus on what was being delivered, what was the service being provided. If I virtualized a server, it wouldn’t have the bulk of the attributes listed by NIST or Gartner. Its just a box sitting out there on a network that I can access remotely. Its not inherently scalable or elastic. Its use is not metered, and it only lives where I have it running.
However, various services do allow me to create virtualized resources. And these services do demonstrate the various attributes of Cloud Computing. So while Virtualization may be both a means to deliver cloud computing and a solution delivered by it, virtualization is not inherently, in and of itself, a cloud computing solution.
Short and sweet
So there we have it. A simple way to explain the difference and hopefully help clarify some of the confusion that is out there. Its a major simplification of course. There are different types of clouds just like there are different types of cloud computing solutions. But I do believe this is a simple enough definition to act as a starting point.