eadl:bloc4:fm2:intro

Différences

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

Lien vers cette vue comparative

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