docker-swarm

Qu’est-ce que Docker-Swarm ?

Swarm ou Docker-Swarm est un outil conçu pour enrichir Docker Engine, qui est un moteur d’exécution, et permettre à Docker d’offrir un “mode Swarm”. Ce mode donne la possibilité de créer des clusters de machines exécutants des conteneurs Docker, qui fonctionnent ensemble comme une seule machine.

Vous pouvez ainsi exécuter des commandes Docker sur les machines composant le cluster, comme s’il s’agissait d’une seule et même machine. Le cluster est contrôlé depuis une machine maître, appelée Node Manager (nœud manager).

Docker-Swarm permet entre autres de :

  • Coordonner les conteneurs et de leur affecter des tâches à chacun d’eux.  
  • Gérer et suivre l’état des différents conteneurs dans le cluster, et redistribuer les tâches en cas de besoins.
  • Assurer la scalabilité et flexibilité de l’infrastructure, en augmentant ou diminuant le nombre de clusters mis en services.
  • Gérer et mettre à jour les applications sur plusieurs conteneurs.

Pourquoi utiliser Docker-Swarm ? 

Il n’est pas rare pour les développeurs, administrateurs système, et ingénieurs DevOps d’être en nécessité d’exploiter des centaines de conteneurs Docker simultanément pour leurs projets.

La gestion et la synchronisation de ces conteneurs s’avèrent un réel challenge, et peuvent parfois être impossibles.

La solution à ce problème est l’orchestration des différents conteneurs du cluster. C’est là que Docker-Swarm intervient comme une solution de choix. Il est fiable, automatisé, scalable, décentralisé, simple d’utilisation et ne requiert aucune configuration particulière.

Comment fonctionne Docker-Swarm ? 

Docker-Swarm se compose de deux parties distinctes : les noeuds et les services. 

# – Les noeuds 

Les nœuds sont de deux types, les Managers et les Workers.

  • Les Manager Nodes s’occupent des tâches de gestion, de supervision et de contrôle du cluster. Les managers assurent donc la stabilité et la performance du Swarm et des services qu’il exécute.
  • Les Workers Nodes en revanche n’ont aucun droit de gestion et se chargent uniquement d’exécuter les conteneurs. Chaque Worker a besoin d’au moins un Manager pour fonctionner.

Par défaut, chaque Manager est aussi un Worker mais il est possible d’empêcher un Manager d’exécuter des tâches des Workers, en ajustant sa configuration par défaut.

# – Les services 

Outre les Nodes, Swarm fonctionne grâce aux services, qui sont des descriptions de l’état qu’on souhaite garder pour les noeuds du cluster. Pour fonctionner, un service a besoin d’un conteneur et de commandes à exécuter sur celui-ci. 

Les services exécutés sur Swarm peuvent avoir plusieurs caractéristiques, telles que : 

  • Options des services : lors de la création du service, vous pouvez configurer plusieurs paramètres selon les besoins de vos applications (limites mémoire, le nombre des répliques de l’image à exécuter sur Swarm, etc.).
  • État désiré : le déploiement du service permet de définir l’état désiré sur le Swarm. L’état désiré représente le comportement normal ou la configuration idéale de l’application sur Swarm. Par exemple, lorsqu’un problème survient et met à défaut l’état désiré, les “Manager Nodes” interviennent pour corriger le problème en affectant plus de ressources au service.

Concepts clés

  • Swarm : plusieurs machines exécutant des conteneurs Docker et qui fonctionnent ensemble, comme une seule et même machine grâce au mode Swarm de Docker. Le mode Swarm est une fonctionnalité intégrée au Docker Engine et qui peut être activée en cas de besoin pour orchestrer les différentes machines du cluster.
  • Swarmkit : il s’agit d’un projet indépendant qui sert à orchestrer des systèmes distribués. C’est cet outil qui permet d’exécuter Docker en Swarm Mode.
  • Task (Tâche) : les noeuds managers affectent des tâches spécifiques du projet à un certain nombre de travailleurs pour les exécuter.
  • Service : correspond à la description de l’état souhaité pour les conteneurs composant votre Swarm. Quand vous créez un service, vous déterminez la configuration idéale et le comportement des conteneurs qui exécuteront les tâches du projet.
  • Nodes (noeuds) : quand une machine s’ajoute au Swarm, elle devient un noeud du cluster. Vous pouvez avoir plusieurs noeuds sur une même machine. Cependant, en pratique, chaque noeud est souvent exécuté sur une machine séparée.
  • Manager nodes (noeuds managers) : ils distribuent les tâches à exécuter et supervisent les autres noeuds du cluster.
  • Worker nodes (noeuds travailleurs) : ils exécutent les tâches qui leur sont affectées par les Managers nodes.

Qui est concerné ? 

Docker-Swarm est conçu pour coordonner et exploiter collectivement les ressources d’un grand nombre de machines pour exécuter des conteneurs Docker. Ceci le rend parfait pour les équipes de développement, les administrateurs système et les responsables IT qui veulent déployer de façon rapide et scalable leurs applications ou celles de leurs clients.

Cela fait de Docker-Swarm une solution idéale pour les équipes adoptant l’approche Devops pour développer et déployer rapidement leurs solutions tout en gardant le maximum de flexibilité.

Se faire accompagner par des experts Devops

Vous souhaitez gagner du temps dans vos déploiements de vos applications ? Vous voulez minimiser les risques d’erreurs lors de ces déploiements ? Vous souhaitez disposer d’un processus de déploiement, répétable, sécurisé et exécuté automatiquement ?

Un expert vous accompagne et étudie avec précisions vos besoins. Vous souhaitez avoir plus d’information sur cette approche ? Consultez notre solution dédiée.

Partage

Les commentaires sont fermés.

Inscrivez-vous à la newsletter Syloé !

Recevez gratuitement les analyses de nos experts