Nearly everything I read about cloud computing talks about starting your journey to cloud by virtualizing your environment. But it is not the only way to build a cloud. In fact, there has been a long-running mini-feud, albeit a polite one, between VMware and Google regarding virtualization for cloud computing. VMware claims that the cloud must start with virtualization.
Google has long said it doesn’t virtualize. And for sure Google knows a little bit about cloud. They run their images directly on hardware. Why? Performance.
Virtualization adds another layer of software. And every layer takes cycles to execute and therefore impacts performance. In addition, IO performance is the commonly mentioned sufferer of virtualization performance. In Microsoft's blog post Hyper-V performance tests (SharePoint Foundation 2010) they document the performance degradation of using Hyper-V, their virtualization solution.
In his blog post, VMware Knows the Cloud Doesn’t Need Server Virtualization Gigaom’s Simeon Simeonov points out that VMware own tests show 8 to 12 percent overhead because server virtualization. He also notes that when virtual machines are competing for resources on the same server the overhead is “substantially higher.”
Automating the process of bringing up an image directly on a server is called "bare metal provisioning." So if your application requires maximum performance but you still want the advantages of cloud, you can have both.
A large US banking user I know provisions servers directly rather than virtualizing for a different reason. When you use an image it is only as compliant to your policies as the day the image was created. If the image is two months old and policies have changed, you need to provision those changes on the virtual image. This bank found it just as fast to provision the hardware from scratch as it was to load an image and adjust it.
Of course the real question that CIOs must ask when weighing this issue is: What will be the most cost effective and bring the most productivity to my IT shop? In many cases virtualization makes sense. For other applications bare metal provisioning is the best answer.