CI/CD (Continuous Integration / Continuous Delivery)

Définition

Le CI/CD est une pratique de livraison logicielle qui automatise le pipeline de build, de test et de déploiement. Continuous Integration (CI) fusionne les modifications de code fréquemment et exécute des tests automatisés. Continuous Delivery/Deployment (CD) déploie automatiquement le code testé dans les environnements de staging ou de production.

Concepts clés

  • CI (Continuous Integration) : Les développeurs fusionnent le code dans un repo partagé plusieurs fois par jour ; chaque fusion déclenche des builds et des tests automatisés
  • CD (Continuous Delivery) : Le code qui passe CI est automatiquement préparé pour la publication en production
  • CD (Continuous Deployment) : Le code qui passe CI est automatiquement déployé en production sans approbation humaine
  • Pipeline : Série d’étapes (build → test → stage → deploy)
  • Artifact : Binaire compilé, image de conteneur ou package produit par le pipeline
  • Artifact Repository : Stockage pour les sorties de build (Nexus, Artifactory, GHCR)

Outils CI/CD courants

Outil Type Notes
GitHub Actions Cloud/On-prem Workflows YAML, intégré avec GitHub
GitLab CI/CD Cloud/On-prem Intégré dans GitLab, YAML (.gitlab-ci.yml)
Jenkins On-prem Écosystème de plugins, pipelines Groovy
CircleCI Cloud Rapide, configuration YAML, natif Docker
Argo CD GitOps Déploiement Kubernetes déclaratif
Tekton Kubernetes-native CI/CD cloud-native sur K8s

Meilleures pratiques CI/CD

  • Feedback rapide : Garder le pipeline sous 10 minutes
  • Artifacts immuables : Build une fois, promouvoir à travers les environnements
  • Parité des environnements : Le staging correspond à la production
  • Capacité de rollback : Avoir toujours un chemin de retour en arrière
  • Scanning de sécurité : SAST, DAST, vérifications de dépendances dans le pipeline

Termes associés