Explorer la livraison continue

Effectué

L’intégration continue (CI) et la livraison continue (CD) sont étroitement liées aux concepts DevOps, qui représentent deux étapes distinctes du processus de livraison de logiciels. Comme vous le savez à partir du module précédent, l’objectif de CI est de générer et de tester des artéfacts logiciels. CD automatise le processus de remise de ces artefacts à leurs destinataires prévus. En implémentant cd, les organisations telles que celles décrites dans l’exemple de scénario sont en mesure d’éliminer les efforts manuels impliqués dans le déploiement d’applications. Dans cette unité, explorez les caractéristiques et les avantages de CD.

Qu’est-ce que la livraison continue ?

La livraison continue comprend les pratiques, qui automatisent la génération de versions logicielles, garantissent qu’elles sont dans un état déployable et les rendent disponibles pour leurs consommateurs. Son objectif est de réduire le temps nécessaire pour déployer et le temps pour atténuer (TTM), également appelé temps pour remédier (TTR). Ce dernier fait référence aux scénarios où une version nouvellement publiée de l’application atteint l’environnement de production et doit être annulée.

Diagramme du flux de livraison continu.

La livraison continue a tendance à être un processus itératif, où le même artefact représentant la dernière version logicielle transite à travers plusieurs environnements, qui sont dédiés, par exemple, aux tests d'acceptation des utilisateurs, à la préproduction et à la production. Cela offre de nombreuses occasions de valider ses fonctionnalités et sa stabilité.

Il est important de noter que la nomenclature DevOps comprend deux termes étroitement liés, qui ont des noms similaires et le même acronyme : la livraison continue et le déploiement continu. Les deux traitent de l’automatisation et de la rationalisation du processus de livraison de logiciels. La principale distinction entre eux est que ce dernier s’efforce d’implémenter une automatisation complète, y compris l’environnement de production, tandis que, dans le cas de l’ancien, cette livraison finale nécessite une approbation manuelle.

Semblable à l’intégration continue, l’automatisation est basée sur les définitions de mise en production créées par les développeurs et implémentées dans la plateforme d’hébergement de référentiel. Par exemple, GitHub offre à cet effet un flux de travail GitHub Actions, tandis qu’Azure DevOps s’appuie sur Azure Pipelines.

Quels sont les avantages de la livraison continue ?

Les avantages associés à la livraison continue sont des résultats directs de son automatisation et de l’approche décalée vers la gauche. Les plus pertinentes sont les suivantes :

  • cycles de publication accélérés: Les organisations sont en mesure d’augmenter la vitesse de livraison des nouvelles fonctionnalités, des améliorations et des correctifs de bogues, ce qui se traduit par une réduction du délai de commercialisation, bénéficiant ainsi finalement aux clients.
  • résilience accrue: les tests automatisés permettent de détecter les problèmes au début du processus de livraison. Le déploiement automatisé garantit la cohérence entre les environnements et réduit l’impact potentiel des erreurs humaines. L’automatisation a également tendance à simplifier considérablement le processus de restauration en cas de nécessité de revenir à une version logicielle précédente. Le déploiement incrémentiel (que nous aborderons plus loin dans ce module) facilite la découverte de tous les problèmes potentiels avant qu’ils aient un impact plus large sur l’échelle. Les boucles de commentaires rapides réduisent le temps de réponse si un problème est détecté.
  • Collaboration améliorée: CD favorise l’interaction entre les équipes de développement, d’opérations et de sécurité en s’intégrant à CI, ce qui entraîne un processus cohérent englobant la génération, le test et la livraison.
  • Utilisation efficace des ressources: l’automatisation a tendance à réduire le temps consacré aux tâches manuelles, répétitives et fastidieuses, ce qui permet d’optimiser l’utilisation des ressources humaines.