Qu’est-ce que la distribution continue ?
La distribution continue permet aux équipes de développement d’automatiser le processus de progression des logiciels lors du cycle de développement
Abonnez-vous à la newsletter IBM
Fond noir et bleu
Qu’est-ce que la distribution continue ?

La distribution continue permet aux équipes de développement d’automatiser le processus de progression des logiciels lors du cycle de développement. Elle offre de nombreux avantages lors de la mise au point d’une boîte à outils intégrée, notamment :

  • réduction des délais de déploiement grâce à des tests et à un développement continus ;

  • diminution des coûts associés au développement logiciel classique ;

  • adaptation du développement logiciel en fonction de la taille du projet ;

  • déploiement automatique du code à chaque phase du cycle de développement.

Dans la vidéo suivante, Eric Minick vous en dit plus sur la distribution continue :

Les bonnes pratiques de la distribution continue

Voici une liste de bonnes pratiques à prendre en compte dans le cadre de la distribution continue :

  • Faire en sorte que chaque changement soit publiable : Si vous utilisez la distribution continue à cet effet, vous devez inclure la documentation utilisateur, les dossiers d’exploitation et le détail de ce qui a été modifié (pour les besoins d’audit).

  • Privilégier le développement basé sur le tronc : La distribution continue s’appuie sur l’intégration continue. Évitez autant que possible les branches qui retardent l’intégration afin que chaque changement soit généré, testé et déployé en même temps et que le retour d’information soit le plus rapide possible.

  • Distribuer au moyen d’un pipeline automatisé : La mise en œuvre de la distribution continue nécessite un pipeline automatisé et efficace. Ainsi, toutes les versions de votre code seront transférées dans vos environnements de test et de production de manière cohérente.

  • Automatiser autant que possible : Dans le cadre de la distribution continue, il convient d’automatiser autant de processus que possible au sein de votre cycle de développement logiciel. Votre pipeline de distribution sera ainsi parfaitement apte à gérer les versions et les déploiements de code, mais aussi la création de nouveaux environnements de développement.

  • Viser zéro temps d’arrêt : Afin de garantir la disponibilité des applications lors des mises à jour régulières, lorsque vous faites passer une nouvelle fonction en production, vous devez d’abord la valider avant de la déployer sur l’instance publique en cours d’exécution.

  • Publier ensemble les éléments testés ensemble : Si deux parties d’un système doivent être testées ensemble, elles doivent être publiées ensemble afin d’en garantir la compatibilité. Les outils d’automatisation de la publication permettent de coordonner ce type de distribution. Une autre solution consiste à découpler complètement le système.
Pipeline/framework continu

Pour profiter des avantages de la distribution continue, vous avez besoin d’autres éléments de la même famille, tels que l’exploration continue, l’intégration continue, le déploiement continu et la publication à la demande.

Concernant le pipeline de distribution continue, il est conseillé de diviser chaque étape en tâches distinctes, c’est-à-dire des unités d’exécution à l’intérieur de chacune d’entre elles :

  • Tâches de génération : Il s’agit ici de compiler votre projet dans la tâche de génération en vue du déploiement, c’est-à-dire de produire des artefacts pouvant être envoyés à un répertoire d’archivage.

  • Tâches de déploiement : Votre projet doit être téléchargé dans votre pipeline de distribution continue sous la forme d’une application à laquelle vous pouvez accéder à partir d’une URL. Après avoir déployé votre projet, vous pouvez l’afficher sur votre tableau de bord.

  • Tâches de test : Vous devez personnaliser et inclure des tâches de test avant ou après vos tâches de génération et de déploiement en fonction de votre série de tests unitaires ou fonctionnels avec des services tiers.

Le pipeline de distribution continue aide les équipes de développement à :

  • automatiser les versions, les tests unitaires et le déploiement ;

  • modifier et envoyer du code en utilisant les référentiels Git, le suivi des problèmes et votre IDE (environnement de développement intégré) Web ;

  • créer une boîte à outils DevOps intégrée permettant de générer, de déployer et de gérer vos applications à l’aide de vos services ainsi que d’outils open source et tiers ;

  • modifier le code à partir de n’importe quel endroit en utilisant l’IDE pour créer, modifier, exécuter, déboguer et accomplir des tâches de contrôle de la source ;

  • utiliser le pipeline automatisé pour distribuer en continu des versions, des tests et des déploiements de manière reproductible ;

  • améliorer la qualité en comprenant l’état des versions, les résultats des analyses de sécurité, la couverture du code et celle des tests afin de déterminer s’il convient de transférer l’application à l’environnement suivant (par le biais de points de contrôle afin de garantir automatiquement la qualité avant le transfert).
Déploiement continu vs distribution continue

Le déploiement continu peut être intégré à un pipeline de distribution continue. Plus précisément, la distribution continue est le mouvement automatisé du code à travers le cycle de vie de développement ; le déploiement continu, en revanche, est le mouvement automatisé de ce code vers la production, une fois qu’il a passé les tests automatisés requis.

L’intégration du déploiement continu dans votre pipeline de distribution dépend des besoins de votre entreprise. Si elle a besoin que l’équipe chargée de la distribution mette en production des logiciels nouveaux ou mis à jour de manière répétée, fiable ou aussi rapide que possible, ou si la solution comporte de nombreuses dépendances, alors le déploiement continu lui sera probablement utile.

