Semaine 1 · Diaporama complément

Pet ou
troupeau ?

La métaphore la plus célèbre du DevOps, racontée avec une marionnette chaussette et un troupeau numéroté.

420-5A4-MT · Serveurs évolutifs
La question qui fâche

Votre serveur
a-t-il un petit nom ?

Au cours de serveur, vous avez installé un WordPress à la main, paquet par paquet, ligne par ligne. Vous le connaissez par coeur. Vous lui avez peut-être même donné un nom. Si votre serveur a un nom, une histoire et des cicatrices, c'est un animal de compagnie. Et ça pose une question grave : que se passe-t-il le jour où il meurt ?

D'où ça vient

Pets versus cattle

L'image vient du monde DevOps : Bill Baker, ingénieur chez Microsoft, compare un jour ses serveurs à des animaux, et Randy Bias popularise la formule en 2012 sous le nom de pets versus cattle. Le CERN l'adopte pour expliquer comment il gère ses dizaines de milliers de serveurs. Aujourd'hui, c'est le vocabulaire standard du métier.

Pets

Les animaux de compagnie. Des serveurs uniques, nommés, soignés à la main. Chez nous : la marionnette chaussette, cousue main et adorée.

Cattle

Le bétail. Des serveurs identiques, numérotés, remplaçables en quelques secondes. Chez nous : le troupeau.

Retenez les mots anglais : c'est avec eux qu'on vous en parlera en entrevue.

Portrait du pet

La marionnette chaussette

minou-prod
Fiche d'identité
  • Nom : minou-prod, baptisée un vendredi soir de 2019.
  • Naissance : installée à la main, paquet par paquet.
  • Signe particulier : une rustine de configuration que plus personne ne comprend, mais qu'il ne faut surtout pas toucher.
  • Si elle tombe : panique générale, on la veille toute la nuit.

Sur les vrais réseaux, on les reconnaît à leurs noms : gandalf, pikachu, minou-prod. Des serveurs uniques, bricolés avec amour, impossibles à recréer à l'identique.

Portrait du cattle

Le troupeau numéroté

web-001
web-002
web-003
web-004 remplacée
web-005
web-006
web-007
web-352 née il y a 3 s

Dans le troupeau, plus de petits noms : des numéros. Toutes les bêtes naissent de la même image, aucune n'est spéciale. web-004 est malade ? On ne la soigne pas : on la retire et web-352 naît en trois secondes, parfaitement identique.

Face à face

Deux philosophies complètes

La marionnette (pet)
  • Naît d'une installation manuelle, longue et unique
  • Porte un nom : minou-prod
  • Malade ? On la soigne pendant des heures
  • Mise à jour : on la modifie en place, en croisant les doigts
  • Sa mort est une catastrophe
Le troupeau (cattle)
  • Naît d'une image, identique à ses soeurs
  • Porte un numéro : web-041
  • Malade ? On la remplace en secondes
  • Mise à jour : on change l'image, le troupeau se renouvelle
  • Sa mort est un mardi ordinaire

La différence n'est pas le matériel : les machines sont les mêmes. La différence, c'est l'outillage et la philosophie.

Le vrai test

Il est 3 h du matin.
Un serveur vient de mourir.
Que se passe-t-il ?

La haute disponibilité ne vient pas de serveurs qui ne tombent jamais. Elle vient de serveurs dont la mort n'a aucune importance.

Les outils du troupeau · 1

Fabriquer des bêtes identiques

Le mode troupeau exige que chaque bête naisse parfaitement identique aux autres. Toute une famille d'outils sert à écrire et conserver cet ADN.

Docker

L'image est l'ADN, le conteneur est la bête. On ne répare pas un conteneur malade : on le jette et on en relance un.

Dockerfile

La recette écrite qui fabrique l'image. Toute la naissance est documentée, reproductible, versionnable.

Docker Compose

Décrit l'attelage complet (web, base de données, cache) dans un seul fichier. Le même attelage démarre partout, identique.

Le registre

Docker Hub ou un registre privé : le catalogue génétique où tout le troupeau va chercher son ADN.

Les outils du troupeau · 2

Le berger automatique

Un troupeau sans berger se disperse. Ces outils comptent les bêtes, remplacent les mortes et distribuent les visiteurs.

Docker Swarm

L'orchestrateur du cours. On lui dit « maintiens 10 répliques » et il compte ses bêtes en permanence, nuit et jour.

Kubernetes

Le berger industriel. Même métier que Swarm, échelle planétaire : c'est lui qui domine le marché.

HAProxy · Nginx

Le balanceur de charge : personne ne parle à une bête en particulier, on parle au troupeau par une seule porte.

Prometheus · Grafana

La surveillance : la santé du troupeau se lit en statistiques et en tableaux de bord, pas en auscultant chaque bête.

Les outils du troupeau · 3

Même les machines deviennent du bétail

L'idée ne s'arrête pas aux conteneurs : les machines virtuelles et l'infrastructure entière peuvent naître d'une recette. Le métier appelle ça l'infrastructure as code.

cloud-init

La machine virtuelle se configure toute seule à sa première naissance : usagers, clés SSH, paquets.

Ansible

Le même geste répété sur cent machines, décrit dans un fichier qu'on peut relire et rejouer.

Terraform

Machines, réseaux, pare-feu : la ferme complète décrite en code, recréée en une seule commande.

Dans ce cours, on commence à la main avec VirtualBox pour comprendre chaque geste, puis on automatise de plus en plus.

La nuance importante

On remplace la vache, jamais le lait

Le mode troupeau s'applique au calcul : les serveurs web, les copies de l'application. Mais les données, elles, ne sont pas du bétail : la base de données et les fichiers de vos usagers sont uniques et précieux.

Un professionnel jette ses conteneurs sans remords et protège ses données avec une prudence de vétérinaire.

Et vous dans tout ça

De la marionnette au troupeau en 15 semaines

Votre WordPress installé à la main au cours de serveur est une marionnette chaussette : unique, adorée, fragile. La session entière raconte sa transformation en troupeau.

À retenir

Les trois idées du diaporama

La marionnette chaussette ne disparaît pas : elle prend sa retraite. On garde sa personnalité dans une image, et on la clone en troupeau. minou-prod devient web-001, web-002, web-003...