Vous êtes sur la page 1sur 4

Un pipeline CI/CD, qu'est-ce que

c'est ?
Pipeline CI/CD : définition
Un pipeline CI/CD est une série d'étapes à réaliser en vue de distribuer
une nouvelle version d'un logiciel.
Un pipeline CI/CD utilise la surveillance et l'automatisation pour
améliorer le processus de développement des applications, en
particulier lors des phases d'intégration et de tests ainsi que pendant la
distribution et le déploiement. Même s'il est possible d'exécuter
manuellement chacune des étapes, tout l'intérêt de ce pipeline réside dans
son automatisation.

Éléments d'un pipeline CI/CD


Les étapes qui constituent un pipeline CI/CD sont des sous-ensembles
distincts de tâches regroupés dans ce que nous appelons une phase de
pipeline. Voici les phases de pipeline les plus courantes :

 Création : compilation de l'application.


 Test : test du code. L'automatisation permet ici d'épargner du temps
et des efforts.
 Lancement : distribution de l'application au référentiel.
 Déploiement : déploiement du code en production.
 Validation et conformité : ces étapes de validation sont à adapter
en fonction des besoins de votre entreprise. Des outils d'analyse de
la sécurité des images tels que Clair peuvent garantir la qualité des
images en les comparant à des vulnérabilités (CVE) connues.
 

Cette liste de phases de pipeline n'est en aucun cas exhaustive. Il s'agit


simplement d'un exemple des phases les plus courantes que vous pouvez
rencontrer. Votre pipeline devra se conformer aux exigences de votre
entreprise.
Conteneurs et pipelines CI/CD
Les systèmes CI/CD traditionnels sont conçus pour les pipelines qui
utilisent des machines virtuelles. Or, le développement d'applications cloud-
native présente des avantages pour les pipelines CI/CD. À quoi ressemble
un pipeline CI/CD avec conteneurs ?
 
Grâce au projet Open Source Tekton, vous pouvez créer des pipelines de
distribution de type Kubernetes capables de contrôler le cycle de vie des
microservices dans son intégralité, sans faire appel à des équipes centrales
pour la gestion et la maintenance d'un serveur, de plug-ins et d'une
configuration d'intégration continue.
Pipelines OpenShift
Les pipelines OpenShift sont une fonction de Red Hat OpenShift basée sur
Tekton, un projet Open Source qui fournit une structure pour créer
rapidement des pipelines cloud-native CI/CD. Tekton est une structure
CI/CD pour les plateformes Kubernetes qui offre une expérience CI/CD
cloud-native standard avec conteneurs. En tant que structure native pour
Kubernetes, Tekton facilite le déploiement entre plusieurs fournisseurs de
cloud ou environnements hybrides. Il s'appuie sur le plan de contrôle et les
définitions de ressources personnalisées (CRD) de Kubernetes pour
exécuter les tâches des pipelines. Conforme aux spécifications standard de
l'industrie, Tekton est compatible avec les outils CI/CD existants tels que
Jenkins, Jenkins X, Skaffold et Knative.

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 ?


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 :

 GitLab
 Jenkins
 CircleCI
 Bamboo
 Travis CI
 CodeShip
 Buildbot
 TeamCity

Vous aimerez peut-être aussi