Analysis Microsoft is caught in a monkey-trap, created by cloud computing and Free Software, coupled with short-term thinking and a dose of not-invented-here syndrome.
You know how monkey-traps work? You make a small hole in a coconut shell, put some bait in it and tie it to something. The monkey comes along, reaches in for the bait and grabs a handful. But when it tries to retrieve its prize, it can't: its fist won't fit through the hole. The monkey is trapped by its own greed. Under pressure, the animal isn't able to choose between escape and letting go of the goodies; you just walk up and whack it over the head.
That's the situation Microsoft is in right now with its virtualisation strategy.
While researching the Register Guide to Windows Server 2012 last year, I talked to a lot of people about Microsoft virtualisation compared to the competition: users, vendors and people implementing it. The results were not quite what you might expect. Everyone acknowledges that Hyper-V 3 is a huge improvement over previous versions and that it equals or exceeds the capabilities of VMware.
But most vendors said that this was irrelevant, because while VMware's licensing scheme is clear and simple, licensing virtualised Windows is horrifically complex – something that my esteemed co-author Trevor Pott covered in detail in the aforementioned e-book. You need licences for the OS running on the hardware – Microsoft doesn't recommend the freeware Hyper-V Server for serious workloads. Then you need to licence the copies of Windows running in the VMs, plus client licences for the workstations; then you need to do the same for layered products on top, such as Exchange or SQL Server. Of course, various bundles and deals apply to all this.
Familiarity or contempt?
Compare this with the open-source way. If you're running an all-Linux data centre, it's no bother. Linux has a choice of perfectly good, free, hypervisors, such as Xen and KVM. Unless you choose to go the commercial route and pay for VMware, RHEL or SLES, you don't need to license the host or the guests. Which is, of course, one of the main reasons why many cloud outfits use Linux – thousands of server instances and no licence fees. If you're running a mixture of Linux and proprietary commercial OSes, you run VMware – it's the industry standard and its licensing is clear and simple.
Microsoft's counter-offer is the familiarity of Windows and Windows tools, both for development and for management. This is what Azure and Hyper-V 3 are all about: Windows in the cloud and powerful tools for running lots of Windows VMs in the data centre. Windows all the way down. It's appealing – it’s a familiar platform, the management tools are good, and Windows techies are much cheaper than skilled Linux devops types.
The problem is if you're virtualising Windows on Windows – the most tempting target for Hyper-V – you end up with a licensing nightmare. It's so complex that a common comment from resellers was that even their contacts at Microsoft itself didn't really understand it fully.
And the other problem is that whole-system virtualisation is rather inefficient: you end up running legions of separate Windows installations, all of which need maintaining, updating and so on. That's true on Linux as well, but on Linux it's far easier to deploy a tiny core-OS distro and omit gigs of stuff you don't need.
(The other way of course is to emulate what IBM did when it invented virtualisation in the 1960s, and write specialised OSes to run inside the VMs which don't replicate the host's functionality. That's starting to happen in the FOSS world now too.)
This is the main reason why Windows barely gets a look-in in today's cloud world. When I ask FOSS devops-type colleagues about it, their responses range from incredulity to hilarity. Why on Earth would they want to deploy on Windows? What possible advantage would it give them? These guys wield Puppet and Chef to deploy vast swarms of headless virtual Linux systems. Microsoft and proprietary software doesn't feature in their world; some weirdos run Mac laptops but that's about it.
Researching Hyper-V, just one reseller recommended something other than VMware – Parallels Virtuozzo. If you're familiar with BSD jails, Solaris Containers or AIX Workload Partitions, Virtuozzo brings the same functionality to Windows. More of a Linux person? Have a look at OpenVZ, Linux-VServer and LXC. Think of it as chroot on steroids.