Qu’est-ce que le CI/CD ?

Publié le 6 septembre 2021 Temps de lecture: 4'

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 équipe 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 généralement à 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.

Schéma processus CI/CD

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 continu et déploiement continu sont assez similaires, il existe des différences.

Finalement, même 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 va séparer 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.

Retenons qu’en fonction des pratiques et des entreprises, certaines étapes sont plus ou moins étendues, il n’existe pas de schéma unique. Chaque équipe aura évidemment des préférences en termes d’outils, de pratiques et de rythme.

Vous cherchez un poste de Devops ? Faites un tour sur nos offres !