We're all familiar with the hypervisor, that slice of code that hosts and manages operating systems, partitioning and virtualising. There are hypervisors that run on top of a host OS, and hypervisors that sit underneath everything, taking advantage of all the virtualisation features built into the latest silicon.
But what if there was another sort of virtualisation? One that didn't need a hypervisor, didn't need special silicon? One that could support even more secure, sandboxed operating environments than a hypervisor – and that scaled? That virtualisation technology exists, and I spent much of last week talking to a company that's built much of its business on its success. It's a technology that's powering some of the largest web properties in the world, and is being built into familiar open source operating systems.
Containers, or OS-level virtualisation, are a way of slicing the user space associated with an operating system up into multiple isolated segments, each ostensibly a separate user space with its own resources. The containers are managed by the OS, handling resource allocation and ensuring efficient use of the underlying hardware. Parallels, perhaps best known for its Mac/Windows virtualisation tools, is one of the biggest developers of containers, shipping its Virtuozzo Containers product to ISPs and hosting companies around the world, where it's used to manage the many millions of virtual private servers that power so many small and medium web presences.
At Parallels' 2012 Summit last week, I spent some time talking to Dr James Bottomley, CTO Parallels Server Virtualisation, discussing the future of containers, and their role in the evolution of the cloud. While we currently thing of containers (when we think of them at all), as a with tool for delivering massive virtual infrastructures, with elasticity, rapid provisioning and de-provisioning, they're also a tool for managing and delivering services. While they're not using Parallels' technology, both Google and Facebook have developed their own containers technologies to get the most out of their hardware, using them as a building block for their platform as a service approaches.
There are plenty of advantages for companies that take advantage of containers. They're thinner and more performant than hypervisors, and can reduce resource loading by sharing pages, with a common host OS and drivers – and a very thin virtualisation layer. Container slicing an OS like this is ideally suited for cloud-slicing for multi-tenancy, simplifying deployment and management, and letting slices take advantage of just how dense containers can be.
Bottomley wants Parallels to be the driving force behind containers in open source, and is working to move the company's OpenVZ offering upstream into the Linux kernel – aiming to have Linux deliver a single consistent container technology (which will also be the base of Parallels' commercial containers technology). With vzctl as the primary interface for Linux containers, Bottomley hopes that there won't be a rerun of Xen/KVM wars. Parallels will continue to focus on delivering unique features on top of the open source base, aiming to optimise containers for mass market hosting and for future platform as a service uses. It should also solve the tenancy problem for cloud platforms. All you need to do is containerise the OS, add applications, and then share the containers.
The technology certainly looks very promising, with excellent container density. Bottomley notes that the full Virtuozzo Containers product outperforms a hypervisor by around 3 times in an IaaS cloud. VMware's ESX will run 41 loads to OpenVZ's 57 and to Virtuozzo's 112. The aim is to make the open source containers implementation as good as Parallels' is today.
It's good to see containers getting traction again, and giving the better known hypervisors a run for their money. Competition like this is good, and with an effective open source version of the software, it should allow the technology to quickly gain wide adoption.