eadl:bloc4:fm2:intro

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
eadl:bloc4:fm2:intro [2026/04/25 03:08] jcheroneadl:bloc4:fm2:intro [2026/04/30 01:58] (Version actuelle) jcheron
Ligne 1: Ligne 1:
 ====== Introduction à l'Infrastructure as Code (IaC) ====== ====== Introduction à l'Infrastructure as Code (IaC) ======
 +
 +<jumbotron>
 +On apprend à déployer une infra de façon reproductible, versionnée, sécurisée et automatisée.
 +</jumbotron>
  
 ===== Objectifs ===== ===== Objectifs =====
Ligne 8: Ligne 12:
   * Expliquer le concept d’Infrastructure as Code   * Expliquer le concept d’Infrastructure as Code
   * Distinguer approche déclarative et impérative   * Distinguer approche déclarative et impérative
-  * Identifier les différences entre Terraform et Ansible+  * Comprendre le rôle de Terraform et Ansible dans un workflow réel
  
-===== 1. Problématique : gestion traditionnelle =====+===== 1. Mise en situation =====
  
-Dans un environnement classique (on-premise ou cloud), l’infrastructure est souvent :+Vous arrivez dans une entreprise.
  
-  * configurée manuellement (console, SSH)+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 : 
 + 
 +  environnements différents 
 +  * bugs difficiles à reproduire 
 +  * perte de temps 
 + 
 +<WRAP round help> 
 +Question : 
 + 
 +  * Quel est le principal problème ici ? 
 +</WRAP> 
 + 
 +===== 2. Problème : gestion manuelle ===== 
 + 
 +En pratique, sans automatisation : 
 + 
 +  * actions manuelles (console, SSH) 
 +  * dépend de la personne 
 +  * pas versionné 
 + 
 +Exemples concrets : 
 + 
 +  * un port ouvert "temporairement" jamais refermé 
 +  * configuration différente entre dev et prod 
 +  * perte d’informations lors d’un redéploiement 
 + 
 +<WRAP round help> 
 +Question : 
 + 
 +  * Pourquoi ces problèmes sont difficiles à corriger ? 
 +</WRAP> 
 + 
 +===== 3. Micro-exercice : reproduction d’un environnement ===== 
 + 
 +Objectif : 
 + 
 +Comprendre la difficulté de reproduire un environnement sans automatisation 
 + 
 +==== Étape 1 ==== 
 + 
 +Fichier : terminal 
 + 
 +<sxh bash;gutter:false> 
 +docker run -d -p 8081:80 --name test_nginx nginx 
 +</sxh> 
 + 
 +<WRAP round todo> 
 +Validation : 
 + 
 +  * Ouvrir http://localhost:8081 
 +</WRAP> 
 + 
 +==== Étape 2 ==== 
 + 
 +Fichier : terminal 
 + 
 +<sxh bash;gutter:false> 
 +echo "<h1>Version 1</h1>" > index.html 
 +docker cp index.html test_nginx:/usr/share/nginx/html/index.html 
 +</sxh> 
 + 
 +<WRAP round todo> 
 +Validation : 
 + 
 +  * Rafraîchir la page 
 +</WRAP> 
 + 
 +==== Étape 3 ==== 
 + 
 +Fichier : terminal 
 + 
 +<sxh bash;gutter:false> 
 +docker rm -f test_nginx 
 +docker run -d -p 8081:80 --name test_nginx nginx 
 +</sxh> 
 + 
 +<WRAP round help> 
 +Questions : 
 + 
 +  * Que s’est-il passé ? 
 +  * Pourquoi la modification a disparu ? 
 +</WRAP> 
 + 
 +===== 4. Transition ===== 
 + 
 +Sans automatisation : 
 + 
 +  * les modifications sont perdues 
 +  * rien n’est tracé
   * difficile à reproduire   * difficile à reproduire
-  * source d’erreurs humaines 
-  * peu documentée 
  
-Exemples de problèmes :+<WRAP round help> 
 +Question :
  
-  * "Ça marche sur ma machine" +  * Comment éviter ce problème dans une équipe ? 
-  * configurations différentes entre dev prod +</WRAP>
-  * perte de temps lors des déploiements +
-  * difficulté de rollback+
  
-===== 2. Définition de l’Infrastructure as Code =====+===== 5. Définition de l’Infrastructure as Code =====
  
-L’Infrastructure as Code (IaC) consiste à :+Principe :
  
