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.
What type of Unix are you?
If you're not a Unix type, you might not have met “OS-level virtualisation” before. Sometimes called “OS partitioning”, it's quite common in the Unix world. Instead of emulating a whole computer and installing another OS in it, this type of virtualisation walls off a single process (and any child processes) in a separate, isolated memory space, with its own config files and its own libraries, its own IP address, and so on – but running on the same kernel as the rest of the OS. To the OS, it's a process; as far as that process is concerned, it has the entire computer to itself. You just make a duplicate copy of as much or as little of the host's “userland” – the various programs that make up the parts of the OS that your app interacts with – as the app needs. So, for instance, one Virtuozzo partition could run Exchange Server 2003 and another ES 2007 on the same copy of Windows – something normally impossible.
This stuff has been a standard feature in the commercial-Unix world for years, where like on Windows, deploying additional OS licences can get spendy. On Linux, where the OS costs nothing, it's never caught on as much – although Docker is gaining traction and might change that.
But it's also an ideal fit for Windows Server, because it cuts right through several serious problems. In no particular order – because everyone's priorities are different...
It sorts out the labyrinthine licensing. With the most basic kind of OS-level virtualisation, you're only running a single copy of the OS, so that's all you have to license. Obviously, apps are separate but their licensing isn't a technical problem, it's a commercial one.
It's massively more efficient than whole-system virtualisation – each instance only needs enough storage and CPU for that app and its config files, not a whole host OS.
The same advantages Microsoft is using to peddle Hyper-V would apply: an all-Microsoft stack, managed with Microsoft tools from top to bottom.
They won't drop the banana
And there's still a role for Microsoft's Hyper-V. The acquisition of Connectix wouldn't be wasted. Windows isn't the world's most scalable OS – for a machine with dozens of CPU cores and RAM edging into terabyte levels, you'll probably want to run a few separate copies on top of Hyper-V. And of course Hyper-V would still be great for running different versions of Windows on the same host, or for running other OSes.
Compared to conventional whole-system virtualisation, a containerised Windows setup would be cheaper, simpler, easier to license and manage, and more efficient – especially for VDI deployments, where it even offers advantages over Terminal Server. It would offer Microsoft a decisive advantage over VMware. It would even go some way toward levelling the battlefield versus FOSS cloud solutions – love it or hate it, Windows offers some great development and management tools compared to any of the free OSes.
Windows doesn't include this functionality – but Parallels does, which shows that it's perfectly doable. Either by acquiring it or copying it, the way is open to Microsoft. Not only would it be a really good deal for its customers, meaning a more competitive product, but it would dramatically lower the resource footprint of hosted Azure servers as well.
But the problem is, of course, that it means letting go of an awful lot of OS licensing revenue up front. It might be necessary to take the hit now in order to stay in the game later. And that's what I'm betting Microsoft's new, post-Ballmer management won't have the nerve to do. They have a fistful of banana and they won't want to let go... even though there's a big gang of penguins closing in, with a mean look in their eyes and big clubs. ®