Aller au contenu

Introduction à GitLab (DevOps)

Objectifs du cours

Les Runners font l’objet d’un cours spécifique et pratique.


1. Rappel : Qu’est-ce que le DevOps ?

DevOps = Développement (Dev) + Opérations (Ops)

Le DevOps est une culture, une philosophie et aussi un ensemble d’outils avec pour objectif :

Origine

Le terme DevOps a été inventé en 2009 par Patrick Debois lors de la conférence GOTO.
C’est une philosophie qui repose sur trois piliers :


2. Le cycle de vie DevOps

Comme nous l’avons vu dans le cours précédent, le cycle DevOps est un processus continu, orienté vers la livraison rapide et fiable !

Étape Objectif Exemples d’outils
Planifier Définir les tâches et fonctionnalités Jira, GitLab Boards
Coder Écrire et versionner le code Git, GitLab
Intégrer (CI) Tester automatiquement le code GitLab CI, Jenkins
Livrer (CD) Automatiser la mise en production GitLab, Bamboo
Déployer (CD) Mise en prod sans validation manuelle GitLab, ArgoCD
Surveiller Observer la performance et les erreurs Prometheus, Grafana

3. Introduction à GitLab

GitLab est une plateforme DevOps complète qui centralise tout le cycle de vie d’un projet.

GitLab permet :

GitLab c’est Git + CI/CD + Gestion de projet + Sécurité réunis dans une seule plateforme !


4. Les différentes éditions GitLab

Il existe plusieurs éditions GitLab selon les besoins des entreprises. La version gratuite est suffisante pour nous dans le cadre de la formation.

Édition Type Caractéristiques principales
Free / Core Gratuite 400 min CI/CD, 5 Go stockage, 5 utilisateurs
Premium Payante CI/CD avancé, support, planification agile
Ultimate Payante Sécurité, conformité, gestion de portefeuille
Self-Hosted (CE) Gratuite Installation locale ou via Docker

5. GitLab CE (Community Edition)

GitLab CE est la version gratuite et auto-hébergée de GitLab.

GitLab CE offre aussi la possibilité d’héberger vos propres dépôts sans dépendre du cloud !


6. Gestion de projet dans GitLab

GitLab facilite la gestion des tâches et la collaboration entre équipes.

Principales fonctionnalités

Tout est centralisé pour un suivi agile et transparent.


7. GitLab CI/CD

GitLab CI/CD (Continuous Integration / Continuous Deployment) automatise les tests, la construction et le déploiement.

Composants clés

Éléments Rôles
Pipeline C’est un ensemble d’étapes d’automatisation
Stage C’est une Étape logique (exemple : build, test, deploy)
Job La tâche exécutée dans un stage (une étape)
Runner le programme qui exécute nos jobs

8. 3 Types de Runners

Type Accessible depuis Utilisation typique
Partagé Tous les projets GitLab Runners gérés par GitLab
De groupe Tous les projets d’un même groupe Runners mutualisés
Spécifique Un seul projet Runners privés (auto-hébergés)

Un Runner exécute les jobs de votre pipeline, selon le type d’exécuteur défini (shell, docker, etc.).


9. Fonctionnalités clés de GitLab CI

Fonctionnalité Description
Merge Trains File d’attente automatisée des Merge Requests
Auto-scaling des Runners Lance automatiquement des runners selon la charge
Registry Docker intégré Stocke les images Docker du projet
Gestion d’artefacts Conserve les livrables (builds, packages, etc.)
Code Coverage Mesure la couverture des tests
Sécurité intégrée SAST, DAST, analyse de dépendances et conteneurs

10. Exemple de pipeline minimal

Un pipeline est tout simplement une suite d’étapes, d’instructions à exécuter, un processus d’automatisation écrit dans un fichier au format YAML.

Voici un exemple de fichier .gitlab-ci.yml :

stages:
  - build
  - test

build_job:
  stage: build
  script:
    - echo "Construction du projet..."
    - docker build -t monapp:latest .

test_job:
  stage: test
  script:
    - echo "Exécution des tests unitaires..."

Chaque pipeline est composé d’un ou plusieurs stages, chacun contenant des jobs exécutés automatiquement selon les règles définies.

11. GitLab dans la chaîne DevOps

GitLab couvre tout le cycle de vie logiciel :

  1. Planification
  2. Développement
  3. Intégration continue
  4. Livraison continue
  5. Sécurité et conformité
  6. Surveillance et amélioration

C’est une plateforme unique pour centraliser vos projets en mode DevOps !

Conclusion

Documentation en ligne

Une Blog de Stephane Robert pour s’initier à GitLab

Documentation GitLab CI/CD

Installer GitLab CE localement

Les fonctionnalités de GitLab

Auteur : Philippe Bouget