Sunday, July 6, 2014

What is CoreOS?

I'm sure that many of you, especially those in the cloud realm, have been hearing a whole lot of buzz around the new operating system referred to as "CoreOS". I have been doing a lot of reading and have been following CoreOS over the past 5-6 months and I have to admit that it has really grabbed my attention. In this post Ill give an overview of what CoreOS is and also provide some insight on features and capabilities on why I think CoreOS is a game changer. Also please make sure you check the CoreOS site to get more information on the products offered, latest news, documentation and great tutorials.


Overview: CoreOS Explained

In the most simplest definition, CoreOS is a minimized lightweight Linux based operating system that's purpose is to provide the ability to deploy and run mass amounts of software containers on a single host or across a cluster of hosts. It is basically a Linux kernel running a few utilities and nothing else. To give a visual on how minimal the operating system is, I have read that the entire OS consists of 100 megabytes of code or less and has the ability to be booted in less than two seconds. The boot I would have to see for myself but that is crazy small for a server style OS. CoreOS takes advantage of a service called "Docker" which is used to build, deploy and manage containers (watch for posts on Docker in the near future). Image below depicts a good visual representation of the fundamental layout of CoreOS and its utilities. CoreOS eliminates the need of a hypervisor to deploy full-fledged virtual machines running full-fledged operating systems and instead focuses on providing applications. It is completely open source under Apache license 2.0 and now also offering new support option released as of June 30th.


Image: https://coreos.com/


Some Features

One of the most surprising or interesting things about CoreOS is the fact that the OS is not a traditional full-fledged Linux OS like Red Hat or Ubuntu but instead is based on Google's Chrome OS. This is the reason why CoreOS is so lightweight and in fact so lightweight that it only requires just a little over 100meg of memory to boot which is less than half of what it takes to boot traditional Linux flavors. CoreOS is also able to run on both virtualized infrastructure such as KVM, Google Compute and other hypervisors or on plain ole bare metal machines. 

Another surprising or interesting feature of CoreOS is the way that you patch the OS and the applications. CoreOS does not come packaged with any software packaging tools such as yum, apt or Zypper. They provide a web gui dashboard application, called CoreUpdate, that is used to manage all of your machines and applications. This application can give detailed information such as number of machines, versions, health of your clusters and more. The dashboard leverages FastPatch, an active-passive root partition scheme, which patches the entire OS as a single "unit" instead of package by package like traditional Linux. When the OS is patched it creates a completely new root partition as passive and then once the OS is rebooted it places the newly created partition as active and places the older partition as passive. There are several benefits to doing this but most importantly, especially if you are a Sys Admin, is still having the ability to rollback your update if needed. Pretty freaking brilliant.

Lets talk about one of the biggest key factors to CoreOS, Docker. As mentioned above, Docker is what CoreOS uses in order to run, build and deploy what is sitting on the OS which are essentially Linux containers. Containers are extremely lightweight virtual machines that's purpose is to simply serve applications. There is almost no overheard to run containers due to the fact that docker containers all share the host's kernel and run as an isolated processes in userspace. There are a lot of benefits of running containers (which will be discussed in other posts). You can deploy a new container within a matter of seconds, start and stop them even faster and share it across an entire cluster which will bring me to the next fundamental feature to cover, CoreOS clustering.

CoreOS comes with built-in clustering of hosts which can range from just a couple to entire data centers. CoreOS uses etcd and systemd as the backbone of its clustering while fleet manages the containers and decides which host the containers should reside on based on application. According to the CoreOS team fleet creates seamless integration of clustered hosts into a shared pool of resources. Not sure I have a complete understanding of how their whole clustering architecture works but fleet definitely looks legit. Fleet has the capabilities of maintaining all of the individual containers and ensures that the containers maintain high availability in the event you have system updates or system failure.I would compare to fleet to VMware's HA solution. It also allows for containers that share the same application structure to run on separate hosts if needed or together.


Closing

CoreOS has definitely made its presence known over the past year or so. Whether or not it will become an adopted technology for most of the Cloud world, only time will tell. One would think that any "Big-Time" data center tech company would be taking a hard look as there are too many acclaimed benefits to using it. Regardless, CoreOS is definitely worth talking about and playing with. Check out their site to get a copy and try it out for yourself. Will follow up with a video overview of my CoreOS lab as soon as I find a desktop recording application.

No comments:

Post a Comment