Qu’est-ce que la distribution continue ?

18 octobre 2021

Qu’est-ce que la distribution continue ?

La distribution continue permet aux équipes de développement d’automatiser le processus de progression des logiciels tout au long du cycle de développement.

La distribution continue peut offrir de nombreux avantages lors du provisionnement d’une boîte à outils intégrée, notamment :

  • Réduit des délais de déploiement grâce à des tests et à un développement continus.

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

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

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

Les bonnes pratiques de la distribution continue

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

  • Faire en sorte que chaque changement soit publiable – Si vous utilisez la distribution continue pour rendre chaque changement publiable, vous devez inclure la documentation utilisateur, les dossiers d’exploitation et les informations sur ce qui a été modifié à des fins d’audit.

  • Privilégier le développement axé sur le tronc (« trunk-based development »). 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 pour obtenir les commentaires 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 entièrement le système.
Vue aérienne d’autoroutes

Gardez la tête dans le cloud 


Recevez la newsletter hebdomadaire Think pour obtenir des conseils d’experts sur l’optimisation des paramètres multicloud à l’ère de l’IA.

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 qui permet 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 la source et accomplir des tâches de contrôle sur cette 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).
IBM DevOps

Qu’est-ce que le DevOps ?

Andrea Crawford présente le DevOps, démontre sa valeur, et explique de quelle façon les pratiques et les outils DevOps vous aident à faire progresser vos applications dans l’ensemble du pipeline de livraison logiciel, de l’idéation à la production. Dirigé par des leaders d’opinion d’IBM, le programme a pour but d’aider les chefs d’entreprise à acquérir les connaissances nécessaires pour donner la priorité aux investissements dans l’IA capables de stimuler la croissance.

Déploiement continu et 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, parfois appelé le cycle de vie de distribution. Le déploiement continu 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.

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 qui privilégie 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. Cette approche fusionne le développement et les opérations en une seule équipe, qui travaille sur l’ensemble du cycle de vie du développement logiciel, du codage aux tests en passant par le déploiement et le support.

Solutions connexes
Accélération d’IBM DevOps

Automatisez la fourniture de logiciels pour toutes les applications sur site, dans le cloud ou sur mainframe.

Découvrir DevOps Accelerate
Solutions DevOps

Utilisez les logiciels et outils DevOps pour créer, déployer et gérer des applications cloud natives sur de nombreux appareils et environnements.

Découvrir les solutions DevOps
Services de conseil cloud 

Déverrouillez de nouvelles fonctionnalités et stimulez l’agilité de votre entreprise grâce aux services de conseil d’IBM Cloud. Découvrez comment co-créer des solutions, accélérer la transformation numérique et optimiser les performances grâce à des stratégies de cloud hybride et à des partenariats d’experts.

Services cloud
Passez à l’étape suivante

Exploitez le potentiel du DevOps pour créer, tester et déployer des applications cloud natives sécurisées avec une intégration et une livraison continues.

Découvrir les solutions DevOps Découvrir le DevOps en action