Si vous connaissez le métier de DevOps, il ne fait aucun doute que le concept de CI/CD ne vous est pas inconnu. Pour ceux qui ne sauraient pas encore ce que cela implique, vous êtes au bon endroit.
Nous allons voir dans cet article ce que veut dire CI/CD, ce que cela implique et comment le mettre en pratique.
Que veut dire CI/CD ?
Premièrement, il convient de définir rapidement ce que l’on entend par CI et CD. Cela correspond à plusieurs concepts :
- Intégration continue (continuous integration)
- Distribution / Livraison continue (continuous delivery)
- Déploiement continu (continuous deployment)
Les concepts de distribution et de déploiement continus sont relativement proches, à quelques exceptions près. Nous verrons cela dans leurs parties dédiées.
Définition des concepts 💡
Ici, nous avons pour but d’accélérer les processus de développement et de mise en production en réduisant un maximum les erreurs.
Quand on développe une application, seul ou en équipe, il va falloir passer par un certain nombre d’étapes avant la mise en production.
Qu’est-ce que l’intégration continue ?
De nos jours, le développement d’applications se fait généralement en équipes composées de plusieurs développeurs. Chaque personne ou équipe a son propre rôle à jouer dans le projet en avançant sur sa partie dédiée.
On se retrouve alors à la fin du projet avec plusieurs briques de code à compiler. En fonction des méthodes de travail de chacun, on peut perdre beaucoup de temps à devoir gérer cette intégration.
L’Intégration continue de CI/CD regroupe donc des processus visant à publier en continu les modifications et ajouts de code sur une branche partagée du projet. Cela permet de tester le code et d’y apporter des améliorations et modifications en temps réel. Le but est de tester chaque élément via la création de tests.
Cette mesure permanente permet de ne pas tout vérifier en un seul bloc à la fin et d’éviter de travailler sur un trop grand nombre d’éléments à la fois. La réalisation de tests unitaires est alors très utile pour nous en assurer. Ainsi, on détecte plus facilement les erreurs en s’assurant que le code compile bien et ne crée pas de régressions.
Qu’est-ce que la distribution / livraison continue ? 📦
La Distribution continue simplifie le déploiement du nouveau code. C’est ce qui suit l’intégration continue. Une fois que les éléments sont publiés, testés puis validés, on peut entrer dans la phase de livraison continue.
Les modifications apportées sont déployées directement dans un environnement de production / de test. Cela permet de corriger les problèmes potentiels entre les équipes métier et développement.
Concrètement, notre application, avec la distribution continue, est développée de sorte à pouvoir être mise en production, qu’importe le moment.
Qu’est-ce que le déploiement continu ?
Si les concepts de distribution continue et déploiement continu sont assez similaires, il existe des différences.
Si leur objectif est le même, c’est-à-dire, le déploiement de l’application en production, les moyens pour y parvenir diffèrent. Ce qui sépare la livraison continue du déploiement continu, c’est la mise en production.
En effet, le déploiement continu permet de déployer directement chaque modification qui franchit les différentes étapes de notre pipeline.
Alors qu’en livraison continue, une étape de validation humaine est nécessaire pour que le déploiement ait lieu.
Quels sont les meilleurs outils CI/CD ?
Il existe de nombreux outils pour implémenter notre processus, pour n’en citer que quelques-uns :
Les avantages de l’approche CI/CD 👏
Si le pipeline CI/CD est bien conçu, les étapes d’intégration, de livraison et de déploiement continus permettent aux équipes d’être beaucoup plus efficaces au quotidien.
Il permet aussi une réduction importante des risques liés au déploiement.
Finalement, la partie automatisation est un idéal à atteindre. Effectivement, lorsque le processus est entièrement automatisé, les équipes peuvent alors complètement se concentrer sur le développement de leur application.