L’arrivée il y a quelques années de solutions permettant de simplifier la création et la gestion de conteneurs, telles que Docker ou rkt, combinées aux approches micro-services et leurs popularités croissantes ont entraîné rapidement le besoin de solutions dites d’orchestration de conteneurs
.
De nombreuses solutions d’orchestration ont vu le jour et se sont retrouvées disponibles en Open-Source.
Apache Mesos Marathon, Docker Swarm, Kubernetes ou encore OpenStack Magnum permettent toutes de traiter ces problématiques.
Il y a encore 2 ou 3 ans, les communautés Mesos et Docker avaient fait de gros efforts pour rendre Mesos capable d’orchestrer des Dockers.
Pourtant, cela n’empêcha pas Docker inc. de lancer sa propre solution, Docker Swarm, pour traiter ces aspects. Avec une volonté affichée d’être une solution d’orchestration plus intégrée à Docker, plus simple à mettre en place tout en assumant une gestion moins « fines » des ressources que Mesos.
Chacun à sa place, pour son besoin. Pas de vraie compétition entre les 2.
Mesos (via Marathon) semblait avoir pris de l’avance sur ses concurrents. En milieu d’année 2017, une bascule a commencé à se produire vers Kubernetes, utilisé chez Google depuis plus de 10 ans.
Alors pourquoi peut-on penser aujourd’hui que Kubernetes a gagné cette bataille et devient, un peu au même titre que Docker pour les conteneurs, le standard de l’industrie ?
Des signes qui ne trompent pas
Une croissance très rapide
- Kubernetes est actuellement l’un des projets les plus actifs sur Github.
- Les plateformes comme OpenShift ou CoreOS intègrent Kubernetes.
- Le CNCF((Cloud Native Computing Foundation)) en a fait le 1er projet
Graduated
, son rang le plus haut. - L’écosystème autours de Kubernetes s’étoffe très vite pour plus d’intégrations autours des systèmes, du monitoring, la sécurité, le déploiement continue, …
Le Cloud public l’a adopté
Toutes les principales plateformes Cloud proposent Kubernetes en tant que services :
- Google Cloud Platform avec GKE((Google Kubernetes Engine))
- Amazon Web Services avec EKS((Amazon Elastic Container Service for Kubernetes))
- Azure avec AKS((Azure Kubernetes Service))
- Digital Ocean propose une beta privée
Docker (for mac) intègre nativement Kubernetes
Docker a annoncé l’année dernière intégrer directement Kubernetes dans son application Docker for mac et propose maintenant le choix entre Swarm et Kubernetes.
Conclusion
Faut-il donc oublier vraiment toutes les autres solutions et ne faire plus que Kubernetes ?
Pour des problématiques d’orchestration combinant des applications non conteneurisées et/ou des conteneurs, alors une solution comme Mesos pourra vous être d’une grande aide.
Pour des problématiques d’orchestration dédiées uniquement aux conteneurs, sur une petite volumétrie de serveurs et conteneurs, une solution comme Docker Swarm sera certainement un bon tremplin, plus abordable.
Enfin, si vous avez besoin d’une solution fiable, robuste, scalable et pérenne, alors la balance tend clairement vers Kubernetes.