La livraison continue (CD) désigne la pratique d'automatisation des étapes manuelles intervenant au cours du processus de mise en production des logiciels.
La livraison continue (CD) vient compléter l'intégration continue (CI) en automatisant les étapes du processus de mise en production des logiciels.
À chaque fois que vous fusionnez les modifications du code dans une branche donnée, votre processus d'intégration continue réalise une série de vérifications, telles que les tests unitaires, et crée un build. La livraison continue prolonge ce processus en déployant automatiquement chaque build dans une série d'environnements de test et de préproduction, et en exécutant d'autres tests automatisés.
Ces tests peuvent inclure les tests d'intégration, les tests d'interface utilisateur, les tests de performances (tels que les tests de charge, d'endurance et de contrainte), ainsi que les tests de bout en bout. Selon votre activité, il peut également être intéressant d'utiliser la livraison continue pour exécuter des tests de sécurité et d'accessibilité, ainsi que des tests manuels d'acceptation par l'utilisateur ou exploratoires. Les builds qui franchissent les différentes étapes sont considérés comme prêts pour la production.
Comme pour l'intégration continue, la clé du succès de la livraison continue est d'automatiser autant que possible le processus. Cela inclut des retours sur chaque étape et des alertes pour prévenir l'équipe si le build ne franchit pas une étape, afin de résoudre le problème rapidement.
La livraison continue et le déploiement continu impliquent tous deux le déploiement automatique des builds dans les environnements et l'exécution de tests automatiques. Ainsi, les deux termes sont parfois perçus comme interchangeables. Cependant, il existe une distinction notable entre les deux.
Avec le déploiement continu, un changement de code est automatiquement déployé en production s'il franchit toutes les étapes de test. Par contre, la livraison continue implique une étape manuelle pour la dernière phase, à savoir la mise en production de votre logiciel.
Si le déploiement continu peut sembler être le but ultime de toute équipe de développement logiciel, ce n'est pas sans raison que de nombreuses équipes optent pour la livraison continue.
En savoir plus sur les différences entre la livraison continue et le déploiement continu.
La phase finale d'un processus de CI/CD implique la mise en production des modifications du code. Avec la livraison continue, le choix du moment de la mise en production reste une étape manuelle, même si le processus de publication est quant à lui automatique.
Certaines équipes approchent la livraison continue comme une étape du déploiement continu. Le déclenchement manuel du déploiement final et la mise en production constituent un filet de sécurité qui vous permet d'aborder avec confiance vos tests et vérifications automatisées. Dans ce cas, optez pour une livraison continue sur plusieurs mois avant de franchir le pas de la mise en production automatique des changements de code validés par les tests.
Toutefois, le déploiement des mises à jour de votre logiciel plusieurs fois par jour ou heure n'est pas toujours le meilleur choix. Pour les logiciels versionnés, tels que des applications mobiles, des API, des logiciels embarqués ou des produits de bureau, il est souvent préférable de regrouper les modifications dans des livraisons plus importantes. Les utilisateurs de produits installés ne s'attendent pas à mettre à jour leurs applications plusieurs fois par jour, tandis qu'une nouvelle version d'API peut fortement impacter vos clients. Le choix entre la livraison continue et le déploiement continu dépend des priorités de votre entreprise et de vos utilisateurs.
Si les étapes, les environnements et les tests de build dépendent de votre produit et de votre organisation, les principes généraux suivants vous aideront à mettre en place votre processus de livraison continue :
La livraison continue permet aux équipes de publier leurs logiciels plus rapidement et plus fréquemment tout en réduisant le nombre de bugs qui arrivent en production. Pour y parvenir, il est essentiel de s'assurer que le code est constamment prêt pour la publication au moyen de tests continus de vos modifications et en traitant les problèmes dès qu'ils apparaissent.
Mais ce n'est pas tout, la livraison continue offre de nombreux autres avantages :
L'implémentation d'un processus de livraison continue peut s'accompagner de plusieurs défis :
La mise en place d'un processus de livraison continue peut paraître complexe, mais lorsqu'elle est réalisée correctement, elle permet d'accélérer radicalement les publications des logiciels tout en minimisant les bugs.
L'approche DevOps est au cœur de l'implémentation efficace de la livraison continue. Plutôt que de considérer le processus de développement logiciel comme un processus à sens unique, où les exigences, le code et les rapports sont transmis d'une équipe à l'autre, le DevOps favorise la collaboration et un retour d'information rapide à partir de cycles courts et itératifs.
La révision de votre « définition d'un travail terminé » peut vous aider à adopter cette mentalité. Au lieu de considérer la tâche comme terminée lorsque vous faites passer le code à l'étape de test, votre nouvelle fonctionnalité ou changement de code ne peut être considérée comme finale qu'une fois qu'elle entre en production. Si un problème est détecté à un stade quelconque du processus, la communication rapide de ce problème et la collaboration à sa résolution permettent de le résoudre plus rapidement que de longs rapports devant être approuvés par un comité de modification. C'est la définition même de la livraison continue.
Pour plus de conseils afin de se familiariser avec la livraison continue, lisez notre guide de bonnes pratiques de CI/CD.
La livraison continue facilite et accélère la publication des logiciels, ce qui vous permet de déployer en production beaucoup plus fréquemment. Au lieu d'une grosse version trimestrielle ou annuelle, de plus petites mises à jour sont fréquemment livrées. Cela signifie non seulement que les utilisateurs bénéficient de nouvelles fonctionnalités et de correctifs de bugs plus rapidement, mais aussi que vous pouvez voir comment votre logiciel est utilisé dans le monde réel et ajuster vos plans en conséquence.
Si certaines organisations préfèrent garder le contrôle sur la dernière étape du processus de publication, pour d'autres, la conclusion logique d'un pipeline de CI/CD est d'automatiser la publication finale, en utilisant une pratique connue sous le nom de déploiement continu. Vous trouverez plus d'informations à ce sujet dans la section suivante de notre guide de CI/CD.
TeamCity est une plateforme de CI/CD qui prend en charge de nombreux outils de build, frameworks de test, conteneurs et fournisseurs d'infrastructure cloud. Que vous souhaitiez héberger vos machines de build sur site, dans le cloud ou utiliser une combinaison des deux, TeamCity coordonne les tâches de build pour une efficacité maximale.
La logique personnalisable de pipeline de TeamCity signifie que vous pouvez choisir quand exécuter les processus en parallèle, tels que des tests sur différentes plateformes, et quand imposer une validation pour passer à la phase suivante. Les notifications configurables vous fournissent les informations nécessaires quel que soit votre lieu de travail, afin de vous aider à éviter les interruptions inutiles. Enfin, les résultats détaillés permettent de s'assurer que la voie suivie pour la production reste claire.