Image via Wikipedia
As more and more people start taking Cloud Computing seriously, this question is bound to come up again and again. Part of the reason is lack of clarity on the subjects for new comers and a big part of the confusion is due to the marketing messages coming from both virtualization vendors and cloud computing vendors. Even though many cloud pundits have spoken about it many times in the cloud blogosphere, I thought I will revisit the topic again for the sake of our new friends.
While talking about the spat regarding public and private clouds, I talked about the topic briefly
In my opinion, tying virtualization to the idea of cloud computing itself is myopic. Even though virtualization plays a predominant role in most of the clouds, it is not the only way. Like Google, it is possible to build a cloud using commodity hardware and dumping a mapreduce like system on top of it. There is nothing in the world to prevent me from putting together several thousand commodity machines inside a datacenter (or multiple datacenters), inside my firewall, and build a cloud using something like Hadoop. So, even though there are many advantages in resorting to the use of the virtualization technologies, the idea of cloud is not restricted to virtualization alone.
Let me dig a bit deeper on it below. Some of the important advantages of virtualization are
- Consolidation of resources
- Cost reduction due to the above consolidation of resources
- Ease of management due to the above consolidation of resources
These are significant advantages and benefits cloud computing in terms of better economics and operational efficiency. Virtualization is not the end point but, rather, it is a means to an end. Virtualization is not the only approach to achieve the cloudvantages (In the spirit of holidays, I thought I will introduce a new term to mean cloud advantage :-)). If you ask the folks at Google, they will talk in detail about how they achieved cloud architecture by using commodity x86 machines without going anywhere near virtualization. Same is the case with many of the SaaS providers. There is no need for virtualization to be a cloud player.
Some people tend to question this assertion asking “Don’t we need virtualization to offer multi-tenancy, one of the requirements to define public clouds”. It all depends on how you consider multi-tenancy. If you are an IaaS player, you will talk about multi-tenancy at the infrastructure level and a SaaS provider will talk about multi-tenancy at the application level, a point highlighted by Chris Hoff in one of his tweets. An infrastructure provider may tap into virtualization to achieve multi-tenancy in their public cloud compute offering. It need not be the case for the platform and applications providers. SaaS providers like Google or Salesforce achieve their multi-tenancy at the application level rather than at their infrastructure level.
To conclude, virtualization is not necessary to call something a cloud. Even though virtualization offers many advantages that could be used in building a cloud, there are other ways to do cloud computing.