L'Infrastructure as Code (IaC) est une pratique qui consiste à décrire l'infrastructure serveur (machines, réseaux, bases de données, load balancers) dans des fichiers de configuration versionnés, plutôt que de la configurer manuellement via des interfaces graphiques ou des commandes ad hoc.
Les outils les plus courants sont Terraform (multi-cloud, déclaratif), Ansible (configuration de serveurs), Pulumi (IaC avec des langages de programmation classiques) et les solutions natives des clouds (CloudFormation pour AWS, Bicep pour Azure). Docker et Docker Compose sont aussi une forme d'IaC pour la couche applicative.
Les bénéfices sont majeurs : reproductibilité (un environnement de staging identique à la production en quelques minutes), traçabilité (chaque changement d'infrastructure est un commit avec un auteur et une date), réversibilité (rollback par revert Git), et documentation vivante (le code décrit l'infrastructure réelle). Pour une PME, Docker Compose et un script de déploiement versionné couvrent souvent 80 % des besoins sans la complexité de Terraform.