
Workflow de production CI/CD
Introduction

La rapidité de livraison de vos logiciels constitue un facteur de différenciation majeur sur le marché.
Les entreprises qui réussissent parviennent à réaliser entre 50 et 100 déploiements par jour, tandis que
des géants tels que Netflix dépassent les 1 000 déploiements quotidiens. Mettre en place un pipeline
CI/CD efficace favorise la productivité, la fiabilité et la vitesse nécessaires pour atteindre ces
objectifs tout en livrant des applications robustes, adaptées aux besoins changeants de l’entreprise. En
d'autres termes, l'absence de pratiques CI/CD peut vous faire prendre du retard par rapport à vos
concurrents. Bien que transformer votre méthode de livraison de logiciels ne soit ni rapide ni facile,
cet investissement en vaut la peine : il permettra à votre entreprise de prospérer dans les années à
venir.
Exemples
Nous préconisons l'utilisation des services suivants pour optimiser notre workflow CI/CD : un serveur
CI comme Jenkins, un système de gestion de code source (SCM) tel que Gitea pour la gestion du code
source et le versionnement, un outil de métriques comme Grafana pour surveiller les performances, un
outil de test automatisé tel qu'Allure pour vérifier le bon fonctionnement des applications, un outil de
sauvegarde comme Duplicati pour garantir la disponibilité des données en cas de défaillance, et un
reverse proxy pour renforcer la sécurité.
Nous adoptons également les meilleures pratiques de développement, dont le modèle de flux de travail
GitFlow, qui permet une gestion efficace des branches de code.
Définitions
L'intégration continue (CI) est une pratique de développement logiciel qui consiste à intégrer régulièrement et de manière automatisée les modifications de code d'une équipe de développement dans une branche commune. L'objectif est de détecter les conflits de code et les erreurs le plus tôt possible afin de faciliter les corrections et d'améliorer la qualité du code produit.
Le déploiement continu (CD) est une pratique de développement logiciel qui consiste à automatiser le
déploiement des modifications de code validées par l'équipe de développement vers l'environnement de
production, de manière à réduire les risques d'erreurs et à raccourcir le temps nécessaire pour mettre
les nouvelles fonctionnalités à disposition des utilisateurs.
Les contraintes de notre workflow CI/CD incluent la nécessité de garantir la stabilité et la sécurité du
système, tout en assurant une évolutivité et une flexibilité suffisantes pour répondre aux besoins
changeants de l'agence. Les tâches à automatiser via notre workflow incluent notamment la compilation,
les tests, l'emballage, la mise en production, ainsi que la surveillance et la gestion des
environnements de production.