vCloud, OpenStack, Pets and Cattle
I keep bumping into discussions where people try to compare vCloud (Director) and OpenStack. The last one that caught my attention was an email from a colleague that went like:
"We are in a competitive situation with OpenStack. Customer is currently using Amazon EC2... They are looking at moving from Amazon to VMware due to outages killing revenue for their customers. They are also looking at moving to OpenStack internally".
I am not sure if this customer intends to deploy vCloud Director and OpenStack side by side. If that's the case I think there may be (potentially) good reasons.
If this customer is trying to figure out whether to use one OR the other... I think chances are that either they misunderstood what vCloud Director does or they misunderstood what OpenStack does. May be I'm missing something but, to me, it's like comparing apples to oranges. And note that, by that, I am not suggesting apples are better than oranges or viceversa. They are different
fruits tools with different flavors.
I'll try to be brief (yeah, sure).
OpenStack can be seen as an open source incarnation of the Amazon (AWS) cloud model. vCloud Director is a similar software (albeit not open source) that implements a different cloud model. Those software can be used to build either public or private clouds.
Tangentially, please make sure you understand that Having cloud-enabled technology != Having a cloud. It is indeed fairly important as Lydia points out.
The AWS / OpenStack model can be seen as a forward leaning model whereas vCloud Director can be seen as a backward leaning model. The former model aim at creating a brand new experience in how applications are engineered, developed and operated. The latter model aim at creating a cloud-like experience for workloads that have been engineered and developed in a more traditional "enterprise" way.
I discussed these different models in the past in a couple of blog posts. The first one is TCP-clouds, UDP-clouds, “design for fail” and AWS and the second one is The Cloud Magic Rectangle ™. It must also be said that forward and backward leaning are very subjective concepts as I have tried to argue in another blog post: Cloud and the Three IT Geographies (Silicon Valley, US and Rest of the World).
While I tried to keep those discussions at the very high level, those are still very IT oriented discussions, including the examples and the parallels I used to describe the different cloud models (e.g.. UDP Vs TCP).
That's why I was floored when Gavin McCance from CERN turned this into something that is a lot easier to understand with an awesome non-IT parallel:
He nailed it. Before you evaluate whether you want to use vCloud Director or OpenStack (or any other tool), you first need to understand whether you are dealing with "pets" or "cattle". Once the cloud provider understands what type of service must be made available to cloud consumers, the choice of the tool becomes natural. If you have to deal with pets then vCloud Director (or similar technologies) is the natural choice; if you have to deal with cattle then OpenStack (or similar technologies) is the natural choice.
That is why I smile when I incidentally bump into CSPs wannabe that are trying to implement OpenStack advertising that they don't use a SAN (but rather local storage) "because that's how you do things in the cloud". Then they claim to be resilient because they have redundant power supplies, redundant network cards and disks configured in Raid5 on those standalone servers. This is, IMHO, a typical example of an organization that needed to implement a cloud model to look after "pets"... and ended up to chose the wrong tool (in this particular case).
So how do you know if you are dealing with pets or cattle? The blog posts I linked above will give you a good idea of where to draw the line between one model and the other. If you don't have time to read them (or if you just couldn't bother) there is a shortcut, and it's a fairly quick one. Question: can I come in into your datacenter and, in the middle of the very critical business hours, randomly kill 10 of your critical instances while you smoke a cigarette outside?
If the answer is yes, because what I want to do would go unnoticed, you are dealing with cattle.
If the answer is no, because what I want to do would create a major turbulence in your end-user experience, you are dealing with pets.
Assuming you now have clear the difference between the two models, you can choose the proper technology to build the cloud you need.
No-brainer, no overlap. Two tools for two models.