Infrastructure as Code (IaC)
L’Infrastructure as Code (IaC) consiste à décrire l’infrastructure — serveurs, réseaux, DNS, règles de pare-feu, configuration système — dans des fichiers texte versionnés, appliqués par un outil, plutôt que de la construire à la main via des consoles et des commandes. L’infrastructure devient un artefact qu’on relit, qu’on teste et qu’on rejoue, au lieu d’un état accumulé dont personne n’a la recette complète.
Déclaratif ou impératif
Deux familles d’outils coexistent. Les outils déclaratifs (Terraform, OpenTofu, les manifests Kubernetes) décrivent l’état cible — « il existe trois serveurs avec ces caractéristiques » — et calculent eux-mêmes les opérations pour y arriver depuis l’état courant. Les outils impératifs ou procéduraux (Ansible en est l’exemple dominant, avec une forte composante d’idempotence) décrivent des étapes à exécuter. En pratique les deux se combinent : le déclaratif pour provisionner les ressources, le procédural pour configurer ce qui tourne dessus. Le choix importe moins que la règle qui va avec : une fois un périmètre géré par l’outil, plus personne ne le modifie à la main.
Le problème que l’IaC résout vraiment
Le bénéfice visible est la reproductibilité : recréer un environnement complet — pour un test, une reprise après incident, une migration — devient une exécution d’outil au lieu d’une archéologie. Le bénéfice profond est la disparition des serveurs-flocons de neige, ces machines configurées manuellement pendant des années, uniques et irremplaçables, que plus personne n’ose redémarrer. Avec l’IaC, la connaissance de l’infrastructure est dans le dépôt, pas dans la mémoire des personnes présentes au moment où ça s’est construit.
La dérive, ennemi permanent
Le talon d’Achille du modèle s’appelle la dérive (drift) : l’écart qui se
creuse entre ce que décrivent les fichiers et ce qui existe réellement,
chaque fois qu’une modification manuelle contourne l’outil. Un correctif
appliqué en urgence directement sur la console et jamais reporté dans le
code sera silencieusement écrasé à la prochaine application — souvent des
semaines plus tard, quand plus personne ne fait le lien. Les outils savent
détecter la dérive (terraform plan la montre) ; encore faut-il l’exécuter
régulièrement et traiter tout écart comme un incident de processus, pas
comme une curiosité. L’IaC est autant une discipline d’équipe qu’un
outillage : le code ne vaut que si le passage par le code est le seul chemin.