Virtualization is not Cloud … but Cloud needs Virtualization

November 20, 2009

Surfing  a couple of blogs today, jumping from another analyst commenting that virtualization is not cloud (a fair, if unexplored, post), I came across William Vambenepe’s post from September on the confusion between virtualization and Cloud Computing. As he did on my blog recently, I started to post a reply to his site, and then as it expanded, decided to post it as a full reply on my own blog.

I like the thinking, and agree with a lot of the principles involved. Without doubt, virtualization is not cloud. But I can’t agree with it all. Apart from technical quibbles (like the part about mainframe LPARs not running on a hypervisor), I simply find it unreasonable, if not impossible, to think of implementing cloud computing without virtualization.

My key sticking point in most of these discussions [edit: not necessarily William’s post – see comments below] is that they continually assume that ‘virtualization’ is synonymous with ‘hypervisor’, or at best with ‘server virtualization’. Neither is true. When EMA first defined virtualization (a definition that has taken hold more or less throughout the industry), we defined it as:

“a technique for abstracting or hiding the physical characteristics of computing resources from the way in which other systems, applications, or end users interact with those resources.”

Even now, Wikipedia defines virtualization as “the abstraction of computer resources” and “hid[ing] the physical characteristics of a computing platform from users.”

No mention of a hypervisor there, and with good reason. Virtualization is much more than a hypervisor, and applies to much more than servers. In fact, EMA’s original definition made this clear by including the following clarifying note:

“This includes making a single physi­cal resource (such as a server, an operating system, an application, or storage device) appear to function as multiple logical resources; or it can include making multiple physical resources (such as storage devices or servers) appear as a single logical resource.”

Indeed, many forms of virtualization (and cloud) are possible without a hypervisor – like OS virtualization, storage virtualization, grid and cluster computing, terminal services, and more. So while it is widely known that Amazon runs its cloud on a classic server virtualization platform (Xen), even a Google-like cloud, which is based (as I understand it) entirely on a fully hardware-based deployment, without any hypervisors, is still using another virtualization technology – grid computing.

So cloud is definitely possible without a hypervisor, but is it possible without virtualization?

Perhaps, but it is far less than ideal.

William cited SoftLayer Technologies  as doing cloud on bare metal; and  Loudcloud as being cloud before it was in vogue. Although I am not sure the latter is true, and Softlayer provide few details about their bare-metal cloud, it seems to be possible to provide cloud computing without virtualization.

Yet with very few exceptions, it is ill-advised at best. In implementation, if not in theory, the many essential characteristics noted in the NIST cloud definition (EMA’s preferred definition) are only barely possible in a purely physical environment.

Sure, you could get rapid elasticity, rapid provisioning, minimal human interaction, dynamic resource assignment, location independence, resource abstraction, etc. with a physical deployment. While they were both substantially unsuccessful with customers, IBM’s On-Demand and HP’s Adaptive Infrastructure both accommodated these elements primarily through automation, and without virtualization (or at least with virtualization as only an optional component). Even without automation, you could imaginably provision and manage physical servers manually to achieve this on-demand, adaptive, cloud infrastructure. In theory, all things are possible.

In practice though, cloud computing without virtualization is barely realistic. It is an edge case at best. Given what virtualization can do – for resource pooling, rapid provisioning, reducing intervention, resource abstraction, workload elasticity, and more – why would you try to implement cloud without it?

And that is just on the server! Given the different types of virtualization – especially network virtualization and storage virtualization – it seems that cloud without virtualization is not just ill-advised, but positively crazy.

For example, would anyone really copy all the data from one DAS drive to another in order to ‘dynamically’ scale a workload onto a bigger machine? Would you uninstall a drive from one server, and put it into another? Would you physically switch or reprovision a network in order to abstract a new server located in a different data center? Even to the biggest skeptic, cloud without any virtualization must seem a ridiculous notion, if not an impossible one.

So yes, William is technically correct (“the best kind of correct!”) – virtualization is not cloud, and it is possible to provide cloud services without virtualization.

But (with apologies to Samuel Johnson) it is like a dog walking on his hind legs – it is not done well; but you are surprised to find it done at all.

Tags: , , , , , , , ,

5 Responses to Virtualization is not Cloud … but Cloud needs Virtualization

  1. November 20, 2009 at 19:58

    LOL, fair enough William. 🙂 And you are absolutely right.

    And I should learn to read your posts more closely, or at least make it clear when you inspire me to post, that I am not arguing against you, but rather riffing off your ideas.

    Thanks for commenting. Definitely some worthwhile clarifications.

  2. November 20, 2009 at 15:41

    Hi Andi,

    WRT to cloud w/o hypervisor you write

    “I think that is *possible*, but in practice it is questionable whether that would be a good thing.”

    And I fully agree. My point in the post was simply to assert the possibility of non-hypervisor clouds. I agree that in the current state of the industry hypervisors are a very important and practical technical building block for a cloud. I wrote:

    “At the current point in time, the hardware (e.g. multiple cores, shared memory) and software (hypervisors, legacy apps) environment is such that hypervisor-based solutions seem to have an edge over those based on automated provisioning/configuration alone.”

    I am not trying to push people away from hypervisor.

    Bottom line: I should make it clearer when I write posts that are mostly of theoretical interest. Which is something I have a sick tendency to do a lot, as illustrated by this twitter proposal (algorithm, implementation) and posts like these (file transfer over WS-Management, long-lived Google App Engine requests, graph queries in XPath). Not to mention the OWL2ish Turing machine I’ve been toying with.

    I am an egghead at heart (and soon I’ll look like one too).

  3. November 20, 2009 at 13:23

    Great point William, I did know that from your post, and could see (from the 28pt title, no less) that you were not confusing virtualization with hypervisor.

    I was really using your post as a starting point to discuss the seemingly popular opinion (not necessarily yours) that cloud==virtualization==hypervisor.

    I do still disagree with much of your original post, at least insomuch as it says cloud does not need hypervisors. As I say, I think that is *possible*, but in practice it is questionable whether that would be a good thing.

    But you were clear in your post; I was not clear enough in mine. I added an edit to try to clarify my point.

  4. November 20, 2009 at 12:41

    Hi Andi,

    My post is 100% focused on debunking the idea that you need *hypervisors* for Cloud. I never asserted that one should try to “provide cloud services without virtualization”, just that one can do it without *hypervisors*.

    I specifically stay away from the term “virtualization” and I explain why in the second sentence of the post:

    In the industry, the term “virtualization” (and its corollary, “virtual machine”) is used in so many different ways that it has lost all usefulness.

    That’s why I don’t touch “virtualization” in the post.

    Based on the definition of virtualization used in your post, I fully agree with what you are writing. I would even go further. With the definition of virtualization that you use (one that I agree with but is not the only one floating around – ask VMWare bigots what “virtualization” is), the only Cloud that does not utilize virtualization is a server order form. It’s on demand in a way, but it arrives in a truck. Everything else is virtualization.