Clusters Docker : Swarm pour simplifier les mises en œuvre ?

Avant tout conçu pour les développeurs, Docker est en passe de se doter de son propre outil de clustering, Swarm, facilitant la gestion des environnements distribués en production. Une solution moins lourde à mettre en œuvre que Mesos.

A l’occasion de la première édition du TIAD (The Incredible Automation Day), événement organisé par la SSII D2SI et centré sur le thème de l’automatisation IT, Jérôme Petazzoni, ingénieur senior chez Docker, a détaillé les méthodes permettant de mettre en place un cluster de conteneurs basés sur la technologie de la start-up. Un projet qui s’appuie aujourd’hui sur Mesos, un projet Open Source de la fondation Apache permettant de gérer des clusters. Ce système évolué permet une optimisation fine des tâches selon plusieurs dimensions (mémoire, entrées/sorties, puissance de calcul, stockage) et ouvre la voie à une optimisation supplémentaire des ressources IT dans les architectures distribuées. Aujourd’hui seulement en version 0.22, Mesos est exploité en production par de grands noms du Web comme Airbnb ou Twitter. Reste que sa mise en œuvre est réputée complexe, notamment en raison de l’utilisation de frameworks permettant de traduire les besoins applicatifs.

Si un framework pour Mesos supporte nativement les conteneurs Docker (il s’agit de Volt), la société fondée aux Etats-Unis par des anciens de l’Epitech entend aller plus loin avec Swarm, qui fait partie des principaux projets de développement annoncés par la start-up lors de sa première conférence utilisateurs en Europe, à Amsterdam, en décembre dernier. « Un système de cluster utilisant l’API Docker et compatible avec tous les outils de l’écosystème maison. On peut utiliser les commandes classiques Docker pour piloter le cluster », résume Jérôme Petazzoni. Swarm, qui regroupe plusieurs Docker Engines en une ressource unique, est organisé autour d’un gestionnaire, doté d’un service de découverte dynamique des ressources et d’esclaves Docker dotés chacun d’un agent d’enregistrement leur permettant de rejoindre le cluster. Le système, en bêta depuis fin février, introduit aussi le principe d’ambassadeur permettant de pointer vers les services Redis (système de gestion de base de données clef-valeur), ajoute l’ingénieur français aujourd’hui installé dans la Silicon Valley.

Pas encore prêt pour la production

« Mais Mesos et Swarm ne sont pas deux systèmes concurrents, assure Jérôme Petazzoni. Le premier se révèle très puissant en termes d’optimisation optimale des ressources. Même si Swarm dispose de ses propres mécanismes de placement des tâches sur les ressources du cluster, nous n’envisageons pas d’approcher Mesos sur ce terrain. » Swarm fournit en réalité une solution simple à mettre en œuvre pour bâtir des clusters Docker de taille modeste. Pour des architectures plus massives, Jérôme Pettazoni conseille d’ailleurs d’associer Swarm – pour sa capacité à exposer l’API Docker – à Mesos – en raison de la performance de ses algorithmes de placement.

[A lire notre dossier : Docker : déjà bon pour le service ?]

En tout cas, dans un proche avenir. Car, contrairement à Mesos, Swarm n’est aujourd’hui pas prêt pour des déploiements en production. « On en est arrivé là où en était la technologie Docker il y a un peu moins de deux ans », résume l’ingénieur, qui attend notamment beaucoup des feedbacks des premiers beta-testeurs. « Il va surtout falloir enrichir l’API Docker pour amener de nouvelles fonctions dans Swarm tout en collant au schéma existant, afin que les outils actuels puissent continuer à fonctionner sans accroc ». L’ingénieur explique que l’équipe de développement de Swarm travaille aussi à intégrer Compose (permettant de composer une application associant plusieurs conteneurs) afin de simplifier la reproduction d’un workflow sur plusieurs machines. « Ensuite les défis principaux consisteront à gérer les échanges entre conteneurs au sein du cluster – aujourd’hui ceux-ci s’effectuent entre conteneurs sur une même machine – et à mener à bien l’intégration de Mesos ».

A lire aussi :

Comment BlaBlaCar a automatisé sa production IT

Les conteneurs Docker débarquent sur Mac avec Kitematic

Docker étoffe ses outils d’orchestration des conteneurs