All the noise are around, the companies are moving their server applications from virtual machines (VM) to containers.
So why does everyone love containers?
Containers use shared operating systems. That means they are much more efficient than hypervisors in system resource terms. Instead of virtualizing hardware, containers rest on top of a single Linux instance. Among other benefits, containers offer a software architecture that provides portability and managed distribution of software assets. This has caused enterprises and software vendors to embrace container technology as they prepare for cloud.
But despite their success, containers still present challenges. Container scalability, for example, remains somewhat of a mystery. Some organizations struggle when trying to scale Docker, one of the leading container technologies.
There are couple of Open Source container cluster management tool. Each cluster management technology has something unique and different to offer.
- Apache Mesos is mature and can also run non-containerized workloads (such as Hadoop).
- Kubernetes tends to be opinionated. It offers little customization (for now) and networking can be a challenge. But it is moving fast and the defaults can be a quick way to get started.
- Docker Swarm is from Docker, Inc and offers the familiar Docker (single-host) API. It is the easiest to get started with, but also the least mature (as of this writing).
Container orchestration, scheduling and clustering tool vary in their features and implementation but some of the core principles are the same.
- Pool resources from a group of hosts into their components (CPU/RAM) and make them available for consumption. Also make sure the resources don’t become exhausted via over-provisioning or host failure.
- Service supervision provides a service load balancer/entry point and make sure the service remains running.
- Scaling functionality scales a service (automatic or manually) by allowing an operator to create more or fewer instances.
- System metadata provides stats about running instances, scheduling, and container health.
Going forward, I am going to do POC on above tools. I have already written couple of blog on Mesos and going to add more on reaming tools.