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.1777075011.txt.gz
  • Dernière modification : il y a 14 jours
  • de jcheron