GitLab - Administration, CI/CD, et Gestion de Projets
Méthodologie Pédagogique
Approche Pratique : L'accent est mis sur l'apprentissage par la pratique avec des labs et des projets réels.
Progression Pédagogique : La formation évolue de la gestion de base des projets à l'automatisation avancée et au DevOps.
Support Continu : Assistance régulière, feedbacks fréquents, et discussions pour maximiser l'apprentissage.
Travail Collaboratif : Le travail en équipe est encouragé pour favoriser l'échange d'idées et la collaboration.
Durée Totale : 6 jours
Sessions hebdomadaires : 2 sessions de 2 heures chacune
Labs & Hands-on : 3 heures par semaine
Semaine 1 : Introduction à GitLab et Installation
Session 1 : Introduction à GitLab et ses Fonctionnalités
Objectifs pédagogiques :
Comprendre les concepts fondamentaux de GitLab et ses principales fonctionnalités.
Explorer les cas d'utilisation de GitLab dans la gestion de projets et le DevOps.
Contenu :
Introduction à GitLab : Historique, fonctionnalités, édition cloud vs. édition auto-hébergée.
Présentation des principales fonctionnalités : Gestion de code source, GitLab CI/CD, DevOps, sécurité.
Structure de GitLab : Projets, groupes, utilisateurs, pipelines CI/CD.
Hands-on :
Exploration de l'interface GitLab (édition SaaS ou auto-hébergée).
Création d'un compte utilisateur sur GitLab.com ou installation de GitLab en local (Docker, Omnibus).
Navigation à travers l'interface GitLab : Création d'un projet et exploration des options disponibles.
Session 2 : Installation et Configuration de GitLab
Objectifs pédagogiques :
Apprendre à installer et configurer une instance GitLab auto-hébergée.
Configurer les éléments de base pour démarrer un projet GitLab.
Contenu :
Prérequis pour l'installation de GitLab : Matériel, logiciel, configuration réseau.
Installation de GitLab : Utilisation de Docker, Omnibus, ou installation manuelle.
Configuration initiale : DNS, certificats SSL, utilisateurs, accès SSH.
Hands-on :
Installation de GitLab sur un serveur ou en local via Docker ou Omnibus.
Configuration des paramètres de base : DNS, SSL, accès SSH.
Création des premiers utilisateurs et projets pour valider l'installation.
Semaine 2 : Gestion de Projets et Collaboration
Session 1 : Gestion des Projets et des Groupes
Objectifs pédagogiques :
Comprendre comment organiser et gérer des projets et des groupes dans GitLab.
Apprendre à structurer les projets pour une gestion efficace des ressources.
Contenu :
Création et gestion de projets dans GitLab.
Organisation des projets en groupes et sous-groupes.
Gestion des permissions au niveau des projets et des groupes.
Hands-on :
Création de groupes et de sous-groupes pour organiser les projets.
Configuration des permissions pour les utilisateurs et les groupes.
Importation et gestion d'un projet existant dans GitLab.
Session 2 : Collaboration et Gestion du Code Source avec GitLab
Objectifs pédagogiques :
Apprendre à gérer le code source avec GitLab et à collaborer efficacement avec d'autres développeurs.
Utiliser les outils GitLab pour les revues de code, les merge requests, et les branches.
Contenu :
Introduction à Git dans le contexte de GitLab : Commit, branch, merge.
Utilisation des merge requests pour gérer les modifications du code.
Gestion des conflits de merge, revues de code, et intégration continue.
Hands-on :
Création et gestion des branches pour un projet GitLab.
Création et gestion des merge requests avec assignation des réviseurs.
Résolution des conflits de merge et gestion des revues de code.
Semaine 3 : GitLab CI/CD - Intégration Continue et Déploiement Continu
Session 1 : Introduction à GitLab CI/CD
Objectifs pédagogiques :
Comprendre les concepts de base de l'intégration continue et du déploiement continu (CI/CD).
Apprendre à configurer des pipelines CI/CD dans GitLab.
Contenu :
Introduction à GitLab CI/CD : Pipelines, jobs, stages, runners.
Structure des fichiers
.gitlab-ci.yml
pour définir les pipelines CI/CD.Configuration et exécution des pipelines CI/CD pour automatiser les tests et les déploiements.
Hands-on :
Création d'un pipeline CI/CD de base avec GitLab.
Configuration des runners GitLab pour exécuter les pipelines.
Définition de jobs pour automatiser les tests unitaires et l'intégration continue.
Session 2 : Pipelines Avancés et Déploiement Automatisé
Objectifs pédagogiques :
Apprendre à configurer des pipelines CI/CD complexes avec GitLab.
Mettre en œuvre des stratégies avancées pour le déploiement automatisé.
Contenu :
Création de pipelines CI/CD multi-stage pour gérer les environnements de développement, test, production.
Utilisation des environnements et des variables pour gérer les déploiements.
Stratégies de déploiement avancées : Blue-Green Deployment, Canary Releases.
Hands-on :
Développement d'un pipeline CI/CD multi-stage pour un projet existant.
Configuration des variables d'environnement pour les déploiements.
Mise en œuvre d'une stratégie de déploiement Blue-Green ou Canary avec GitLab.
Semaine 4 : Sécurité, Surveillance et Gestion des Runners
Session 1 : Sécurité et Gestion des Accès dans GitLab
Objectifs pédagogiques :
Comprendre les concepts de sécurité dans GitLab et apprendre à sécuriser les projets.
Configurer des politiques d'accès et des pratiques de sécurité.
Contenu :
Introduction à la sécurité dans GitLab : Gestion des secrets, variables protégées.
Configuration des politiques d'accès pour les branches et les pipelines.
Utilisation des outils de sécurité intégrés : SAST (Static Application Security Testing), DAST (Dynamic Application Security Testing).
Hands-on :
Configuration des variables protégées pour sécuriser les secrets dans les pipelines CI/CD.
Mise en place de politiques d'accès pour les branches critiques.
Utilisation des fonctionnalités SAST et DAST pour sécuriser les projets GitLab.
Session 2 : Surveillance et Gestion des Runners GitLab
Objectifs pédagogiques :
Apprendre à surveiller les performances et l'état des runners dans GitLab.
Optimiser la gestion des runners pour des performances CI/CD efficaces.
Contenu :
Introduction aux GitLab Runners : Types, configuration, et utilisation.
Surveillance des runners et gestion des ressources pour les pipelines CI/CD.
Optimisation des runners pour gérer la charge et maximiser l'efficacité.
Hands-on :
Installation et configuration de GitLab Runners pour des pipelines spécifiques.
Surveillance des performances des runners et gestion des logs.
Optimisation des configurations des runners pour améliorer les temps d'exécution des pipelines.
Semaine 5 : DevOps avec GitLab et Intégrations Tiers
Session 1 : Intégration de GitLab avec des Outils DevOps
Objectifs pédagogiques :
Apprendre à intégrer GitLab avec d'autres outils DevOps pour améliorer les flux de travail.
Mettre en place des intégrations pour la surveillance, les alertes, et la gestion des incidents.
Contenu :
Introduction aux intégrations DevOps dans GitLab : Prometheus, Grafana, Slack, JIRA.
Configuration des intégrations pour la surveillance et les notifications.
Gestion des incidents et des alertes avec GitLab et des outils tiers.
Hands-on :
Intégration de GitLab avec Prometheus pour la surveillance des pipelines CI/CD.
Configuration des alertes et notifications avec Slack.
Intégration avec JIRA pour la gestion des tickets et des issues.
Session 2 : Gestion des Releases et Automatisation Avancée
Objectifs pédagogiques :
Apprendre à gérer les releases de logiciels avec GitLab.
Automatiser les processus de versionnement et de livraison continue.
Contenu :
Introduction à la gestion des releases dans GitLab : Milestones, tags, releases.
Automatisation des processus de versionnement avec GitLab CI/CD.
Déploiement continu avec GitLab : Stratégies et bonnes pratiques.
Hands-on :
Création et gestion des releases pour un projet logiciel dans GitLab.
Automatisation du versionnement des releases avec un pipeline CI/CD.
Mise en œuvre du déploiement continu pour des projets en production.
Semaine 6 : Projet Final et Clôture de la Formation
Session 1 : Développement et Implémentation du Projet Final
Objectifs pédagogiques :
Appliquer toutes les compétences acquises pour gérer un projet GitLab complet.
Configurer, sécuriser, et automatiser un projet basé sur un cas d'utilisation réel.
Contenu :
Conception du projet final : Définition des objectifs, structure du pipeline CI/CD, gestion des releases.
Déploiement des solutions de sécurité, de surveillance, et d'automatisation pour le projet.
Test et optimisation de l'infrastructure
GitLab pour assurer la qualité et la sécurité du projet.
Hands-on :
Développement du projet final basé sur un scénario complexe (ex: gestion d'une application web avec CI/CD complet).
Mise en œuvre des stratégies de sécurité, de versionnement, et de déploiement continu.
Documentation et préparation de la présentation du projet final.
Session 2 : Présentation du Projet Final et Clôture de la Formation
Objectifs pédagogiques :
Présenter le projet final et démontrer les solutions techniques mises en œuvre.
Réviser les concepts clés de la formation et discuter des futures opportunités.
Contenu :
Présentation des projets finaux devant les formateurs et les pairs.
Discussion sur les points forts et les axes d’amélioration.
Bilan de la formation et perspectives de carrière.
Hands-on :
Présentation finale du projet : Démonstration et résultats.
Discussion libre et échanges de feedback.
Last updated