CoreOS for Efficient Linux-Powered Clouds
The end of last month saw the first stable release of CoreOS; a contemporary Linux operating system geared towards efficient distributed computation. The design focuses on high availability and responsiveness of machine clusters in order to deliver a high-performance interface to an optimised cloud system. It achieves this through a highly compartmentalised architecture whose modular nature allows processes within the cluster to be dealt out to nodes based on their immediate availability. This paradigm maximises reliability in the eventuality that a node fails, in that the downed node's workload can be offloaded to the rest of the cloud. In this way, CoreOS streamlines operations in a robust and maintainable manner.
Originally forked from Chrome OS, CoreOS purportedly uses 40% less RAM than an 'average Linux installation' - a significant boon for any server-orientated program. Unlike most Linux distros in the wild, CoreOS has no associated package manager. Instead, it is intimately integrated with Docker - an application management system which keeps programs completely isolated within their own virtualised environment (or 'container'). In contrast to traditional methodologies, no guest OS virtualisation is employed - only the minimum required to define the process, its state and its virtualised resources. It is the concept of containers which allows CoreOS's chief process orchestrator ('fleet') to divide workloads between nodes so effectively, since each process or service container can easily be allocated to an arbitrary node as a single standalone unit.
In addition to the process distribution heuristics intrinsic to CoreOS, administrators may also define their own rules to promote integrity and availability of a cluster. The official website at www.coreos.com suggests that one might, for example, wish to specify that at ay given point in time a database resource container may never be allocated to the same node as the one hosting that database's backups (an example of an anti-affinity rule). This powerful feature permits the configuration of systems for high adaptability and flexibility.
CoreOS has also been very carefully designed with respect to its upgrade path. There is no concept of Long-Term Support releases since patches are applied automatically and frequently. Thanks to the FastPatch mechanism utilised by CoreOS, the entire system perpetually self-updates and is thus always guaranteed to be equipped with cutting-edge security and performance features. The concept of a rapidly self-patching system might seem unnerving to some, but CoreOS' update procedure is analogous to its process management in that it too is handled in a modular fashion. Rather than the usual package-by-package update scheme which gives rise to complex interdependencies, a CoreOS update is more akin to single block operation in which all amendments and improvements are made together, helping to assure stability.
The design of CoreOS is innovative to say the least, and it will be fascinating to see how the project continues to mature now that it has been declared production-ready.