Préparation

DevOps & Cloud

De Terraform à l'IA : les fiches par thématique, les questions d'entretien avec leurs réponses — y compris les cas situationnels vécus — et un quiz pour se tester sur chaque sujet.

Terraform & Infrastructure as Code

Le principe

L'infrastructure est décrite dans des fichiers déclaratifs(HCL) versionnés dans Git : on décrit l'état cible, Terraform calcule le chemin. Multi-cloud via les providers (AWS, Azure, Kubernetes, Datadog…). Le cycle :

write
code HCL revu en MR
plan
diff cible vs réel — aucune modification
apply
convergence vers l'état cible
resource "aws_s3_bucket" "sauvegardes" {
  bucket = "backups-prod"
  tags   = { equipe = "plateforme", env = "prod" }

  lifecycle { prevent_destroy = true }   # filet de sécurité
}

Le state — le concept n° 1

  • Cartographie entre le code et les ressources réelles (IDs, attributs)
  • Backend distant en équipe : S3 + lock DynamoDB, ou Azure Storage + lease — partage et verrouillage des apply concurrents
  • Peut contenir des secrets → chiffré au repos, accès restreint
  • Jamais édité à la main — terraform state mv/rm, import, blocs moved
  • Un state par environnement : le blast radius de dev ne touche pas la prod

Drift, modules, environnements

  • Drift : la réalité diverge du code (modif console). Détection : plan planifié en CI ; correction : rapatrier dans le code ou réappliquer
  • Modules : encapsuler un ensemble cohérent (VPC, cluster) derrière des variables — versionnés, interfaces petites, un répertoire examples/
  • Environnements : un répertoire + backend + tfvars par env, modules partagés — plutôt que les workspaces
  • Le plan est posté en merge request et validé par un humain avant apply en prod