Automatisation des Infrastructures et Déploiement CI/CD

Ce cours réunit 29 TP du Master DevOps & Cloud. Les TP1 et TP2 déploient le même portfolio Next.js de deux façons, en local, dans des machines virtuelles : aucun nom de domaine n’est nécessaire. Le TP3 construit ensuite un pipeline CI/CD complet dans le cloud avec GitHub Actions et Render. Les TP4 à TP29 forment une série d’initiation, outil par outil, qui mène jusqu’à Kubernetes, GitOps, l’observabilité et le Platform Engineering.

Les TP sont regroupés en 9 parties thématiques. La numérotation suit l’ordre conseillé : chaque partie s’appuie sur les précédentes.

Partie Thème TP
1 Déployer une application TP1–TP3
2 Automatisation et Infrastructure as Code TP4–TP6
3 Conteneurs et API TP7–TP8
4 CI/CD et DevSecOps TP9–TP12
5 Cloud et Kubernetes TP13–TP15
6 Sécurité de la plateforme TP16–TP18
7 GitOps TP19–TP20
8 Exploitation et fiabilité TP21–TP25
9 Platform Engineering et pilotage TP26–TP29

Architecture TP1 Architecture TP1

Architecture TP2 Architecture TP2

Pipeline TP3 Pipeline TP3

Ordre conseillé

Partie 1 : Déployer une application

  1. TP1 : comprendre l’automatisation « à la main » (rôles, idempotence, Semaphore).
  2. TP2 : découvrir l’approche PaaS, puis comparer les deux (partie D du TP2).
  3. TP3 : automatiser la vérification et le déploiement avec un vrai pipeline CI/CD (GitHub Actions + Render).

Partie 2 : Automatisation et Infrastructure as Code

  1. TP4 : maîtriser les bases d’Ansible (inventaire, playbooks, clés SSH, rôles).
  2. TP5 : créer des VM reproductibles avec Vagrant et les provisionner avec Ansible.
  3. TP6 : décrire l’infrastructure avec Terraform, puis enchaîner Vagrant → Ansible → Terraform.

Partie 3 : Conteneurs et API

  1. TP7 : produire des images Docker petites et sûres, et décrire une pile complète avec Compose.
  2. TP8 : rendre une API robuste et prouver sa robustesse par des tests.

Partie 4 : CI/CD et DevSecOps

  1. TP9 : décrire le pipeline Jenkins dans le dépôt (Jenkinsfile, Multibranch).
  2. TP10 : brancher les contrôles de sécurité au plus tôt (poste, CI, Pull Request).
  3. TP11 : comparer avec GitLab CI/CD et exploiter son propre runner.
  4. TP12 : sécuriser la chaîne d’approvisionnement (registre, SBOM, signature, provenance).

Partie 5 : Cloud et Kubernetes

  1. TP13 : piloter un cloud AWS local (Floci) et industrialiser Terraform.
  2. TP14 : monter un cluster Kubernetes et maîtriser ses objets de base.
  3. TP15 : packager l’application pour plusieurs environnements (Helm sert ensuite d’installeur).

Partie 6 : Sécurité de la plateforme

  1. TP16 : chiffrer les échanges (HTTPS) et gérer les identités (OIDC).
  2. TP17 : sécuriser le cluster en profondeur.
  3. TP18 : sortir les secrets des manifests.

Partie 7 : GitOps

  1. TP19 : déployer en GitOps avec Argo CD et promouvoir entre environnements.
  2. TP20 : comparer avec Flux CD.

Partie 8 : Exploitation et fiabilité

  1. TP21 : observer, mesurer et alerter.
  2. TP22 : tester l’application en fonctionnement (sécurité et charge).
  3. TP23 : livrer progressivement et annuler automatiquement.
  4. TP24 : protéger les données et savoir restaurer.
  5. TP25 : sécuriser et piloter le trafic entre services.

Partie 9 : Platform Engineering et pilotage

  1. TP26 : construire des API de plateforme.
  2. TP27 : offrir un portail et des Golden Paths aux développeurs.
  3. TP28 : piloter les coûts et la performance de livraison.
  4. TP29 : intégrer l’IA sans affaiblir la chaîne de sécurité.

Dépendances entre parties : Floci (TP13) sert aux TP18, TP24 et TP26 ; le chart du TP15 est repris par le TP20 ; la pile d’observabilité du TP21 sert aux TP23, TP25 et TP28.

Ressources : les TP14 à TP29 demandent une VM de lab d’au moins 4 vCPU et 8 Go de RAM (16 Go conseillés pour les TP21, TP23 et TP28, qui s’appuient sur la pile d’observabilité). Le TP12 utilise une VM dédiée à Harbor.

Utilisez un serveur vierge distinct pour chaque TP : le TP1 installe Nginx sur les ports 80/443, que Coolify veut gérer lui-même.

Fichiers de départ : chaque TP qui en a donne ses fichiers de départ en tête de page, sous forme d’archive .zip. Ce sont des squelettes avec des TODO, pas des corrections.