Table des matières

Introduction à l'Infrastructure as Code (IaC)

On apprend à déployer une infra de façon reproductible, versionnée, sécurisée et automatisée.

Objectifs

À la fin de cette séance, vous serez capable de :

1. Mise en situation

Vous arrivez dans une entreprise.

Un développeur vous dit :

"Pour lancer l’environnement :
 - démarre un conteneur
 - ouvre le port 8080
 - copie les fichiers à la main"

Un autre développeur fait différemment.

Résultat :

Question :

  • Quel est le principal problème ici ?

2. Problème : gestion manuelle

En pratique, sans automatisation :

Exemples concrets :

Question :

  • Pourquoi ces problèmes sont difficiles à corriger ?

3. Micro-exercice : reproduction d’un environnement

Objectif :

Comprendre la difficulté de reproduire un environnement sans automatisation

Étape 1

Fichier : terminal

docker run -d -p 8081:80 --name test_nginx nginx

Validation :

Étape 2

Fichier : terminal

echo "<h1>Version 1</h1>" > index.html
docker cp index.html test_nginx:/usr/share/nginx/html/index.html

Validation :

  • Rafraîchir la page

Étape 3

Fichier : terminal

docker rm -f test_nginx
docker run -d -p 8081:80 --name test_nginx nginx

Questions :

  • Que s’est-il passé ?
  • Pourquoi la modification a disparu ?

4. Transition

Sans automatisation :

Question :

  • Comment éviter ce problème dans une équipe ?

5. Définition de l’Infrastructure as Code

Principe :

Analogie :

6. Exemple simple

Objectif :

Sans IaC :

Avec IaC :

Résultat :

7. Déclaratif vs Impératif

Approche impérative

On décrit les étapes :

Limite :

Approche déclarative

On décrit le résultat :

L’outil gère les actions nécessaires

Question :

  • Pourquoi cette approche est-elle adaptée au cloud ?

8. Terraform vs Ansible

Terraform :

Ansible :

Exemple :

9. Workflow DevOps

Chaîne :

Code → Infrastructure → Configuration → Application

10. Transition vers le TD

Dans le TD suivant :

Objectif :

11. À retenir