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 02:04] jcheroneadl:bloc4:fm2:intro [2026/04/30 01:58] (Version actuelle) jcheron
Ligne 1: Ligne 1:
-====== Introduction à lInfrastructure 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 =====
  
-  * Comprendre les limites des approches traditionnelles +À la fin de cette séance, vous serez capable de :
-  * Identifier les problématiques résolues par l’IaC +
-  * Découvrir les principes fondamentaux de l’IaC +
-  * Distinguer les rôles de Terraform et Ansible+
  
-===== 1. Problèmes sans Infrastructure as Code =====+  * Comprendre les limites de la gestion manuelle d’infrastructure 
 +  * Expliquer le concept d’Infrastructure as Code 
 +  * Distinguer approche déclarative et impérative 
 +  * Comprendre le rôle de Terraform et Ansible dans un workflow réel
  
-===== 1.1 Gestion manuelle des infrastructures =====+===== 1. Mise en situation =====
  
-Dans une approche classique :+Vous arrivez dans une entreprise.
  
-  * Création manuelle des machines (console cloud) +Un développeur vous dit :
-  * Configuration à la main (SSH, scripts) +
-  * Déploiements non standardisés+
  
-Problèmes :+  "Pour lancer l’environnement : 
 +   - démarre un conteneur 
 +   - ouvre le port 8080 
 +   - copie les fichiers à la main"
  
-  * Erreurs humaines fréquentes +Un autre développeur fait différemment.
-  * Temps de déploiement long +
-  * Difficulté à reproduire un environnement+
  
-===== 1.2 Dérive de configuration (Configuration Drift) =====+Résultat :
  
-Définition :+  * environnements différents 
 +  * bugs difficiles à reproduire 
 +  * perte de temps
  
-Un système évolue au fil du temps et ne correspond plus à sa configuration initiale.+<WRAP round help> 
 +Question :
  
-Exemple :+  * Quel est le principal problème ici ? 
 +</WRAP>
  
-  * Un serveur en production a été modifié manuellement +===== 2. Problème : gestion manuelle =====
-  * L’environnement de test n’est plus identique +
-  * Bugs impossibles à reproduire+
  
 +En pratique, sans automatisation :
  
-===== 1.3 Non reproductibilité =====+  * actions manuelles (console, SSH) 
 +  * dépend de la personne 
 +  * pas versionné
  
-Sans automatisation :+Exemples concrets :
  
-  * Impossible de recréer rapidement un environnement +  * un port ouvert "temporairement" jamais refermé 
-  * Dépendance à des connaissances implicites +  * configuration différente entre dev et prod 
-  * Documentation souvent obsolète+  * perte d’informations lors d’un redéploiement
  
 +<WRAP round help>
 +Question :
  
-===== 1.4 Passage à l’échelle difficile =====+  * Pourquoi ces problèmes sont difficiles à corriger ? 
 +</WRAP>
  
-Exemple :+===== 3. Micro-exercice reproduction d’un environnement =====
  
-  * Créer 1 serveur → faisable à la main +Objectif :
-  * Créer 50 serveurs → ingérable+
  
-Problèmes :+Comprendre la difficulté de reproduire un environnement sans automatisation
  
-  * Temps +==== Étape 1 ====
-  * cohérence +
-  * erreurs cumulées+
  
-===== 1.5 Manque de traçabilité =====+Fichier : terminal
  
-Questions difficiles :+<sxh bash;gutter:false> 
 +docker run -d -p 8081:80 --name test_nginx nginx 
 +</sxh>
  
-  * Qui a modifié quoi ? +<WRAP round todo> 
-  * Quand ? +Validation :
-  * Pourquoi ?+
  
-===== 1.6 Transition =====+  * Ouvrir http://localhost:8081 
 +</WRAP>
  
-L’infrastructure devient :+==== Étape 2 ====
  
-  * trop complexe +Fichier : terminal
-  * trop dynamique +
-  * trop critique+
  
-=Besoin d’automatisation et de standardisation+<sxh bash;gutter:false> 
 +echo "<h1>Version 1</h1>" > index.html 
 +docker cp index.html test_nginx:/usr/share/nginx/html/index.html 
 +</sxh>
  
-===== 2. Concepts de l’Infrastructure as Code =====+<WRAP round todo> 
 +Validation :
  
-===== 2.1 Définition =====+  * Rafraîchir la page 
 +</WRAP>
  
-Infrastructure as Code :+==== Étape 3 ====
  
-Décrire l’infrastructure sous forme de code afin de pouvoir :+Fichier terminal
  
-  * versionner +<sxh bash;gutter:false> 
-  * automatiser +docker rm -f test_nginx 
-  * reproduire+docker run -d -p 8081:80 --name test_nginx nginx 
 +</sxh>
  
-===== 2.2 Principes fondamentaux =====+<WRAP round help> 
 +Questions :
  
-==== Déclaratif vs procédural ====+  * Que s’est-il passé ? 
 +  * Pourquoi la modification a disparu ? 
 +</WRAP>
  
