Qu’est-ce que la livraison continue ?
La création continue de valeur est devenue une exigence absolue pour les organisations. Pour offrir de la valeur à vos utilisateurs finaux, vous devez publier continuellement et sans erreur.
La livraison continue (CD) est le processus d'automatisation de la génération, des tests, de la configuration et du déploiement à partir d’une build vers un environnement de production. Un pipeline de mise en production peut créer plusieurs environnements de test ou de mise en lots pour automatiser la création d’infrastructure et déployer de nouvelles builds. Les environnements successifs prennent en charge les activités d’intégration, de charge et de test d’acceptation utilisateur de plus en plus longue.
Avant CD, les cycles de publication de logiciel étaient un goulot d’étranglement pour les équipes d’application et d’exploitation. Ces équipes s’appuient souvent sur des documents manuels qui ont entraîné des problèmes pendant les cycles de publication. Les processus manuels ont entraîné des versions non fiables qui ont produit des retards et des erreurs.
CD est une pratique simple, avec l’objectif de maintenir la production fraîche avec le chemin le plus rapide du nouveau code ou de la disponibilité des composants au déploiement. L’automatisation réduit le temps de déploiement et de temps pour atténuer (TTM) ou le temps de correction des (TTR) incidents de production. En termes simples, CD optimise le temps de traitement et élimine le temps d’inactivité.
L’intégration continue (CI) démarre le processus CD. Le pipeline de mise en production fait passer chaque environnement successif à l’environnement suivant une fois les tests terminés avec succès. Le pipeline de mise en production de CD automatisé permet une approche rapide de l’échec de la validation, où les tests les plus susceptibles d’échouer rapidement s’exécutent en premier et les tests plus longs ne se produisent qu’une fois les tests plus rapides terminés avec succès.
Les pratiques complémentaires de l’infrastructure en tant que code (IaC) et la surveillance facilitent le CD.
Techniques d’exposition progressive
CD prend en charge plusieurs modèles d’exposition progressive, également appelé « contrôle du rayon d’explosion ». Ces pratiques limitent l’exposition aux déploiements afin d’éviter les problèmes liés à la base d’utilisateurs globale.
CD peut séquencer plusieurs anneaux de déploiement pour une exposition progressive. Un anneau tente un déploiement sur un groupe d’utilisateurs et surveille son expérience. Le premier anneau de déploiement peut être un canari pour tester de nouvelles versions en production avant un déploiement plus large. CD automatise le déploiement d’un anneau à l’autre.
Le déploiement sur l’anneau suivant peut éventuellement dépendre d’une étape d’approbation manuelle, où un décideur se déconnecte des modifications électroniquement. CD peut créer un enregistrement vérifiable de l’approbation pour satisfaire aux procédures réglementaires ou à d’autres objectifs de contrôle.
Le déploiement bleu/vert s’appuie sur la conservation d’une version bleue existante pendant qu’une nouvelle version verte est déployée. Cette pratique utilise généralement l’équilibrage de charge pour acheminer des quantités croissantes de trafic vers le déploiement vert. Si la surveillance détecte un incident, le trafic peut être redirigé vers le déploiement bleu encore en cours d’exécution.
Les indicateurs de fonctionnalités ou les bascules de fonctionnalités comportent une autre technique utilisée pour l’expérimentation et les lancements sombres. Les indicateurs de fonctionnalités activent ou désactivent les fonctionnalités pour différents groupes d'utilisateurs en fonction de leur identité et de leur appartenance à un groupe.
Les pipelines de mise en production modernes permettent aux équipes de développement de déployer de nouvelles fonctionnalités rapidement et en toute sécurité. CD peut rapidement corriger les problèmes détectés en production en se déplaçant avec un nouveau déploiement. De cette façon, CD crée un flux continu de valeur client.