Connexion / Inscription Account

DevOps

La distribution continue, qu'est-ce que c'est ?

Jump to section

La distribution continue est une pratique de développement logiciel qui utilise l'automatisation pour accélérer le lancement de nouveaux codes.

Elle établit un processus par lequel les modifications qu'apporte un développeur à une application peuvent être transférées vers un référentiel de codes ou un registre de conteneurs grâce à l'automatisation.

Lien entre distribution continue et approche CI/CD

La distribution continue est une composante de la méthode CI/CD, qui permet d'accélérer le rythme de distribution des logiciels en automatisant certaines étapes du développement. 

Le sigle CI signifie « Continuous Integration » en anglais, que l'on traduit par « intégration continue ». Cette pratique consiste à apporter régulièrement des modifications au code des applications, à les tester, puis à les fusionner dans un référentiel partagé. Cette solution permet d'éviter de travailler en même temps sur un trop grand nombre d'éléments d'une application, qui pourraient entrer en conflit les uns avec les autres.

Le sigle CD peut signifier « Continuous Deployment » ou « Continuous Delivery » en anglais. Il fait référence au déploiement continu ou à la distribution continue, des stratégies d'automatisation des étapes ultérieures du pipeline.

Différence entre distribution continue et déploiement continu

Les concepts de distribution continue et de déploiement continu, bien qu'ils soient étroitement liés, sont parfois utilisés séparément pour préciser le degré d'automatisation.

En général, dans le cadre de la distribution continue, les modifications apportées par l'équipe de développement à une application sont automatiquement testées et chargées dans un référentiel (tel que GitHub ou un registre de conteneurs), où elles peuvent être déployées dans un environnement de production actif par l'équipe d'exploitation. Le processus de distribution continue permet de résoudre les problèmes de visibilité et de communication entre l'équipe de développement et l'équipe métier. Son objectif est donc de simplifier au maximum le déploiement du nouveau code.

Le déploiement continu couvre des étapes supplémentaires du processus de lancement d'un logiciel. Généralement, il inclut le transfert automatique des modifications du développeur depuis le référentiel vers l'environnement de production, où elles peuvent être utilisées par les clients. Ce processus permet de soulager les équipes d'exploitation surchargées par les tâches manuelles qui ralentissent la distribution des applications. Il repose sur la distribution continue et automatise l'étape suivante du pipeline.

Définition d'un pipeline CI/CD

Un pipeline CI/CD est une série d'étapes à réaliser en vue de la distribution d'une nouvelle version d'un logiciel. Lorsque l'approche CI/CD a été mise en pratique, un pipeline CI/CD a été établi.

Un pipeline CI/CD utilise la surveillance et l'automatisation pour améliorer le workflow 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 l'automatisation du cycle de vie de l'application.

Lien entre distribution continue et DevOps

Le concept du DevOps combine des pratiques de développement et d'exploitation (« Development » et « Operations » en anglais). Cette approche de la culture informatique, de l'automatisation et de la conception de plateformes consiste à accroître la valeur métier et à optimiser la réactivité des entreprises grâce à une distribution plus rapide et efficace des services.

La distribution continue est une pratique de développement logiciel spécifique, qui est souvent appliquée en lien avec le DevOps. Il est donc très probable qu'une approche DevOps entraîne la création d'un pipeline de distribution continue.

Le DevOps décrit des approches d'accélération des processus selon lesquels une idée (par exemple, une nouvelle fonction logicielle, une demande d'amélioration ou la correction d'un bogue) passe de la phase de développement à celle du déploiement dans un environnement de production où elle peut apporter de la valeur à l'utilisateur. 

Dans le cadre d'une approche DevOps, les développeurs, qui travaillent généralement dans un environnement de développement standard, collaborent étroitement avec les équipes d'exploitation et les testeurs pour accélérer la création des versions de logiciels, l'enregistrement du code, les tests unitaires et les lancements sans pour autant sacrifier la fiabilité.

L'un des principaux résultats de la mise en œuvre du DevOps est la création d'un pipeline CI/CD, pour lequel les équipes de développement et d'exploitation travaillent ensemble de manière agile

L'automatisation du pipeline au service de la distribution continue

L'approche CI/CD s'appuie sur l'automatisation pour accélérer les processus de développement, de déploiement et de test. L'automatisation assure la qualité des processus et réduit le nombre d'erreurs humaines. Elle peut également prendre en charge la sécurité dans le cadre d'une stratégie DevSecOps.

Certains outils gèrent spécifiquement la partie intégration (CI), d'autres le développement et le déploiement (CD), et d'autres encore les tests continus ou les fonctions connexes.

Le serveur d'automatisation Jenkins compte parmi les outils Open Source de CI/CD les plus connus. Cette solution permet de gérer toutes les situations, du simple serveur de CI à un hub de CD complet.

Un autre projet Open Source couramment utilisé est Tekton, un framework de la Continuous Delivery Foundation. Il permet de décrire les pipelines de distribution de façon déclarative, avec les concepts de Kubernetes, et de les exécuter à la demande dans des conteneurs.

Tekton constitue la base d'OpenShift Pipelines, une solution de CI/CD pour Red Hat® OpenShift®.

Les éléments de base d'un pipeline CI/CD

Red Hat Openshift

Plateforme Kubernetes de conteneurs qui permet d'accélérer le déploiement d'applications cloud-native.

Red Hat Ansible Automation

L'approche CI/CD nécessite un codage personnalisé et le recours à des paquets logiciels multiples. Red Hat Ansible Automation Platform est un langage d'automatisation Open Source qui rassemble ces fonctionnalités.

Solution qui permet d'augmenter la valeur de Red Hat OpenShift en déployant des applications, en gérant plusieurs clusters et en appliquant des politiques à grande échelle à plusieurs clusters.

Vous ne savez pas encore tout sur l'approche CI/CD…