Pour en savoir plus sur les différences entre le déploiement continu et la distribution continue, regardez la vidéo suivante :

Outils de distribution continue

Un outil de distribution continue vous permet d’utiliser des outils open source afin de générer, de déployer et de gérer vos applications. L’intégration d’une boîte à outils donne à votre équipe de développement, mais aussi à celle d’exploitation, la possibilité de créer des tâches reproductibles et gérables.

Ces outils peuvent comprendre vos services cloud actuels ainsi que des outils open source et tiers, mais votre outil de distribution continue devra également comporter les éléments suivants :

  • Des modèles reproductibles pour automatiser la génération et le déploiement. Si cela fonctionne pour l’une de vos applications, il devrait en être de même pour les autres. Ne laissez pas chaque équipe batailler seule avec la configuration.

  • Un pipeline vous permettant de générer automatiquement des versions lorsque vous apportez des modifications, de les déployer dans votre cloud, d’incorporer des versions et des déploiements dans vos chaînes d’outils et d’y gérer les déploiements.

  • Des outils de collaboration, de planification, de gestion du code source et de test.

  • Une instrumentation qui met en évidence les domaines dans lesquels votre équipe progresse rapidement et ceux dans lesquels elle stagne, afin qu’elle sache comment mieux intégrer les principes de l’approche « continue ».

Parmi les outils de distribution continue open source que vous pouvez utiliser afin de mettre en place un pipeline efficace, on peut citer Jenkins, Concourse CI, Spinnaker, Travis CI, GoCD et GitLab CI.

Agilité et DevOps

Distribution continue agile

Auparavant, la pratique consistait à publier un logiciel une seule fois, puis à le mettre à jour. Les clients étaient consultés seulement au début et à la fin afin de voir si le logiciel répondait à leurs besoins.

La méthodologie agile est une façon de produire des logiciels par itérations courtes selon un calendrier de distribution continue. Le processus de distribution continue agile d’aujourd’hui vous permet de mettre le code à la disposition des clients au fur et à mesure que chaque fonctionnalité devient disponible. Le développement et la distribution continue agiles sont essentiels pour que les fonctionnalités soient mises à la disposition des clients dès qu’elles sont prêtes pour la production. Votre objectif est de faire en sorte que chaque fonctionnalité soit prête à être publiée dès sa sortie du pipeline.

Apprenez-en plus sur les avantages des principes agiles.

DevOps et distribution continue

Au cours des deux dernières décennies, le développement logiciel a connu des changements importants en passant du modèle standard en cascade à la méthodologie agile, bien plus efficace. Afin de vous adapter, vous devez passer à une approche privilégiant les principes agiles, le DevOps et la distribution continue. Dans le cadre d’un pipeline de distribution continue, ces processus ciblés permettent de produire des versions et des mises à jour de logiciels plus fiables et de meilleure qualité.

Au fur et à mesure que vous publiez des versions logicielles plus petites plus rapidement grâce au développement agile, vous porterez une plus grande attention aux différentes étapes du développement logiciel. Dans le même temps, le DevOps vous permettra de garder l’esprit fixé sur la situation globale et les changements culturels, tandis que les équipes chargées du développement et de l’exploitation fusionneront étroitement et travailleront sur l’ensemble du cycle de développement logiciel, du codage aux tests, en passant par le déploiement et le support.

Pour en savoir plus sur le processus DevOps, regardez la vidéo suivante :

Solutions connexes
IBM Cloud Continuous Delivery

IBM Continuous Delivery est un service cloud qui permet de provisionner des chaînes d’outils, d’automatiser la génération de versions et les tests, et de contrôler la qualité grâce aux analyses.

Découvrir IBM Cloud Continuous Delivery
IBM UrbanCode

La gamme de produits logiciels IBM UrbanCode vous aide à mettre vos logiciels sur le marché plus rapidement en réduisant les processus manuels et en accélérant la distribution des applications.

Découvrir IBM UrbanCode
Tekton on IBM Cloud

Une solution qui vous permet de créer des pipelines CI/CD natifs Kubernetes avec un maximum de rapidité et de flexibilité.

Découvrir Tekton on IBM Cloud
Ressources Qu’est-ce que le DevOps ?

Le DevOps accélère la distribution de logiciels de meilleure qualité en combinant et en automatisant le travail des équipes de développement logiciel et d’exploitation informatique.

Qu’est-ce que l’intégration continue ?

L’intégration continue est un processus de développement itératif qui consiste à intégrer du code nouveau dans la base de code au moins une fois par jour.

Qu’est-ce que la CI/CD et le pipeline CI/CD ?

Un guide pratique sur le pipeline d’intégration continue/de distribution continue (CI/CD)....

Passez à l’étape suivante

Votre entreprise est-elle prête pour le DevOps ? Proposer des logiciels et des services à la vitesse exigée par le marché demande aux équipes d’itérer et d’expérimenter rapidement, et de déployer de nouvelles versions fréquemment, en fonction des retours d’information et des données. Les équipes de développement cloud les plus performantes ont adopté une culture et des bonnes pratiques DevOps modernes, des architectures cloud-natives, et ont constitué des chaînes d’outils à partir de ce qu’il se fait de mieux sur le marché afin de décupler leur productivité.

Trouver votre solution DevOps