Aller au contenu
Culture DevOps medium

GitLab : présentation de la plateforme DevSecOps

16 min de lecture

GitLab est une plateforme DevSecOps qui regroupe dans une seule application la gestion du code source, le CI/CD, les tests de sécurité applicative, la gestion de projet et le registre de paquets. Disponible en SaaS (gitlab.com), en self-managed (sur vos serveurs) ou en Dedicated (SaaS mono-tenant), GitLab couvre l'intégralité du cycle de vie logiciel, de la planification au déploiement en production. Avec plus de 50 millions d'utilisateurs enregistrés et 177 releases mensuelles consécutives, c'est l'une des forges les plus complètes du marché.

  • Comprendre ce qu'est GitLab : son positionnement, son histoire et son modèle open-source
  • Identifier les formats de déploiement : SaaS, self-managed et Dedicated
  • Connaître les fonctionnalités principales : gestion de code, CI/CD, sécurité, registres
  • Comparer les éditions : Free, Premium et Ultimate
  • Choisir le format adapté à votre contexte (équipe, conformité, budget)

GitLab est né en 2011 comme un projet open-source créé par Dmitriy Zaporozhets et Valery Sizov. L'entreprise GitLab Inc. a été incorporée en 2014 et est entrée en bourse au NASDAQ (symbole GTLB) en 2021. L'entreprise fonctionne en 100 % télétravail depuis sa création et revendique plus de 2 500 collaborateurs répartis sur plusieurs continents.

Le modèle repose sur un noyau open-source (licence MIT) appelé GitLab Community Edition (CE). La version Enterprise Edition (EE) ajoute des modules propriétaires (sécurité avancée, conformité, gestion de portefeuille). Concrètement, le package d'installation est le même : les fonctionnalités EE se déverrouillent avec une licence.

GitLab propose trois modes de déploiement pour s'adapter aux contraintes de chaque organisation. Le code applicatif est le même dans les trois cas : ce qui change, c'est qui exploite l'instance et où résident les données.

Deux questions suffisent le plus souvent à trancher. Avez-vous une contrainte de résidence des données ou de réseau privé ? Si oui, le SaaS mutualisé est écarté. Avez-vous une équipe capable d'assurer les mises à jour, les sauvegardes et la restauration ? Si non, le self-managed devient un risque plutôt qu'une économie.

FormatDescriptionGéré parPublic cible
GitLab.com (SaaS)Instance multi-tenant hébergée par GitLabGitLabÉquipes voulant démarrer vite, sans infra à gérer
Self-ManagedInstance installée sur vos serveurs (VM, bare metal, Kubernetes)VousOrganisations avec contraintes de conformité ou souveraineté
DedicatedSaaS mono-tenant isolé, hébergé par GitLab dans la région cloud de votre choixGitLabEntreprises (1 000+ utilisateurs) avec exigences de sécurité fortes

GitLab.com est l'option la plus simple : créez un compte et commencez à travailler. GitLab gère l'infrastructure, les mises à jour et la disponibilité.

  • Aucune installation requise
  • 400 minutes de compute CI/CD par mois (plan Free)
  • Mises à jour automatiques (toujours la dernière version)
  • Hébergé sur Google Cloud Platform

Limites : moins de contrôle sur l'infrastructure, données hébergées aux États-Unis (sauf Dedicated), limite de 5 utilisateurs sur le plan Free.

GitLab est une application web dont l'architecture repose sur plusieurs composants complémentaires. Cette liste n'est pas seulement documentaire : en self-managed, chacun de ces composants est un service à superviser, et la plupart des incidents GitLab se diagnostiquent en identifiant lequel est tombé.

Trois d'entre eux méritent une attention particulière. Gitaly est le seul à parler directement aux dépôts Git sur disque, il concentre donc les problèmes de performance sur les gros dépôts. PostgreSQL contient tout ce qui n'est pas du code (issues, pipelines, permissions) et conditionne la restauration après incident. Sidekiq traite les tâches de fond, et une file Sidekiq qui s'allonge se traduit par des webhooks et des courriels qui n'arrivent jamais.

