Pour améliorer le processus de développement d’applications, en l’accélérant et en gagnant en précision notamment, il devient essentiel d’automatiser l’Intégration Continue et le Déploiement Continu (CI/CD) de ses services. Cette automatisation est en passe de devenir la norme et les entreprises qui souhaitent maintenir ou atteindre un haut niveau de compétitivité ont tout intérêt à la maitriser. Pour y parvenir, les équipes IT doivent disposer de bons outils et de compétences pointues. Il faut également s’y préparer comme il faut et nous vous partageons quelques points de contrôles nécessaires pour l’automatisation du CI/CD.
Retour sur les fondements des pipelines CI/CD
Un pipeline CI/CD est un processus, c’est-à-dire un enchainement d’étapes permettant de faire évoluer un logiciel vers une nouvelle version. Elle repose sur la Site Reliability Engineering (SRE) ou l’ingénierie de la fiabilité des sites et dans l’idéal, sur une approche orientée DevOps. L’amélioration de ce processus s’appuie sur deux notions importantes : la surveillance et l’automatisation. C’est sur la deuxième notion que l’on va s’intéresser davantage à travers cet article, quand bien même elle reste facultative, les étapes du pipeline pouvant être exécutées manuellement. Cependant, Dans la logique de l’évolution et de l’amélioration du rendement des équipes IT, un pipeline CI/CD doit être rationnalisée grâce à cette automatisation. Gain de temps et amélioration en continu du produit sont les maitres mots.
Selon Red Hat, un pipeline CI/CD comprend les étapes suivantes :
- La création de l’application ou sa compilation (build)
- Le test du code : l’automatisation devient essentielle dès cette étape pour gagner du temps et réduire les efforts
- Le lancement ou distribution de l’application
- Le déploiement du code vers la production
- La validation et la mise en conformité
Les 3 premières étapes constituent le CI ou Intégration Continue (continuous integration), la quatrième représente la Livraison Continue (continuous delivery) et la cinquième est synonyme de CD ou Déploiement Continu (continuous déployment).
Comme il ne s’agit pas d’une science exacte, ces 5 étapes représentent tout simplement un modèle de base que chaque organisation peut adapter à ses réalités et besoins.
Nuance entre livraison continue et déploiement continu
Si vous faites partie de ceux qui ont du mal à faire la différence entre la livraison continue et le déploiement continu, vous êtes loin d’être un cas isolé. De nombreux professionnels ont du mal à cerner la différence entre ces notions ô combien importantes. Pour faire la lumière sur cette différence, nous nous sommes appuyés sur la définition de Kulbir Raina, leader chez Capgemini et grand spécialiste des pratiques DevOps et agile. Selon ses propres mots :
« La Livraison Continue est le flux automatisé de bout en bout des versions logicielles jusqu’à la production tandis que le Déploiement Continu est le processus automatisé qui pousse le progiciel de ce flux vers la production après l’intégration continue, via un processus pré-testé ».
L’automatisation des déploiements est une pratique qui n’est pas sans risques vis-à-vis des utilisateurs finaux. Pour les prévenir, il faut que le processus intègre des tests continus et une grande capacité à gérer des erreurs.
Selon Mike Saccotelli, le directeur de l’ingénierie logicielle chez SPR :
« La différence entre une entreprise qui exploite un modèle de livraison continue et un modèle de déploiement continu se juge dans le niveau de maturité et de sophistication de ses processus de construction et de déploiement ».
Quelques points de contrôle pour réussir l’automatisation du CI/CD
Pour que votre équipe DevOps puisse se préparer au mieux dans le cadre d’un projet d’automatisation des pipelines CI/CD, vous devez :
- Leur faire comprendre les avantages que procure cette automatisation pour l’entreprise - Les équipes doivent être en mesure de cerner comment le déploiement peut être rentable et techniquement avantageux pour l’entreprise.
- Pousser les développeurs (Dev) à fournir du code de qualité - Cela suggère une grande compréhension du code afin de renforcer la fiabilité du système.
- Conscientiser l’équipe exploitation (Ops) sur les risques de l’automatisation et l’importance de la surveillance des services, des applications et des systèmes après le déploiement de nouveaux codes par les développeurs - Ils peuvent exploiter de nombreux outils de surveillance, notamment les plateformes AIOps, utiliser des outils de sécurité ou encore une Infrastructure-as-a-Code.
- Mettre en place des workflows entre les équipes et les outils - La préparation des collaborateurs DevOps est essentielle mais elle ne fait pas tout. Les risques subsistent. Bon nombre d’outils CI/CD sont peu fiables et les tests peuvent également être faussés, entre autres. Les temps de réponses doivent être optimisés grâce à l’usage de workflow et autres outils de gestion de services IT (ITSM). Cela permettra in fine de suivre en temps réel les problèmes relatifs aux déploiements continus et d’agir en conséquence dans les meilleurs délais.
- Définir des KPI - Comme tout projet à gérer idéalement, l’automatisation CI/CD requiert la définition d’indicateurs clé de performance. Outre les règles métiers et la qualité, ces KPI doivent être définies en tenant compte de la conformité.



