If you manage a cloud or a datacenter, chances are you run CentOS, Red Hat Enterprise Linux (RHEL), SUSE Linux Enterprise Server (SLES), or Ubuntu. These are all great server Linux distributions, but none of them were designed to be deployed over hundreds or thousands of servers at once. Now there is such a distribution: CoreOS.
In development for over two years, CoreOS has been designed from the ground up to power datacenters and clouds. Curiously enough however, CoreOS is not based on one of the traditional server Linux families such as Debian or Red Hat. Instead, it's based on Google's desktop Chrome OS.
Why? Because CoreOS is designed to be lightweight. Its developers claim that, at a mere 114MBs of RAM, CoreOS takes up 40 percent less memory on boot than the average Linux server.
In a Linux.com interview, CoreOS's CTO Brandon Philips explained that CoreOS is designed to enable "build-out and management of massive server infrastructure. It combines a minimal OS built on the stable Linux Kernel with tools to run services across a cluster of machines. This is all packaged and ready to run on your physical gear or virtualized on platforms like KVM, Amazon Elastic Compute Cloud, Google Compute Engine, and many more."
Besides cutting down Linux's memory requirements, CoreOS runs all of its applications inside Docker containers. Containers, which are based on a shared operating system kernel, are much lighter and more efficient than hypervisors. Instead of virtualizing hardware, containers rest on top of a single Linux instance. By using Docker containers instead of hypervisors — where the entire computing stack, from the processor to memory to storage, is virtualized — applications use far fewer system resources.
The company claims that the "Docker containers can boot extremely fast (in milliseconds!) which gives you unprecedented flexibility in managing load across your cluster. For example, instead of running Chef on each of your VMs [Virtual Machines], it’s faster and more reliable to have your build system create a container and launch it on the appropriate number of CoreOS hosts. When these containers start, they can signal your proxy (via etcd) to start sending them traffic." The net result? Not only lighter programs, but more responsive applications.
There's another key difference in how CoreOS/Docker handles programs. Instead of installing dependencies for a given application — say an Apache or Ngnix server — applications are placed in a Docker container that is then installed on CoreOS instances.
CoreOS also has an interesting way of updating both its applications and operating system: FastPatch. In this scheme, the entire operating system is updated as a single unit instead of package by package. Indeed, CoreOS doesn't include any of Linux's usual package updating tools such as apt or yum.
Instead of packaging tools, you use a dashboard program, CoreUpdate. This program enables you to update single servers, clusters, or datacenters all at once.
This new operating system also comes with clustering built in. While any Linux can be used in a cluster, CoreOS makes it easy to aggregate individual systems into a single pool of resources. Instead of running a service on a specific machine, services are submitted to the cluster and the cluster manager (fleet) decides where they will run.
CoreOS's team claims that what they've done with their minimal Linux server is to give ordinary companies the same kind of house-brand Linux that Amazon, Facebook, and Google use in their datacenters. I'm not sure it's that good, but from what I can see of it, it is very, very good.
It's not just technical people who think that CentOS may a real contender in the enterprise Linux space. "The technology behind CoreOS is game-changing," said KPCB's (Kleiner Perkins Caufield & Byers) general partner, Mike Abbott in a statement. "CoreOS is solving infrastructure problems that have plagued the space for years with an operating system that not only automatically updates and patches servers with the latest software, but also provides less downtime, furthering the security and resilience of Internet architecture."
KPCB is backing CoreOS with more than just words. The venture capital giant is also putting $8 million Series A fundings into the company, with follow-on investments from existing investors Sequoia Capital and Fuel Capital. This funding will go towards growing the company, product development, and increasing interest in the operating system.
Sound good to you?
The company has made CoreOS available as Linux-as-a-Service. This Managed Linux service level is available for purchase through a monthly subscription and provides:
- Availability on platforms including Bare Metal, Amazon, Google, and Rackspace, among others;
- Docker 1.0 — The container runtime for application packaging;
- CoreUpdate — A hosted dashboard for full control of rolling updates; and
- FastPatch — Stress-free patches and updates.
You can download CoreOS to tinker with it on your corporate testbeds. The code, which is under the GPLv2 and the Apache 2.0 licenses, is available on GitHub. The company also promises that "OS updates and security patches will never be held hostage — they'll always be available to all users of CoreOS."
All in all, I have to say that CoreOS sounds like an operating system package that any serious enterprise Linux user should take a long hard look at. RHEL, SLES, et. al., are all very good, but CoreOS sounds like it may be able to deliver more productivity from your existing hardware than other Linux distributions.