ComposantTechnologieRôle
Application webRuby on RailsInterface utilisateur, API REST et GraphQL, logique métier
GitalyGoService d'accès aux dépôts Git (RPC), gestion des opérations Git à haute performance
GitLab RunnerGoExécution des jobs CI/CD (shell, Docker, Kubernetes)
Base de donnéesPostgreSQLStockage des métadonnées (projets, utilisateurs, pipelines, issues)
Cache et filesRedisCache applicatif, file d'attente des jobs Sidekiq
Jobs asynchronesSidekiq (Ruby)Traitement en arrière-plan (emails, webhooks, nettoyages)
Reverse proxyNGINXTerminaison TLS, routage HTTP vers Puma (serveur d'application)
Stockage objetS3-compatibleArtifacts CI/CD, uploads, registre de conteneurs, backups

GitLab couvre cinq grands domaines fonctionnels, intégrés dans une interface unique.

C'est la brique historique, et celle que vous comparerez avec GitHub ou Gitea. Le point à retenir pour un choix de plateforme est le niveau de contrôle sur la revue : dépôts, merge requests et branches protégées sont disponibles dès l'édition Free, tandis que les règles d'approbation avancées et les Code Owners relèvent de Premium. C'est souvent ce détail qui déclenche le passage à l'édition payante dans une équipe qui grandit.

  • Dépôts Git avec interface web, éditeur intégré et Web IDE
  • Merge requests avec revue de code, discussions en ligne et approbations
  • Branches protégées et règles de merge (nombre d'approbateurs, pipelines verts)
  • Code Owners pour attribuer automatiquement les reviewers

Le CI/CD est l'argument principal de GitLab face aux autres forges : il est intégré à la plateforme, pas ajouté par un service tiers. Un pipeline y est décrit dans un seul fichier .gitlab-ci.yml versionné avec le code, et exécuté par des runners que vous installez où vous voulez, y compris sur vos propres machines quand l'instance est en SaaS.

C'est aussi la partie qui consomme votre quota : les minutes de compute listées plus bas ne sont décomptées que pour les runners hébergés par GitLab. Un runner que vous opérez vous-même ne coûte rien en minutes, quel que soit votre plan.

  • Pipelines définis en YAML (.gitlab-ci.yml) avec stages, jobs, règles et matrices
  • Runners déployables partout (shell, Docker, Kubernetes, autoscaler)
  • Artifacts et cache pour accélérer les builds
  • Environnements avec déploiement continu, feature flags et rollback
  • CI/CD Catalog pour partager des composants réutilisables

Ces scanners ne s'installent pas : ce sont des jobs de pipeline fournis sous forme de templates que vous incluez dans votre .gitlab-ci.yml. Leurs résultats remontent dans la merge request, ce qui rapproche la détection du moment où le code est écrit, et non d'un rapport hebdomadaire lu par personne.

Attention en revanche au découpage par édition, détaillé dans l'encadré ci-dessous : c'est le domaine où l'écart entre Free et Ultimate est le plus large, et où une démonstration commerciale peut donner une image trompeuse de ce dont vous disposerez réellement.

  • SAST (analyse statique du code source)
  • DAST (analyse dynamique de l'application en cours d'exécution)
  • Dependency Scanning et Container Scanning
  • Secret Detection dans le code et les pipelines
  • Vulnerability Management avec tableau de bord et politiques de remédiation
  • Software Bill of Materials (SBOM) généré automatiquement

Cette partie explique pourquoi certaines équipes remplacent Jira par GitLab : les tickets vivent au même endroit que le code, et une merge request qui mentionne Closes #42 ferme l'issue au moment du merge, sans synchronisation à maintenir entre deux outils.

La limite arrive avec la planification à grande échelle. Les issues et les boards suffisent pour une équipe ; regrouper le travail de plusieurs équipes par initiative demande les epics, réservés aux éditions payantes.

  • Issues, boards (Kanban), milestones et labels
  • Epics pour regrouper les issues par initiative stratégique (Premium+)
  • Service Desk intégré pour recevoir des tickets par email
  • Suivi de temps et estimation de charge

Les registres évitent d'ajouter un Nexus ou un Harbor à côté de la forge : les images et les paquets produits par un pipeline sont publiés dans le projet qui les a construits, avec les mêmes permissions que le dépôt. Un utilisateur qui perd l'accès au projet perd du même coup l'accès aux artefacts.

Prévoyez le stockage en conséquence. Un Container Registry sans politique de nettoyage grossit indéfiniment, et c'est la première cause de saturation disque sur une instance self-managed.

  • Container Registry pour stocker et distribuer des images Docker
  • Package Registry compatible npm, Maven, PyPI, NuGet, Go, Conan, Terraform
  • Virtual Registry pour agréger des registres de paquets distants en un seul endpoint

Depuis 2024, GitLab intègre GitLab Duo, une suite d'outils d'intelligence artificielle qui couvre l'ensemble du cycle de développement.

  • Code Suggestions : auto-complétion et génération de code dans l'IDE
  • Agentic Chat : assistant multi-étapes capable de naviguer dans le contexte du projet
  • Agents spécialisés : planification, analyse de sécurité, data insights
  • Flows automatisés : création de merge requests depuis un ticket, correction de pipelines, modernisation CI/CD

GitLab propose trois éditions, chacune disponible en SaaS et en self-managed. Le tableau ci-dessous se lit de bas en haut : les lignes du haut (SCM, CI/CD, SAST) sont communes aux trois éditions, celles du bas séparent réellement les offres.

Deux repères pour situer votre besoin. Le passage de Free à Premium s'achète surtout pour la gouvernance du code (approbations, epics, support avec engagement). Le passage à Ultimate s'achète pour la sécurité applicative complète et la conformité. Un tarif par utilisateur et par mois se multiplie vite : à 30 personnes, Premium représente environ 10 000 $ par an.

FreePremiumUltimate
Tarif0 $29 $/utilisateur/mois (annuel)Sur devis
Utilisateurs5 (SaaS) / illimités (self-managed)IllimitésIllimités
Compute CI/CD400 min/mois10 000 min/mois50 000 min/mois
SCM + CI/CD
SAST + Secret Detection
SupportCommunautéPrioritaire (SLA)Prioritaire (SLA)
DAST + Container Scanning
Dependency Scanning
Vulnerability Management
Compliance Frameworks
Epics + Portfolio Management
Value Stream Management
Utilisateurs invités illimités

Dans le doute, commencez par Free. La migration d'une édition à l'autre est une simple activation de licence : aucune donnée à déplacer, aucune interruption de service, et les fonctionnalités apparaissent dans l'interface existante. Rien ne justifie donc de payer avant d'avoir constaté un manque précis.

Le raisonnement s'inverse sur un seul point, la conformité réglementaire. Si vous devez produire des preuves d'audit ou appliquer un référentiel imposé, cette exigence arrive dès le premier jour et oriente directement vers Ultimate.

ContextePlan recommandé
Projet personnel ou open-sourceFree
PME avec besoin de CI/CD avancé et supportPremium
Enterprise avec conformité, sécurité et gouvernanceUltimate
Équipe en évaluationFree (puis upgrade si besoin)

GitLab s'intègre avec un large écosystème d'outils. Deux mécanismes couvrent la quasi-totalité des cas : les intégrations natives, configurables dans les paramètres du projet, et les webhooks, qui envoient un message HTTP à l'URL de votre choix sur un événement (push, merge request, pipeline terminé). Quand aucune intégration native n'existe, le webhook reste la porte de sortie.

L'intégration avec HashiCorp Vault mérite d'être connue même si vous ne l'utilisez pas tout de suite : elle permet à un job de récupérer un secret au moment de son exécution, plutôt que de le stocker en variable CI/CD dans GitLab.

  • Cloud : AWS, Google Cloud, Azure (marketplaces disponibles)
  • Kubernetes : déploiement natif, agent GitLab pour K8s, intégration ArgoCD
  • Communication : Slack, Microsoft Teams, Mattermost
  • Suivi : Jira (synchronisation bidirectionnelle des issues)
  • Sécurité : HashiCorp Vault pour la gestion des secrets dans les pipelines
  • IDE : VS Code, JetBrains, Neovim (extensions GitLab Duo)
  • GitLab est une plateforme DevSecOps complète qui regroupe forge Git, CI/CD, sécurité applicative, gestion de projet et registres de paquets dans une seule application
  • Trois formats de déploiement : SaaS (gitlab.com), self-managed (sur votre infra) et Dedicated (mono-tenant géré)
  • Le noyau est open-source (licence MIT) ; les fonctionnalités avancées nécessitent une licence Premium ou Ultimate
  • La stack technique repose sur Ruby on Rails (application), Go (Gitaly, Runner) et PostgreSQL (données)
  • Trois éditions : Free (0 $), Premium (29 $/utilisateur/mois) et Ultimate (sur devis)
  • L'empreinte système est significative (~4-8 Go RAM) comparée aux forges légères, mais le périmètre fonctionnel est bien plus large
  • GitLab Duo apporte l'IA à chaque étape du cycle de développement

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn