2011-03-06

The Datacenter - in a Few Years From Now

I recently participated in writing a short piece on the question, "Is the Hypervisor a Commodity Nowadays?" on TechTarget. The consensus there was split 50/50.

I would like to explain a little more. What is a commodity?

A good or service whose wide availability typically leads to smaller profit margins and diminishes the importance of factors (as brand name) other than price.
[Source: Webster Dictionary].

So let us give two examples.

  1. Gasoline. Your car needs gasoline to run. But what qualifies gasoline as a commodity? the fact that you can go to any gas station, be it Shell, BP, Paz, Texco - what ever you want.. and fill in the same gasoline into you car and it will continue to take you to where you want to go. You don't have to worry about if your car will be compatible with the gasoline you just put in - since it is the correct octane - it is guaranteed to go. Now mind you - there are certain requirements that need to be considered (octane is one of them). And of course - each company will have their small "extras" that will make their offering more appealing to the customers.
    The main thing here is that you can put in the gas and your car will drive.
  2. Water. You are thirsty and you go and buy a bottle of water in the store. This helps you wuench your thirst, stops you from dehydrating, and gives the ability to keep on going. Does it make a difference which company the water is from? To serve the purpose of satisfying the need to quench your thirst - no. Will it taste nicer if it is cooled, or has a slight addition of lemon, or peach or bubbles, to each his own preference.
    And again the main thing, no matter what kind of water you buy, it quenches your thirst.

So that is how I would define a commodity. So back to the question raised before.

Is the Hypervisor a commodity?

Microsoft has one, VMware has one, Xen has one, Redhat has one and who knows what the future will hold. They each have their benefits and their flaws, their ups and their downs, the good and the bad. But the main thing is that - today - you cannot run a Hyper-V virtual machine on ESX, and you cannot run a Xen VM on Hyper-V. It simply is not possible. What the vendors are starting to do is provide you ways to convert a VM from one hypervisor to another. VMware just release a Fling called XVP that will allow you to connect to a Hyper-V server and if you to control certain parts of the Hypervisor, perform certain tasks on the Hosts and the virtual machines themselves. Microsoft SCVMM has boasted support for vCenter for quite a while now.

The point to note here is that in order to run a VM from one vendor on another vendor's hypervisor is not a done deal. There is a decent amount of tinkering around that needs to get this work.

So what does this have to do with the cloud in few years from now?

Let us play what-if for a second.

What if you there was some magic that could provide a translator and act as a buffer between the hypervisor and the VM? Something like the graphic below.

image

We all know what the problem is with having a non-standard format for virtual machine. Each vendor has their "tools" and optimizations for their own hypervisors and they are completely not compatible with their competitors.

Now I am not holding my breath for any of the vendors to come up with a industry standard that will allow you to run your VM on any hypervisor. That is actually quite counter-productive to what they are trying to achieve by getting their vendor lock-in for their solution.

If there was an additional layer that you could install on your hypervisor, that knew how to make these translations between the VM and the hypervisor below, allowing you to run a Hyper-V vhd on an ESX hypervisor or a ESX vmx on a Hyper-V Host. Granted this layer will have to be very clever and very fast in order to provide the performance that is close to native to that you would have on the hypervisor itself.

Call it a "hypervisor for hypervisors" if you will.

And what does this have to with cloud though? The way I see cloud vision is having your pool of resources from which you can provision your applications and vApps to your end users. At the moment this is limited to a cloud for each Hypervisor. I cannot have a VMware vCloud that has Hypervisors that are not ESX. I cannot have a Microsoft Cloud with Hypervisors that are not Hyper-V and so on.. Yes, there are some products that will allow you to manage the multiple clouds under one "umbrella" and place the VM in your Hyper-V cluster or ESX Cluster or RHV Cluster according to different criteria. But today they still need to be separate clusters. Utilizing such an idea will make my infrastructure completely vendor agnostic - and I (the customer) could pick and choose whichever hypervisor suits me.

This something which is not available but I do think it is only a matter of time until this technology becomes available. The first one to do this will have a great thing going for them.

Perhaps a good idea for a startup….

What do you all think? Please feel free to leave a comment below.