Distribution continue
Arrière-plan noir et bleu
Qu'est-ce que la distribution continue ?

Introduction au pipeline de distribution continue, y compris les meilleures pratiques, les avantages et les outils de distribution continue.

La distribution continue permet aux équipes de développement d'automatiser le processus de déplacement de logiciels tout au long du cycle de développement de logiciels, et elle peut offrir de nombreux avantages lors de la mise à disposition d'une boîte à outils intégrée, y compris les éléments suivants :

  • Réduction du temps de déploiement grâce aux test et développement continus
  • Réduction des coûts associés au développement traditionnel de logiciels
  • Mise à l'échelle du développement de logiciels en fonction de la taille du projet
  • Déploiement de code automatique à chaque phase du cycle de développement

Dans la vidéo suivante, Eric Minick donne une explication détaillée de la distribution continue :

Meilleures pratiques

Voici un ensemble des meilleures pratiques à prendre en compte lors de l'utilisation de la distribution continue :

  • Rendre chaque correction réalisable : si vous utilisez la distribution continue pour apporter toutes les corrections réalisables, vous devez inclure la documentation utilisateur, les dossiers d'exploitation et les informations sur ce qui a été modifié, à des fins d'audit.
  • Tirer parti du développement basé sur trunk : la distribution continue repose sur une intégration continue. Évitez autant que possible les branches qui retardent l'intégration afin que chaque correction soit générée, testée et déployée avec le retour le plus rapide.
  • Livrer via un pipeline automatisé : pour réussir l'implémentation de la distribution continue, vous avez besoin d'un pipeline de distribution automatisé et bien construit pour vous assurer que toutes vos publications de code passent dans vos environnements de test et de production de manière cohérente.
  • Automatiser au maximum : dans la distribution continue, vous devez automatiser autant de processus que possible dans le cycle de vie du développement de logiciels pour créer un pipeline de distribution correct et fiable, non seulement pour les générations et le déploiement de code mais aussi pour la création de nouveaux environnements de développement.
  • Viser la disponibilité totale : pour garantir la disponibilité de l'application lorsque vous faites des mises à jour fréquentes de la distribution continue, lorsque vous introduisez une nouvelle fonction en production, vous devez d'abord la valider avant de la déployer pour le public exécutant l'instance de l'application.
  • Publier à la granularité du test : si deux parties d'un système doivent être testées ensemble, elles doivent être publiées ensemble afin que vous sachiez que les parties de votre système sont compatibles. La publication d'outils d'automatisation permet de bien coordonner ce type de distribution. Il est également possible de la dissocier totalement.
Pipeline/infrastructure de distribution continue

Pour tirer parti des avantages de la distribution continue, vous avez besoin d'autres éléments de l'infrastructure continue, tels que l'exploration continue, l'intégration continue, le déploiement continu et la production à la demande.

Lorsque vous utilisez des niveaux de pipeline de distribution continue, vous devez les diviser en tâches distinctes, qui sont des unités d'exécution dans un niveau :

  • Création de travaux : compilez votre projet dans le travail de génération pour préparer le déploiement lorsque vous générez des artefacts que vous pouvez envoyer dans un répertoire d'archivage des versions.
  • Déployer des travaux : téléchargez votre projet sur votre pipeline de distribution continue comme une application à laquelle vous pouvez accéder à partir d'une URL. Une fois que vous déployez votre projet, vous le voyez sur votre tableau de bord.
  • Tester les travaux : personnalisez et incluez les travaux de test avant ou après la génération et le déploiement des travaux en fonction de votre suite de tests d'unités ou de tests fonctionnels avec des services tiers.

Voici quelques-unes des choses avec lesquelles le pipeline de distribution continue vous aidera :

  • Automatiser les générations, les tests d'unité et le déploiement
  • Modifier et insérer le code à l'aide de référentiels Git, du suivi des problèmes et de votre interface IDE (environnement de développement intégré) Web.
  • Créer une boîte à outils DevOps intégrée pour générer, déployer et gérer vos applications avec vos services, des outils de code source ouvert et des outils tiers.
  • Modifier votre code de n'importe où vous choisissez d'utiliser votre interface IDE pour créer, modifier, exécuter, déboguer et compléter vos tâches de contrôle de source.
  • Utiliser votre pipeline automatisé pour distribuer en continu les versions, les tests et les déploiements de manière reproductible.
  • Améliorer la qualité en comprenant le statut de vos générations, les résultats d'analyse de sécurité, la couverture de code et la couverture de test afin de pouvoir évaluer s'il faut promouvoir ou non votre application dans l'environnement suivant (via des règles pour garantir automatiquement la qualité avant la promotion).
Déploiement continu versus Distribution continue

Le déploiement continu peut être un composant d'un pipeline de distribution continue. Plus précisément, la distribution continue est le mouvement automatisé du code tout au long du 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 en production, une fois qu'il a réussi les tests automatisés requis.

Le fait d'intégrer le déploiement continu à votre pipeline de distribution dépend de vos besoins métier. Si l'entreprise a besoin que l'équipe de distribution publie un nouveau logiciel ou un logiciel mis à jour en production de manière répétitive, fiable ou aussi rapide que possible, ou si la solution a plusieurs dépendances, il est probable que le déploiement continu soit avantageux pour vous.

Pour plus informations à propos des différences entre le déploiement continu et la distribution continue, regardez cette vidéo :

