Qu’est-ce que la livraison continue (Continuous Delivery – CD) ?
La livraison continue est une stratégie de publication logicielle, souvent associée à l’intégration continue (CI) et au déploiement continu (CD). L’idée derrière la livraison continue est de préparer le logiciel à être livré, souvent plusieurs fois par jour, afin de pouvoir déployer de nouvelles versions aux utilisateurs à tout moment. Pour qu’un processus de livraison continue soit efficace, il est essentiel que l’intégration continue soit intégrée à votre pipeline.
Le code doit toujours passer par une série de tests automatisés, mais la mise en production réelle est effectuée manuellement.
Ainsi, la livraison continue garantit que votre code est toujours dans un état déployable, même lorsque de nombreux changements sont effectués fréquemment par plusieurs développeurs.
Avantages de la livraison continue
Sortie plus rapide sur le marché
Étant donné que votre code est toujours prêt à être déployé, cela signifie que vous pouvez publier de nouvelles fonctionnalités en production à tout moment. Cela est particulièrement crucial pour répondre aux demandes de marché en constante évolution : les développeurs peuvent effectuer les modifications nécessaires et les déployer tout aussi rapidement auprès des utilisateurs finaux.
Réduction des risques
Tout comme l’intégration continue, des publications plus fréquentes permettent de repérer et de corriger les erreurs plus facilement. Les développeurs peuvent rapidement annuler toute publication défaillante, car elles sont réalisées en petits lots, moins complexes à corriger dans le processus de production.
Jez Humble, dans sa page sur la livraison continue, met en avant quatre principes clés pour réduire les risques des déploiements :
- Des publications à faible risque par étapes : Le système doit permettre de publier en petits lots plutôt qu’en un seul déploiement massif. Cela nécessite de construire des API versionnées et d’implémenter des modèles comme les disjoncteurs (circuit breakers).
- Dissocier le déploiement de la publication : En intégrant des feature flags dans votre pipeline de livraison continue, vous pouvez déployer certaines modifications tout en gardant celles que vous ne souhaitez pas exposer aux utilisateurs derrière un flag activable/désactivable. L’idée est de déployer en continu mais de publier les nouvelles fonctionnalités à la demande.
- Réduire la taille des lots : Publier en petits lots réduit effectivement les risques, car il devient plus facile de repérer et de revenir en arrière si nécessaire.
- Optimiser pour la résilience : Les équipes doivent être prêtes à réagir en cas de problème et traiter chaque revers comme une opportunité d’apprentissage. Il est essentiel que tous les membres de l’équipe connaissent les procédures à suivre pour localiser et résoudre rapidement un problème.
Amélioration des produits
En publiant continuellement vos modifications, vous obtenez des retours plus rapides de vos utilisateurs. Cela permet d’apporter des ajustements en fonction de leurs retours, ce qui se traduit par une satisfaction accrue des clients.
Meilleure coordination et productivité
La livraison continue réduit le stress lié aux publications logicielles, en particulier lors des retours en arrière. Publier plus fréquemment aide l’équipe à travailler à un rythme plus efficace et permet aux développeurs de s’engager activement avec les utilisateurs en surveillant en continu les petits changements introduits dans leurs publications. Cela leur permet de fournir davantage de valeur aux utilisateurs finaux.
Processus CI/CD
La première étape commence avec l’intégration continue. Ensuite, la livraison continue s’appuie sur ce processus en exécutant les étapes nécessaires pour publier les modifications intégrées au trunk partagé pendant l’intégration continue. Ensemble, CI et CD raccourcissent le processus de développement logiciel, permettent aux développeurs de recevoir des retours instantanés et de publier fréquemment des fonctionnalités.
La livraison continue est souvent confondue avec le déploiement continu, mais il existe une différence notable :
- Avec la livraison continue, le logiciel est prêt pour le déploiement, mais une intervention humaine est nécessaire pour déclencher ces déploiements.
- Avec le déploiement continu, le logiciel est déployé immédiatement et automatiquement.
En d’autres termes, avec le déploiement continu, chaque modification passe automatiquement en production. En revanche, avec la livraison continue, vous avez l’option de publier ou non en production. Cependant, pour mettre en œuvre le déploiement continu, la livraison continue doit être en place.
CD et DevOps
DevOps rapproche les concepts de développement et d’opérations, mettant en avant la collaboration entre les deux. La culture DevOps met l’accent sur la responsabilité partagée entre le développement et les opérations.
La livraison continue est souvent associée à DevOps, car adopter une culture DevOps signifie augmenter la valeur et la réactivité grâce à des livraisons rapides et de haute qualité. Cette approche nécessite la création d’un pipeline de livraison continue.
En d’autres termes, DevOps fournit les conditions nécessaires pour développer, tester et déployer de nouveaux logiciels. Ainsi, la mise en œuvre de DevOps aboutit à un pipeline CI/CD soutenu par une collaboration efficace entre les équipes de développement et d’opérations.
Livraison continue et feature flags
La mise en œuvre de la livraison continue comporte des risques et des obstacles. Cependant, l’utilisation de feature flags facilite la tâche et aide à maintenir le rythme.
La livraison continue exige beaucoup de rapidité. Toutefois, il arrive que certaines modifications prennent plus de temps à être finalisées, ce qui peut ralentir le flux continu que vous essayez de maintenir.
Avec les feature flags, vous pouvez maintenir cet élan. Si certaines modifications d’une fonctionnalité ne sont pas encore terminées, vous pouvez les laisser désactivées tout en poursuivant la publication des autres modifications prêtes à être déployées.
Les avantages des feature flags dans la livraison continue sont clairs. Vous n’aurez plus besoin d’attendre que toutes les modifications soient prêtes pour déployer une fonctionnalité, ce qui signifie que vous pouvez continuer à livrer vos fonctionnalités rapidement et en toute sécurité à vos utilisateurs finaux.
avec ABTasty
Obtenez une démo personnalisée de la plateforme
Demander une démo