Table des matières

Graphes des services

Cette page présente l’infrastructure de Picasoft du point de vue des services déployés via Docker sur nos machines.

Ouaaaaais ! Des schémas !

Note:

Picasoft utilise actuellement 5 machines virtuelles pour déployer ses services en production. D’autres machines sont utilisées à des fins de tests. Ces machines sont :

  • pica01, pica02 et pica03, généralistes.
  • media, pour les services consommateurs d’espace disque (multimédias…).
  • monitoring, pour les services “techniques” ou restreints (LDAP, mail, Cloud…).

Le nombre de services augmentant, il est difficile d’avoir une vue d’ensemble ce qui tourne et surtout, où ça tourne.

L’infrastructure étant dynamique, il est impossible de maintenir des diagrammes de l’infrastructure à la main sans les rendre rapidement obsolètes. Nous utilisons l’outil Docker Graph Bot pour générer automatiquement des diagrammes des machines de production. Ils sont générés chaque jour.

Attention:

  • Les graphes sont très larges ; il n’existe pas de solution fiable pour générer automatiquement des graphes avec une largeur acceptable quand le nombre de services augmente.
  • Par service, on entend à la fois les services publics (reliés à un port public ou à une URL sur le graphe) et les services “adminsys”.

Ils sont où les beaux schémas ?

Si jamais un graphe n’est plus généré (la date est trop ancienne, par exemple), il faut sans doute renouveler le certificat pour se connecter au socket Docker à distance. La légende pour mieux comprendre :

Ça sert à quoi ton truc ?

Ces schémas ne serviront sans doute pas à tout le monde, mais je vais prendre mon exemple.

Je veux savoir où tourne Etherpad

Soit je le sais par cœur, soit je vais me connecter sur toutes les machines une par une et je fais des docker ps, soit je regarde les graphes et je cherche visuellement un conteneur Etherpad.

Perso, je trouve que ça va plus vite avec la deuxième option.

Vérifier qu'il n'y a pas d'incohérences

On voit assez vite ce qui est suspect sur le graphe :

Note:

Les graphes montrent bien les volumes. Ça m’est arrivé de parcourir un graphe et de voir un conteneur postgresql avec deux volumes attachés : un nommé, et un non-nommé. C’était à cause d’une faute de frappe dans un fichier de configuration.

Bref, je pense que c’est un bon outil d’adminsys.

Transparence pour le public

Même s’il faut quelques bases technique pour interpréter le graphe (image ? conteneur ? réseau Docker ? etc), il donne une vision quasi instantanée de notre infrastructure :

Note:

C’est pour le T de Transparent des CHATONS. Ça nous évite de maintenir laborieusement, à la main, une liste des conteneurs en production sur nos machines.