---
title: Infrastructure as Code (IaC)
created: 2026-06-06
updated: 2026-06-06
type: concept
tags: [tech, devops, automation]
confidence: high
contested: false
sources: [synthesized]
---
# 🏗️ Infrastructure as Code (IaC)

## Définition Courte
Pratique consistant à **définir l'infrastructure** (serveurs, réseaux, DNS, etc.) dans des fichiers de configuration versionnés, plutôt que via des clics manuels.

## Explication Détaillée
L'IaC permet :
- **Reproductibilité** : recréer un environnement identique en une commande.
- **Versionnement** : l'infra évolue comme du code (Git, PR, code review).
- **Documentation vivante** : le code EST la doc.
- **Disaster recovery** : reconstruction rapide.

Deux approches :
- **Déclaratif** : on décrit l'état final (Terraform, Pulumi, CloudFormation).
- **Impératif** : on décrit les étapes (Ansible, Chef, Puppet).

## Cas d'Usage
- Déployer une stack cloud complète (VPC, EC2, RDS).
- Gérer un parc de serveurs (on-prem ou cloud).
- Provisionner un homelab reproductible.

## Outils Liés
- **Terraform** (HashiCorp) : standard multi-cloud.
- **Pulumi** : IaC en vrais langages (TS, Python, Go).
- **Ansible** : configuration + provisionnement.
- **OpenTofu** : fork open-source de Terraform.

## Pages Liées
- [[automatisation-dotfiles]]
- [[idempotence]]
- [[docker]]

## Questions Ouvertes
- L'IaC a-t-il un coût initial trop élevé pour de très petits projets ?
- Pulumi va-t-il remplacer Terraform ?