Outils

Un outil de distribution continue vous permet d'utiliser des outils de code source ouvert pour générer, déployer et gérer vos applications. En intégrant des ensembles d'outils, vous pouvez créer des tâches reproductibles et gérables, non seulement pour votre équipe de développement mais aussi pour votre équipe chargée des opérations.

Votre boîte à outils peut inclure vos services de cloud actuels, vos outils de code source ouvert et des outils tiers, mais vous pourrez également envisager un outil de distribution continue qui inclut les éléments suivants :

  • Des modèles reproductibles pour la génération et l'automatisation du déploiement. Si cela fonctionne pour l'une de vos applications, cela devrait fonctionner pour les autres. Ne laissez pas chaque équipe en difficulté avec la configuration.
  • Un pipeline afin que vous puissiez effectuer une génération automatique lors de l'insertion de corrections, du déploiement sur le cloud, de l'incorporation des générations et des déploiements dans vos chaînes d'outils et de la gestion des déploiements au sein de votre chaîne d'outils.
  • Des outils de collaboration pour les équipes, la planification, la gestion du code source et le test.
  • Une instrumentation qui expose où votre équipe évolue rapidement et où les choses s'enlisent, fournissant un guide pour devenir « plus continu ».

Des outils de distribution continue de code source ouvert que vous pouvez utiliser pour un pipeline de distribution continue performant :

  • Jenkins
  • Concourse CI
  • Spinnaker
  • Travis CI
  • GoCD
  • GitLab CI
Agile et DevOps

Distribution continue agile

Auparavant, vous ne mettiez en production le logiciel qu'une fois, puis le mettiez à jour. Ce n'est qu'ensuite que vous consultiez les clients au début et à la fin pour voir si le logiciel respectait leurs besoins.

Agile est un moyen de produire des logiciels par itérations brèves dans un planning de distribution continue et le processus de distribution continue agile actuel signifie que vous pouvez publier du code pour le client au fur et à mesure que chaque fonction définie est disponible. Le développement agile et la distribution continue sont vos clés pour fournir au client les fonctionnalités dès qu'elles sont prêtes pour la production. Votre objectif est que chaque fonctionnalité soit prête pour publication dès qu'elle existe dans le pipeline.

En savoir plus sur les avantages des principes agiles.

DevOps et distribution continue

Au cours des dernières décennies, le développement de logiciels a subi des changements importants lors de son passage du concept de système en cascade à la méthodologie agile plus efficiente. Pour vous adapter, vous avez besoin de passer à une approche centrée sur agile, DevOps et la distribution continue. Dans le cadre du pipeline de distribution continue, ces processus ciblés permettent des publications et mises à jour de logiciels plus fiables et de haute qualité.

Au fur et à mesure que vous faites des publications de logiciels plus rapides et plus petites grâce au développement agile, votre cible devient plus étroite aux différentes étapes du développement de logiciels. Dans le même temps, DevOps vous permet de vous concentrer sur la « Bigger Picture » et le changement culturel car le développement et les opérations fusionnent étroitement en une équipe travaillant sur tout le cycle de vie du développement de logiciels, du codage au test au déploiement et au support.

Pour plus d'informations sur le processus DevOps, voir « DevOps: An Essential Guide » et la vidéo suivante :

Distribution continue et IBM Cloud

La possibilité de mise à disposition rapide d'une chaîne d'outils intégrée avec des modèles personnalisables et partageables aide à automatiser les générations et les test et à augmenter le contrôle de la qualité. Vous pouvez le faire avec les outils IBM, ainsi qu'avec des intégrations avec des plug-ins tiers et open source. Les processus et les outils d'IBM peuvent vous aider à mener à bien l'une des initiatives DevOps les plus difficiles auxquelles les organisations sont confrontées : la création et la modernisation d'applications dans le cadre du passage au cloud.

Pour aller plus loin :

  • Créez des boîtes à outils orientées DevOps qui prennent en charge vos tâches de distribution d'applications avec IBM Cloud Continuous Delivery.
  • Commencez à accélérer le processus de génération, d'intégration et de déploiement d'applications même complexes à partir d'IBM UrbanCode.
  • Découvrez la distribution continue et l'automatisation du déploiement avec l'outil de publication d'application IBM UrbanCode Deploy.
  • Distribuez des applications de cloud natif au sein de plusieurs fournisseurs de cloud ou sur des systèmes locaux, surveillées par un tableau de bord intégré, avec Tekton on IBM Cloud.
  • Vous venez de démarrer avec DevOps ? Créez une chaîne d'outils de déploiement simple en suivant ce tutoriel.

Démarrez dès aujourd'hui avec un compte IBM Cloud.

Solutions connexes
IBM Cloud Continuous Delivery

IBM Continuous Delivery est un service cloud qui met à disposition des chaînes d'outils, permet d'automatiser les générations et les tests, et de contrôler la qualité grâce aux analyses.

Découvrez IBM Cloud Continuous Delivery
IBM UrbanCode

La famille de progiciels IBM Urbancode vous aide à commercialiser des logiciels plus rapidement en accélérant le distribution des applications et en réduisant les processus manuels.

Explorez IBM UrbanCode
Tekton on IBM Cloud

Créez des pipelines CI/CD natifs Kubernetes avec une rapidité et une flexibilité maximales.

Explorez Tekton on IBM Cloud