Workflow de production CI/CD


Introduction


Abdelali Irkha
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.
Jenkins

jenkins

CI/CD

jenkins logo
gitea

gitea

SCM

gitea logo
Grafana

Grafana

Metrics

Grafana logo
Prometheus

Prometheus

Generate Metrics

Prometheus logo
Allure

Allure

Rapport de tests

Allure logo
duplicati

duplicati

Backup, sauvegarde

duplicati logo

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.

Cahier des spécifications techniques


Télécharger le Cahier des spécifications techniques

Télécharger la présentation PowerPoint