eadl:bloc4:fm2:intro

Ceci est une ancienne révision du document !


Introduction à l’Infrastructure as Code (IaC)

  • Comprendre les limites des approches traditionnelles
  • 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

Dans une approche classique :

  • Création manuelle des machines (console cloud)
  • Configuration à la main (SSH, scripts)
  • Déploiements non standardisés

Problèmes :

  • Erreurs humaines fréquentes
  • Temps de déploiement long
  • Difficulté à reproduire un environnement

Définition :

Un système évolue au fil du temps et ne correspond plus à sa configuration initiale.

Exemple :

- Un serveur en production a été modifié manuellement - L’environnement de test n’est plus identique - Bugs impossibles à reproduire


Sans automatisation :

- Impossible de recréer rapidement un environnement - Dépendance à des connaissances implicites - Documentation souvent obsolète


Exemple :

  • Créer 1 serveur → faisable à la main
  • Créer 50 serveurs → ingérable

Problèmes :

  • Temps
  • cohérence
  • erreurs cumulées

Questions difficiles :

- Qui a modifié quoi ? - Quand ? - Pourquoi ?


L’infrastructure devient :

- trop complexe - trop dynamique - trop critique

⇒ Besoin d’automatisation et de standardisation


Infrastructure as Code :

Décrire l’infrastructure sous forme de code afin de pouvoir :

- versionner - automatiser - reproduire


- Déclaratif : décrire l’état cible - Procédural : décrire les étapes


Appliquer plusieurs fois une configuration produit le même résultat


- Code stocké dans Git - Historique des modifications - rollback possible


- Déploiement rapide - Réduction des erreurs humaines


- Même code = même infrastructure


- Écriture du code - Planification (diff) - Application - Mise à jour - Destruction


Deux grandes catégories d’outils :

- Provisioning d’infrastructure - Configuration des systèmes


Rôle :

- Provisionner l’infrastructure

Exemples :

- 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


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


Terraform :

- Déclaratif - Orienté infrastructure - Gère un état global

Ansible :

- Orienté tâches - Configuration logicielle - Pas de state central


Dans un workflow réel :

- Terraform crée l’infrastructure - Ansible configure les serveurs


L’Infrastructure as Code permet :

- d’industrialiser les déploiements - de fiabiliser les environnements - de gagner en rapidité et en reproductibilité

Terraform et Ansible ne sont pas concurrents mais complémentaires.


Pourquoi est-il risqué de modifier une infrastructure manuellement en production ?

  • eadl/bloc4/fm2/intro.1777075116.txt.gz
  • Dernière modification : il y a 14 jours
  • de jcheron