-  * Déclaratif : décrire l’état cible +===== 4. Transition =====
-  * Procédural : décrire les étapes+
  
-==== Idempotence ====+Sans automatisation :
  
-Appliquer plusieurs fois une configuration produit le même résultat+  * les modifications sont perdues 
 +  * rien n’est tracé 
 +  * difficile à reproduire
  
-==== Versioning ====+<WRAP round help> 
 +Question :
  
-  * Code stocké dans Git +  * Comment éviter ce problème dans une équipe ? 
-  * Historique des modifications +</WRAP>
-  * rollback possible+
  
-==== Automatisation ====+===== 5. Définition de l’Infrastructure as Code =====
  
-  * Déploiement rapide +Principe :
-  * Réduction des erreurs humaines+
  
 +  * décrire l’infrastructure avec du code
 +  * versionner ce code (Git)
 +  * exécuter automatiquement
  
-==== Reproductibilité ====+Analogie :
  
-  * Même code = même infrastructure+  * avant : configuration "à la main" 
 +  * après : recette écrite et reproductible
  
-===== 2.3 Cycle de vie =====+===== 6Exemple simple =====
  
-  * Écriture du code +Objectif :
-  * Planification (diff) +
-  * Application +
-  * Mise à jour +
-  * Destruction+
  
-===== 3. Deux approches complémentaires =====+  * obtenir un serveur web fonctionnel
  
-===== 3.1 Vision globale =====+Sans IaC :
  
-Deux grandes catégories d’outils :+  * commandes manuelles 
 +  * étapes non tracées
  
-  * Provisioning d’infrastructure +Avec IaC :
-  * Configuration des systèmes+
  
-===== 3.2 Terraform =====+  * fichier Terraform → crée le serveur 
 +  * playbook Ansible → configure le serveur
  
-Rôle :+Résultat :
  
-  * Provisionner l’infrastructure+  * reproductible 
 +  * automatisé 
 +  * partagé avec l’équipe
  
-Exemples :+===== 7. Déclaratif vs Impératif =====
  
-  * VM (EC2) +==== Approche impérative ====
-  * Réseau (VPC, subnets) +
-  * Load balancer +
-  * Base de données+
  
-Caractéristiques :+On décrit les étapes :
  
-  * Approche déclarative +  * installer nginx 
-  * Gestion d’un état (state) +  * démarrer le service
-  * Interaction via API cloud+
  
-===== 3.3 Ansible =====+Limite :
  
-Rôle :+  * dépend de l’état initial
  
-  * Configurer les systèmes +==== Approche déclarative ====
-  * Déployer des applications+
  
-Exemples :+On décrit le résultat :
  
-  * Installer NGINX +  * "je veux un serveur web"
-  * Configurer un service +
-  * Déployer une application+
  
-Caractéristiques :+L’outil gère les actions nécessaires
  
-  * Approche orientée tâches +<WRAP round help> 
-  * Exécution séquentielle +Question :
-  * Idempotence+
  
-===== 3.4 Comparaison =====+  * Pourquoi cette approche est-elle adaptée au cloud ? 
 +</WRAP> 
 + 
 +===== 8Terraform vs Ansible =====
  
 Terraform : Terraform :
  
-  * Déclaratif +  * crée l’infrastructure 
-  * Orienté infrastructure +  * maintient un état (state)
-  * Gère un état global+
  
 Ansible : Ansible :
  
-  * Orienté tâches +  * configure les systèmes 
-  * Configuration logicielle +  * exécute des tâches 
-  * Pas de state central+ 
 +Exemple : 
 + 
 +  * Terraform → crée un conteneur 
 +  * Ansible → modifie son contenu 
 + 
 +===== 9. Workflow DevOps ===== 
 + 
 +  * Terraform → infrastructure 
 +  * Ansible → configuration 
 +  * pipeline → déploiement applicatif
  
-===== 3.5 Complémentarité =====+Chaîne :
  
-Dans un workflow réel :+  Code → Infrastructure → Configuration → Application
  
-  * Terraform crée l’infrastructure +===== 10. Transition vers le TD =====
-  * Ansible configure les serveurs+
  
-===== 4. Conclusion =====+Dans le TD suivant :
  
-L’Infrastructure as Code permet :+  * vous allez automatiser ce que vous venez de faire manuellement 
 +  * créer un service avec Terraform 
 +  * le modifier avec Ansible
  
-  * d’industrialiser les déploiements +Objectif :
-  * de fiabiliser les environnements +
-  * de gagner en rapidité et en reproductibilité+
  
-Terraform et Ansible ne sont pas concurrents mais complémentaires.+  * comprendre la complémentarité des outils
  
-===== 5Question de réflexion =====+===== 11À retenir =====
  
-Pourquoi est-il risqué de modifier une infrastructure manuellement en production ?+  * IaC = infrastructure gérée comme du code 
 +  * objectif : reproductibilité et fiabilité 
 +  * Terraform → provisioning 
 +  * Ansible → configuration
  
  • eadl/bloc4/fm2/intro.1777075475.txt.gz
  • Dernière modification : il y a 12 jours
  • de jcheron