By Clive Gold, CTO Marketing, EMC Australia and New Zealand.
Funny how sitting back and listening brings you new insights! I was starting to think that all hypervisors were the same. Reading the press gives you the opinion that this part of our technical world has matured and commoditised, and I almost became a believer.
I was wrong, as any developer knows that there engineering decisions that need to be made at every point of the development process. Firstly, there is a high level conceptual architecture that is decided on; in this case one of the important decisions was how the hypervisor would execute; on top of bare metal or on top of an operating system? (Note: there is no judgement here, just choices that produce different advantages and different challenges.)
Zen and Hyper-V both run on-top of an operating system. On the plus side they can share driver code stacks and can support any number of devices that exist in the base operating environment. VMware executes on the bare-metal with the advantage of no general purpose operating system to patch, none of the security vulnerabilities, etc.
But let’s move on because here is where I think it gets interesting, because VMware hinted at something last week in a statement to the effect of, ‘We need to further develop the hyper-visor to support applications like Hadoop!’. (Wiki for Hadoop). Now I understand how hypervisors take a piece of hardware and split it up so multiple applications can leverage it. But now this concept is the opposite, how do we take multiple pieces of hardware and create one application?
The next generation of database or analytics database are massively parallel and many of the technologies deploy a ‘shared nothing’ architecture to minimise the coordination and communication between the processes to improve scalability. (eg: EMC demonstrated a 1000 node system.)
If that does not make sense let me bring it back to a personal application, video rendering. I am a hobby photographer and like so many people invested in a high definition camcorder. I use the software supplied with the device, but it takes a very long time to create the final video. Since I have a dual core PC at home, it’s frustrating to see the machine only use half the CPU! The reason is the application does not know how to multi-thread. I would guess that more than 90% of your enterprise software does not know how to multi-thread!
So here is what I think a killer hypervisor would do.. take a single threaded application and run it on multiple-cores. Technically I have no idea how this would be feasible, but then until I heard about vMotion, I would not have believed that either!