Objectifs pédagogiques
Comprendre les principes fondamentaux de la CI/CD
Configurer un environnement GitLab CI/CD pour exécuter des pipelines adaptés aux besoins des projets
Automatiser les processus de build, test et déploiement
Concevoir des pipelines CI/CD optimisés et maintenables
Orchestrer la livraison continue de microservices
Déployer des applications sur des infrastructures cloud (AWS, Kubernetes)
A qui s’adresse cette formation ?
Public
Prérequis
Programme de formation
Introduction à la formation GitLab : prérequis et configuration de base
Présentation générale de cette formation GitLab CI/CD, approche et objectifs pédagogiques
Configuration des outils nécessaires à la formation
Introduction à la CI/CD et à GitLab CI/CD
Qu’est-ce que la CI/CD ?
Introduction à GitLab CI/CD : pourquoi l’utiliser ?
Comparaison entre GitLab CI/CD et les autres solutions du marché (Jenkins, GitHub Actions, etc.)
Concepts clés de GitLab CI/CD
Présentation des concepts de base
Les jobs : le cœur de la CI/CD
Exécution d’un pipeline complet
Les stages : grouper et organiser les jobs
Needs : gérer les dépendances entre jobs
Script : commandes shell et scripts d’exécution
Only : quand exécuter un job (branches, tags, etc.)
Workflow Rules : gestion avancée du comportement des pipelines
Déclencher un pipeline via une merge request
Utiliser les variables prédéfinies de GitLab
Créer et utiliser des variables personnalisées
Architecture de GitLab CI/CD
Qu’est-ce qu’un GitLab Runner et son rôle ?
GitLab Executors : les différents types d’exécuteurs (Shell, Docker, etc.)
Le flow d’exécution des jobs dans un pipeline
Utilisation de l’exécuteur Docker
Specific Runners : configurer des runners spécifiques à des projets
Démo : configuration d’un runner managé
Installer et enregistrer un runner local sur MacOS
Installer et enregistrer un runner local sur Windows
Prérequis pour AWS
Installer et enregistrer un runner sur AWS EC2
Exécuter un job sur un runner spécifique (tags)
Ajouter un runner Docker sur AWS EC2
Group Runners : partager des runners entre plusieurs projets
Gestion de GitLab Self-Managed
Compatibilité des versions des runners et de GitLab
Récapitulatif de l’architecture GitLab CI/CD
Construire un pipeline CI/CD réel pour une application Node.js
Présentation du projet Node.js
Exécuter des tests unitaires et collecter les rapports de tests
Build d’une image Docker et push dans une registry privée
Déploiement sur un serveur de développement
Introduction aux GitLab Environments (pour suivre où le code est déployé)
Déploiement avec Docker Compose
Optimiser le pipeline CI/CD & Multi-Stage Pipelines
Introduction à l’optimisation des pipelines
Configuration dynamique des versions pour les images Docker
Configurer un cache pour accélérer les exécutions de pipeline
Tests de sécurité (SAST) et vérification de la qualité du code
Introduction au déploiement multi-stage – Démo multi-stage 1
Déploiement en staging – Démo multi-stage 2
Réutilisation des configurations avec extends – Démo multi-stage 3
Déploiement en production – Démo multi-stage 4
Pipelines CI/CD pour des applications Microservices (monorepo & polyrepo)
Qu’est-ce qu’un microservice ?
Monorepo vs Polyrepo : quelle approche choisir ?
Démonstration : exemple concret de monorepo et polyrepo
Démarrer le service en local (Monorepo) et se familiariser avec l’application
Préparation au déploiement (Démo Monorepo 1)
Build des microservices (Démo Monorepo 2)
Déploiement des microservices (Démo Monorepo 3)
CI/CD pour une application en polyrepo
Extraction de la logique commune (Job Templates 1)
Création d’une bibliothèque de templates CI/CD (Job Templates 2)
Déployer des Microservices sur un cluster Kubernetes
Introduction au déploiement sur Kubernetes
Création d’un utilisateur GitLab avec des permissions restreintes
Déploiement sur Kubernetes (partie 1)
Déploiement sur Kubernetes (partie 2)
Conclusion et nettoyage des ressources
















