The war for which operating system will be the leading cloud operating system is taking some new twists. Today, the name of the game is who can have the smallest operating system image that supports containers.
First, CoreOS combined the idea of containers with a lightweight Linux server. Then, Red Hat started working on Project Atomic, which combined Red Hat Enterprise Linux (RHEL) with Docker. Now, Canonical with Ubuntu Core is entering the field.
In each case, the idea is basically the same: Provide developers and system administrators with a minimal Linux server that supports containers, such as those from Docker. The result is meant to be a very flexible, very secure Linux application platform.
The Canonical Ubuntu take on this idea: "Ubuntu Core is the smallest, leanest Ubuntu ever, perfect for ultra-dense computing in cloud container farms, Docker app deployments or Platform as a Service (PaaS) environments. Core is designed for efficiency and has the smallest runtime footprint with the best security profile in the industry: it's an engine, chassis and wheels, no luxuries, just what you need for massively parallel systems."
In an interview, Dustin Kirkland, Canonical's Ubuntu cloud solutions product manager, explained, "Snappy Ubuntu is for building massive, new systems from micro-services supplied by Docker containers."
This isn't a new idea. Kirkland pointed to Netflix as pioneering this style of building out major service architecture. "Instead of using massive IBM zSeries mainframes at the back-end, Netflix use hundreds of servers that are each running some of the service."
This is indeed exactly what Netflix does 24 hours a day, seven days a week. Behind all of Neflix's tens of millions of nightly video streams there is no datacenter. Instead, there are a few thousand cloud servers coming up and down to meet demand.
Snappy Ubuntu, according to Kirkland, is meant to support such a flexible, high-speed, high-demand environment. It's small, efficient, runs only the bare minimum of services, and has a read-only operating system.
As such, Ubuntu Core, and its applications and their Docker containers are designed to be upgraded atomically and rolled back if needed. So with "transactional" or "image-based" systems, when you upgrade a server or app you don't patch it, you replace it.
"Ubuntu Core builds on the world's favorite container platform and provides transactional updates with rigorous application isolation," said Mark Shuttleworth, founder of Ubuntu and Canonical in a statement. "This is the smallest, safest platform for Docker deployment ever."
Curiously enough, Ubuntu Core didn't start as a cloud project. Its roots, said Kirkland, actually started with Ubuntu Touch, Canonical's mobile version of Ubuntu.
There are also other changes in Ubuntu Core that started on Ubuntu Touch. The most significant of these is its new packaging system. Instead of coming with multiple packages, a snappy Ubuntu Core app comes with all the underlying dependent libraries bundled with it.
In a blog posting, Mark Shuttleworth, Canonical and Ubuntu's founder, explained, "Developers of snappy apps get much more freedom to bundle the exact versions of libraries that they want to use with their apps. It's much easier to make a snappy package than a traditional Ubuntu package - just bundle up everything you want in one place, and ship it. We use strong application isolation to keep data confidential between apps. If you install a bad app, it only has access to the data you create with that app, not to data from other applications."
Snappy applications are also confined, according to Canonical, by Canonical's AppArmor kernel security system. In snappy Ubuntu versions, applications are completely isolated from one another.
Want to try it? Ubuntu Core alpha is available today, on, believe it or not, the Microsoft Azure cloud.
"Microsoft loves Linux, and we're excited to be the first cloud provider to offer a new rendition of one of the most popular Linux platforms in the rapidly growing Azure cloud," said Bob Kelly, Corporate Vice President at Microsoft, in a statement. "By delivering the new cloud-optimized Ubuntu Core image on Azure, we're extending our first-class support for Linux and enabling freedom of choice so developers everywhere can innovate even faster."
I know, I know, I find this announcement rather jaw-dropping as well.
But Canonical and Microsoft have started working together. Canonical brought its DevOps tool Juju to Windows Server 2012 and they're helping Microsoft bring OpenStack to Windows. And, to think that Ubuntu once had bug number one as "Microsoft having a majority market share"!
Things have changed. Kirkland said, "Microsoft has been extremely friendly for the last six months and we have a positive relationship with them now. Microsoft customers are interested in Ubuntu on the cloud."
Of course, Linux users can also try the snappy Ubuntu Core locally with KVM; a simple download and launch spins up Ubuntu Core as a virtual machine on any contemporary PC. Ubuntu Core is also coming to other hypervisors, OpenStack and other cloud platforms soon.
I think Canonical is on to something very promising here. Mind you, I think Red Hat is as well with Project Atomic. And even though CoreOS is now fighting with Docker, I think they still have a realistic shot at making an impression on the white-hot business of bringing lightweight servers and containerized applications to the datacenter and the cloud.
At this point, however, it's way too early to predict who will dominate this rapidly fermenting IT market. The one thing I do know for certain is that these styles of atomic, easy to install, update, and secure servers will be playing an important role in the cloud for the rest of the next decade.