We've been using Docker Swarm almost from the beginning of Playtomic's history. It has performed astonishingly well from day one. We haven't had a significant issue in four years. But, with tears in our eyes, it's time to say goodbye.
Why are we moving away from Docker Swarm? Well, the future of Docker Swarm is not clear. Although Docker Swarm is part of docker-ce distribution, Mirantis (owner of Docker Enterprise since November 2019) said that their main orchestrator would be Kubernetes.
The primary orchestrator going forward is Kubernetes. Mirantis is committed to providing an excellent experience to all Docker Enterprise platform customers and currently expects to support Swarm for at least two years, depending on customer input into the roadmap. Mirantis is also evaluating options for making the transition to Kubernetes easier for Swarm users.
It is true that in a later post, Mirantis said that they were going to support Docker Swarm in the future, but clearly, the orchestrator competition is led by Kubernetes.
However, the main reason why we're moving away from Docker Swarm is that we need capabilities that are not easy to get with Docker Swarm at the moment. Playtomic is growing pretty fast, and we need tools that allow us to scale up and down automatically as required.
In a containerized environment, scaling means that you need to automatically scale up the number of instances and the number of nodes in the cluster. That's something that it's not easily achievable with Docker Swarm, unfortunately.
Also, we've grown into different teams, and these teams need a way to manage their services in the cluster autonomously. On the other hand, giving full access to the cluster to every team is risky. That's why we looked for a way of granted access just to the resources the team needs to manage. Again, Docker Swarm doesn't offer a straightforward solution to this problem.
For all these reasons, we've been testing Kubernetes for a while, and although Kubernetes is definitely more complex than Docker Swarm is also more powerful. Once you understand how Kubernetes operates and understand its design, it opens up many new exciting possibilities for us here at Playtomic.
We're running our Kubernetes cluster on EKS. That gives us kind of the same feeling we had with Docker Swarm since setting up the system is pretty straightforward. We don't need to fully understand the internals of the cluster to operate it.
Farewell Docker Swarm, you served us well.