-  * décrire l’infrastructure sous forme de code+  * décrire l’infrastructure avec du code
   * versionner ce code (Git)   * versionner ce code (Git)
-  * automatiser les déploiements+  * exécuter automatiquement
  
-Exemple :+Analogie :
  
-Au lieu de créer une VM à la main : +  * avant : configuration "à la main" 
-  → on écrit un fichier de configuration+  * après : recette écrite et reproductible
  
-Avantages :+===== 6. Exemple simple =====
  
-  * reproductibilité +Objectif :
-  * traçabilité +
-  * automatisation +
-  * réduction des erreurs+
  
-===== 3. Déclaratif vs Impératif =====+  * obtenir un serveur web fonctionnel 
 + 
 +Sans IaC : 
 + 
 +  * commandes manuelles 
 +  * étapes non tracées 
 + 
 +Avec IaC : 
 + 
 +  * fichier Terraform → crée le serveur 
 +  * playbook Ansible → configure le serveur 
 + 
 +Résultat : 
 + 
 +  * reproductible 
 +  * automatisé 
 +  * partagé avec l’équipe 
 + 
 +===== 7. Déclaratif vs Impératif =====
  
 ==== Approche impérative ==== ==== Approche impérative ====
Ligne 52: Ligne 165:
 On décrit les étapes : On décrit les étapes :
  
-  * créer un serveur 
   * installer nginx   * installer nginx
   * démarrer le service   * démarrer le service
  
-Exemple +Limite 
-  * scripts bash + 
-  * Ansible (en partie)+  * dépend de l’état initial
  
 ==== Approche déclarative ==== ==== Approche déclarative ====
  
-On décrit l’état final souhaité :+On décrit le résultat :
  
-  * "je veux un serveur avec nginx installé"+  * "je veux un serveur web"
  
-L’outil s’occupe des étapes.+L’outil gère les actions nécessaires
  
-Exemple : +<WRAP round help> 
-  * Terraform+Question :
  
-===== 4. Terraform vs Ansible =====+  * Pourquoi cette approche est-elle adaptée au cloud ? 
 +</WRAP>
  
-^ Outil      ^ Type        ^ Usage principal ^ +===== 8. Terraform vs Ansible =====
-Terraform  | Déclaratif  | Provisionnement infrastructure | +
-Ansible    | Impératif   | Configuration des machines     |+
  
 Terraform : Terraform :
  
-  * crée les ressources (EC2, réseau, etc.) +  * crée l’infrastructure 
-  * gère l’état (state)+  * maintient un état (state)
  
 Ansible : Ansible :
  
-  * configure les serveurs +  * configure les systèmes 
-  * installe des logiciels +  * exécute des tâches 
-  * déploie des applications+ 
 +Exemple : 
 + 
 +  * Terraform → crée un conteneur 
 +  * Ansible → modifie son contenu 
 + 
 +===== 9. Workflow DevOps ===== 
 + 
 +  * Terraform → infrastructure 
 +  * Ansible → configuration 
 +  * pipeline → déploiement applicatif 
 + 
 +Chaîne :
  
-===== 5. Workflow DevOps typique =====+  Code → Infrastructure → Configuration → Application
  
-  * Terraform → crée l’infrastructure +===== 10. Transition vers le TD =====
-  * Ansible → configure les serveurs +
-  * Application → déployée ensuite+
  
-Schéma logique :+Dans le TD suivant :
  
-  Infrastructure → Configuration → Application+  * vous allez automatiser ce que vous venez de faire manuellement 
 +  * créer un service avec Terraform 
 +  * le modifier avec Ansible
  
-===== 6. Bonnes pratiques =====+Objectif :
  
-  * Tout versionner (Git) +  * comprendre la complémentarité des outils
-  * Ne jamais modifier à la main en production +
-  * Utiliser des variables +
-  * Tester en environnement de dev+
  
-===== À retenir =====+===== 11. À retenir =====
  
   * IaC = infrastructure gérée comme du code   * IaC = infrastructure gérée comme du code
 +  * objectif : reproductibilité et fiabilité
   * Terraform → provisioning   * Terraform → provisioning
   * Ansible → configuration   * Ansible → configuration
-  * Objectif : automatiser, fiabiliser, industrialiser 
  
  • eadl/bloc4/fm2/intro.1777079312.txt.gz
  • Dernière modification : il y a 12 jours
  • de jcheron