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