Return to site

Orchestrator Comparison: Docker Swarm vs Kubernetes vs Apache Mesos

· mashup,devops

Here the three most common orchestrators within the OpenSource community: Docker Swarm, Kubernetes, and Apache Mesos.

Let's analyze the advantages and disadvantages that each one offers us, as well as its approach.

What is an orchestrator and what is it for?

An orchestrator makes sense when we have to manage a system with many containers implemented on a multitude of servers, in a clustered environment.

An orchestrator is responsible, among other things, for:

  1. ―Control and direct the creation of containers,
  2. ―Verify its correct execution
  3. ―Offer correct error management.

Docker Swarm

  1. ―Docker's own orchestration mechanism
  2. ―Easy for anyone who knows Docker
  3. ―Supported by AWS
  4. ―Has 2 elements: managers and workers (The different Managers organize among themselves so that one of them is the leader, assigning tasks to the workers. A manager can also function as a worker if the system requires it.)
  5. ―No fault control
broken image

Kubernetes

  1. ―Created by Google
  2. ―Manages PODs instead of managing containers
  3. ―Based on a master-slave node model
  4. ―Uses its own API (custom operations can be added)
  5. ―Work with different types of containers (docker, rkt, cri-o or frakti)
  6. ―Compliant with Apache Mesos
  7. ―Manual installation
  8. ―Able of automatic scaling
  9. ―High availability
broken image

Apache Mesos

  1. ―Opensource cluster manager based on the Linux kernel
  2. ―Run on any platform
  3. ―Able to distributing the load between different servers
  4. ―Has 3 master nodes (1 active and 2 in standby prepared for failures)
  5. ―Has 3 Zookeepers (centralized systems of configurations that provide distributed synchronization and that allow fault tolerance)
  6. ―Supports linear scalability
  7. ―Offers high availability (thanks to Zookeepers)
  8. ―Compliant with Kubernetes and supports Docker and Appc containers.
broken image

Conclusion

After analyzing the advantages and disadvantages of the three orchestrators, the only thing left to do is choose which one is more complete and efficient. This will depend in each case on the needs, use and performance of the architecture to be developed.

In general, Kubernetes is much more complete and complex; while, for simplicity and immediate start-up, Swarm would be the best option. But if we talk about fault tolerance here Swarm loses all force, in the same way as if we consider the types of containers supported.

Mesos, by power and service, could be presented as the ideal container,  f it were not for a support community that, compared to Kubernetes, makes it lose great value; Despite this, we are talking about a perfectly valid orchestrator, added to the fact that Kubernetes and Mesos can work together.