GitLab CI/CD
Overview
GitLab CI/CD, c'est le moteur CI/CD intégré directement dans GitLab. Pas besoin d'installer un truc séparé, tout est dans la même plateforme.
Il fonctionne avec un fichier déclaratif (.gitlab-ci.yml) que tu poses à la racine de ton repo. Tout est tracé, tout est versionné, comme du code normal.
La solution automatise tout le cycle de développement : build, tests, analyse, sécurité, déploiements. Elle s'intègre parfaitement avec GitLab : merge requests, registre de conteneurs, gestion de projets, outils DevSecOps. Tout est au même endroit, tout est connecté.
C'est une des solutions CI/CD les plus utilisées dans les environnements DevOps modernes, en cloud comme en auto-hébergement. Si tu utilises déjà GitLab, c'est un choix évident.
Informations essentielles
| Propriété | Valeur |
|---|---|
| Site officiel | https://about.gitlab.com/features/gitlab-ci-cd/ |
| Licence | MIT (GitLab Runner), open-core pour GitLab CE |
| Nationalité | États-Unis |
| Type | CI/CD déclaratif |
| Déploiement | GitLab.com (cloud), GitLab CE/EE (self-hosted) |
| Difficulté | Intermédiaire |
| Technologies | Ruby (GitLab), Go (GitLab Runner) |
TL;DR
GitLab CI/CD, c'est pour ceux qui veulent une solution CI/CD intégrée au code source, versionnée, alignée sur des workflows Git modernes, et qui couvre toute la chaîne DevSecOps. Tu as une cohérence d'ensemble, une intégration poussée avec GitLab, et des pipelines flexibles pour la plupart des contextes. Si tu utilises déjà GitLab, c'est un choix évident.
Points clés à retenir :
- Pipelines déclaratifs en YAML, versionnés dans le dépôt comme du code normal.
- Excellente intégration avec GitLab : merge requests, security scans, registry, artefacts, tout est connecté.
- Runners flexibles : Docker, Kubernetes, shell, VM, tu choisis ce qui te convient.
- Fonctionne en cloud ou on-premises, selon tes besoins.
- L'auto-hébergement peut être exigeant en ressources et en maintenance, mais c'est le prix de la liberté.
Compatibilité et intégrations
- Intégration complète avec GitLab (MR, registry, issues, artefacts)
- Support des runners Docker, Kubernetes, VM et shell
- Fonctionne en cloud comme en self-hosted
- Intégration DevSecOps : scans SAST, DAST, dépendances, IaC
- Support des principaux workflows GitOps
Avantages
- Pipelines en YAML versionnés dans le dépôt, comme du code normal
- Plateforme DevOps unifiée : SCM + CI/CD + Security + Registry, tout au même endroit
- Excellent support pour les microservices et Kubernetes, comme si c'était fait pour
- Runners modulaires et scalables : tu adaptes selon tes besoins
- Solide écosystème open-source + entreprise, tu ne seras pas seul
Limites
- GitLab CE demande des ressources importantes en self-hosted : il faut de la RAM, du CPU, du stockage
- La maintenance n'est pas triviale : runners, updates, backups, il faut s'en occuper
- Le débogage des pipelines YAML peut être complexe, surtout si tu débutes
- Le temps de prise en main est plus élevé que les solutions "serverless" comme GitHub Actions, mais tu as plus de contrôle
Ressources
- Documentation GitLab CI/CD : https://docs.gitlab.com/ee/ci/
- Runners officiels : https://docs.gitlab.com/runner/
- Exemples de pipelines : https://docs.gitlab.com/ee/ci/examples/
- Repository GitLab Runner : https://gitlab.com/gitlab-org/gitlab-runner
- Bonnes pratiques CI/CD : https://docs.gitlab.com/ee/ci/pipelines/