I don’t know why, but I am still surprised when I hear the following question. What’s the difference between virtualization and Cloud? To me, it’s like asking the question – What’s the difference between a hammer and carpentry? The latter is a comprehensive craft. The former is one of many tools used by the craftsmen who practice it.
Simple – right? So why does that question occur at all?
It occurs, in my opinion, for two reasons, one right and one not so right.
The first reason is that all of the server virtualization vendors of any significance are also introducing Cloud offerings to the market. So, people are naturally associating the two (and rightfully so, just like one would associate hammers and carpentry). The difference is, though, no one thinks hammers and carpentry are the same thing.
So, the not so right reason – There are Cloud computing laggards out there who would like us to think that virtualization and Cloud are similar because they have embraced virtualization technology and do not want to appear out of step. As a result, there is a ton of noise in the market that is very hard to sort through.
So, how do I suggest one sorts through this noise?
When faced with a potential Cloud solution, ask a few questions about it.
Does it help me provision and deploy virtual machines on demand? If the answer is no, I’d ask why are you even looking at it? But if the answer is yes, just deploying VMs on demand does not a Cloud make.
Does it enable the encapsulation and on demand deployment of multiple VMs as a single entity? If rather than managing VMs, you want to manage frequently used “appliances” that are comprised of multiple VMs (e.g. a specific app server, a specific messaging system and a specific database server), can you do it? If the answer is yes, you are on your way to a real Cloud solution.
Does it enable the encapsulation and on demand deployment of whole software stacks (e.g. LAMP, Ruby on Rails, .NET, etc.)? If the answer is yes, you are certainly in the Cloud.
But, do you want more? Does it enable encapsulation and on demand deployment of entire multi-tiered apps? If yes, you have a very powerful Cloud solution.
More? Does it enable the encapsulation of the apps along with everything they need to run – network, storage, infrastructure, configurations, policies, documentation, etc., etc., etc.? If yes, then you have the most complete Cloud solution of all.
So, you might sense a theme here – Encapsulation. Yes. Encapsulation is key, but it is only half of the story. Encapsulation itself results in many benefits, especially operational cost savings and decreased time to market. But encapsulation alone does not make a Cloud. It does not create portability. It does not create the ability, by itself, to deploy anywhere, any time.
What’s the second half of the story? Abstraction. Not only do the most comprehensive Cloud solutions have to provide unlimited granularity of encapsulation, but they must completely abstract what is encapsulated from the physical resources (machines) they run on, so that they can run anytime, anywhere there are available idle resources.
In short, you do not measure a Cloud solution by how it does virtualization. You measure it by the granularity of its encapsulation capabilities and its ability to abstract VMs, stacks, apps/services and entire data centers from the physical resources they run on.
So, what is the future of virtualization and where is it going in 2010?
Virtualization is going the way of the hammer. It will be a necessary commodity for the Cloud, just like the hammer is a necessary commodity for the carpenter.
Now, before all the virtualization vendors get their shorts in a knot and start screaming at me that I am implying that all virtualization is the same, I am not. I acknowledge that some have features others do not, some outperform others, etc. But, can you tell who the best carpenter is only by knowing what brand of hammer he uses?