Preface
As more and more applications are moving towards the cloud with server virtualization, there is a clear necessity to deploy the user applications and services very fast and make them reliable with assured SLA by deploying the services in a right set of servers. This becomes more complex when these services are dynamic in nature, which results in making these services autoprovisioned and autoscaled over a set of nodes. The orchestration of the user application is not limited to deploy the services in the right set of server or virtual machines rather to be extended to provide network connectivity across these services to provide Infrastructure as a Service (IaaS). Compute, network, and storage are the three main resources to be managed by the cloud provider in order to provide (IaaS). Currently, there are various mechanisms to handle these requirements in more abstract fashion. There are multiple cloud orchestration frameworks, which can manage the compute, storage, and networking resources. OpenStack, Cloud Stack, and VMware vSphere are some of the cloud platforms that orchestrate these resource pools and provide IaaS.
The server virtualization provided by a Virtual Machine (VM) has its own overhead of running a separate instance of the operating system on every virtual machine. This brings down the number of VM instances that can be run on the server, which heavily impacts the operational expense. As Linux namespace, containers technologies, such as docker and rkt, are gaining its popularity; one more level of server virtualization can be introduced by deploying the application services inside a container rather than VM However, there is a necessity of an orchestration and clustering framework for the containers or dockers for deploying the services in the cluster, the discovery of the service and service parameters, providing network across these containers or dockers, and so on. CoreOS is developed for this purpose.
CoreOS is a light-weight cloud service orchestration operating system based on Google Chrome. CoreOS is developed primarily for orchestrating applications/services over a cluster of nodes. CoreOS extends the existing services provided by Linux to work for a distributed cluster and not limited to a single node.