Brian Jackson - Fotolia
Mesos vs Kubernetes : le match de l’orchestration des containers
Si Mesos est bien positionné pour ses capacités de déploiements à large échelle, Kubernetes se place au centre d’un écosystème grandissant d’acteurs et d’outils.
Les entreprises fédèrent leurs clusters de containers pour unifier et gérer plusieurs domaines, tout en les maintenant autonomes. La fédération, qui consiste à combiner sans homogénéiser, permet de créer une configuration de cloud hybride avec des cycles de vie et de déploiements distincts. Si elle ouvre les options d'hébergement, elle est également difficile à mettre en oeuvre.
Il existe deux approches en matière de fédération de containers. La première consiste à associer Apache Mesos et Marathon. La seconde est Kubernetes, soit en tant que plateforme autonome, soit utilisée avec d'autres outils.
Chez Mesos, la fédération est vue comme un groupe de parties égales interconnectées, tandis que la fédération avec Kubernetes entretient une relation maître-worker plus spécifique - le maître réunit les opérateurs pour soutenir l'objectif commun. Il convient de comparer Mesos et Kubernetes en fonction de leurs fonctionnements spécifiques.
Mesos pour l'abstraction
Mesos est une plateforme de déploiements de containers à grande échelle. Il permet à plusieurs datacenters distribués d'agir en tant que pool de containers commun. Mesos fonctionne seul ou en association avec Mesosphere DC / OS. Le noyau Mesos fournit la plupart des fonctionnalités de fédération, que vous choisissiez la version entreprise ou en open source. Marathon est l'orchestrateur associé le plus souvent à Mesos, mais on peut également utiliser Kubernetes.
Mesos propose deux modèles de fédération. Une première approche place toute l'infrastructure sous une couche de contrôle et crée une abstraction des ressources du datacenter, d'un cloud public, d'un déploiement de VM par exemple. Cette couche de contrôle forme une abstraction uniforme pour l'hébergement. Avec le deuxième modèle, la technologie rassemble des déploiements Mesos distincts de manière à ce qu'aucun ne soit relié à un autre, mais coopèrent tous de manière totalement distribuée et tolérante aux pannes.
Les options de fédération de Kubernetes
Kubernetes est un orchestrateur qui détermine là où s’exécutent les containers et sur quelles ressources. Les containers sont déployés dans des pods Kubernetes sur des serveurs baremetal ou des VM. Cette dernière option permet par exemple d'intégrer les offres IaaS de cloud public entre elles. Un processus local, contrôlé par un processus maître, gère les déploiements - à partir d’un control plane Kubernetes qui transmet toutes les instructions de déploiement.
La fédération dans Kubernetes est une fonctionnalité en pleine mutation. Le modèle de fédération d'origine, version 1.0, est obsolète et la version 2.0 est à peine sèche lors de l’écriture de cet article. Red Hat OpenShift est un exemple de distribution commerciale Kubernetes qui utilise la v2.0.
Les utilisateurs Kubernetes peuvent ajouter des outils de l'écosystème afin d'étendre le control plane à plusieurs clusters. Stackpoint de NetApp, Rancher et HTBASE de Juniper Network sont quelques une de ces options d'écosystème pour la fédération. Les technologies de service mesh comme Istio ou Nginx, permettent quant à eux de créer une connectivité et d'ajouter un load balancer aux déploiements alors fédérés.
Tous les outils qui étendent le control plane de Kubernetes permettent un hébergement redondant de l'élément maître, mais il existe encore une relation explicite maître-opérateur, contrairement à la fédération avec Mesos. L’approche de Kubernetes est mieux adaptée aux déploiements où les clusters Kubernetes sont largement autonomes, et parfois coopératifs.
Choisir entre Mesos et Kubernetes
Choisir entre Mesos et Kubernetes se résume à faire un choix entre une technologie établie et un nouvel arrivant.
Mesos présente de nombreux avantages pour la fédération de containers. Cette technologie multifonctions supporte les déploiements qui s'exécutent partout, sur des dizaines de milliers d'hôtes, avec des centaines de milliers de containers. Mesos domine si la dimension d’échelle est importante. Mais ses nombreuses et riches fonctions le rendent plus compliqué que Kubernetes et de nombreuses entreprises n'utilisent pas toutes ses fonctionnalités.
Aucune des options de fédération Kubernetes n'a été testée à une échelle similaire à celle de Mesos et pourtant, il y a plus d'utilisateurs de Kubernetes que d'utilisateurs de Mesos. Cette large base d'utilisateurs place Kubernetes au centre d'un écosystème en expansion et certains utilisateurs de Mesos évaluent actuellement une migration vers Kubernetes.
L’écosystème autour de Kubernetes a étendu les fonctions du framework, en y apportant notamment l’abstraction de ressources, autrefois le domaine de Mesos. Couplé à Terraform, Kubernetes forme un outil de gestion de configuration de ressources. Avec Terraform, Kubernetes dispose de l’agilité nécessaire pour gérer presque toutes les ressources d’un cloud.
La présence de cet écosystème change radicalement le paysage de la fédération de containers en faveur de Kubernetes plutôt que de Mesos. Il associe les capacités de fédération de Kubernetes à des outils de monitoring, de gestion du cycle de vie, ainsi que de découverte et de déploiement de services.
La version 2.0 de la fédération Kubernetes, constitue la meilleure approche pour deux cas d’usages :
- Pour les entreprises ayant de nombreuses applications construites à partir d'un nombre raisonnable de composants, par opposition à celles qui s’appuient sur un grand nombre de composants et qui nécessitent un load balancer pour le front-end.
- celles qui utilisent les services managés de Kubernetes.
La fédération de Mesos reste le meilleur choix pour certains déploiements de containers. C’est par exemple, le cas pour des applications aux nombreux composants, distribués à l'échelle mondiale et dont les charges sont équilibrées sur l’ensemble de l'infrastructure de l'entreprise. Mesos séduit les géants du Web, qui ont tendance à exécuter ce type de déploiement. Mais la plupart des entreprises s'en sort mieux avec Kubernetes.