CoreOS is an extremely lightweight Linux distribution which does not contain all the extras that are associated with a typical Linux Server. This operating system is designed for large multiple machines deployments, it enables you to build your container according to your needs. CoreOS offers a completely isolated environment for your applications, which means that you don’t have to worry about annoying conflicts between applications or dependencies that can take a lot of your time. You can completely focus on building your infrastructure and deploying services.
CoreOS uses “etcd” a highly available and distributed key value store for service discovery and configuration management, as well as “fleet”, which uses etcd to provide a distributed init system.
These two services are combined to provide a systemd at cluster level instead of a per host basis. CoreOS also allows you to do useful things with fewer resources especially compared to other standard Linux distributions.
You can for example store your backup images of containers in separate locations, this is handy in case of data loss. You can also use CoreOS’ etcd tool to setup self-configuring applications in order to recover quickly when anything happens to your system. This also reduces service outages.
Discovery and Configuration Management With etcd
etcd allows you to locate you services and applications in your environment. You will receive notifications when things change in your server environment. Discovery offers a lot of features and benefits for complex clustered environments and it is considered necessary to track services and ensure availability.
Using fleet with systemd to Manage Clusters
systemd forms the core of CoreOS’ init system, it provides great performance in boot time and modern logging journal that make it the best fit for CoreOS distributed init system. Fleet works by aggregating the systemd of each machine. It schedules and starts services based on its configuration parameters. For example, if a machine fails, fleet will restart the services and applications on any eligible host in your cluster. Fleet will allow you to manage HA services since you can locate your containers on different hosts or regions