Livraison continue
La livraison continue automatise le processus de publication des applications avec des déploiements prévisibles et reproductibles.
Comme son nom l'indique, la livraison continue (CD) est une pratique de développement logiciel qui fonctionne de pair avec l'intégration continue pour automatiser le processus de publication des applications. Les développeurs de logiciels suivent des cycles courts et continus pour mettre à jour le code, tout en faisant appel à l'automatisation pour accélérer la sortie des nouvelles versions. La CD comprend toutes les étapes du cycle de production : la compilation, les tests, la configuration et le déploiement. L'objectif final est de livrer rapidement le logiciel aux utilisateurs.
La CD est souvent perçue comme une extension de l'intégration continue (CI) et ces deux pratiques sont généralement regroupée sous les terme CI/CD. Cette approche consiste à intégrer du code dans un dépôt partagé et à compiler/tester chaque modification dès que possible, automatiquement et généralement plusieurs fois par jour.
Lorsque l'intégration continue a compilé et testé le code dans un dépôt partagé, la livraison continue prend le relais au cours des étapes finales pour garantir que les versions logicielles sont sûres, cohérentes et reproductibles.
La livraison continue et le déploiement continu sont souvent utilisés de manière interchangeable, mais il existe une différence subtile. La livraison continue signifie que tout code validé par la CI est automatiquement déployé en production. En revanche, la livraison continue garantit que ce code est prêt à être déployé. La flexibilité de déploiement du code est ce qui différencie la livraison du déploiement. La pratique du déploiement continu est possible lorsque la livraison continue est déjà en place.
Les équipes de développement bénéficient de nombreux autres avantages lorsqu'elles utilisent le cycle du développement logiciel (SDLC) pour publier des logiciels, notamment des suivants :
-
Automatisation du processus de sortie des versions de logiciels
-
Coûts inférieurs à ceux du développement logiciel traditionnel
-
Amélioration de la productivité
-
Identification et résolution rapide des bogues
-
Délai de mise sur le marché plus court grâce à des tests et un développement continus
Les nouvelles versions sont sûres, ce qui évite les problèmes et les surprises. La CD supprime également les goulots d'étranglement au niveau du déploiement. Le pipeline ne rencontre aucun obstacle avant que la nouvelle version n'arrive jusqu'aux utilisateurs finaux. Il est possible de déployer en toute confiance, car le code peut être déployé et restauré à la demande.
Souvent associée à des processus DevOps, la CD produit des logiciels en cycles courts. De cette façon, les équipes peuvent compiler, tester, configurer et publier des logiciels plus fréquemment. Des tests complets sont effectués sur le code pour vérifier le bon fonctionnement de toutes les fonctionnalités afin de réduire les problèmes de performance inattendus en production. Tout composant qui réussit les tests automatisés peut être intégré dans la version de release. La phase finale comprend un dernier contrôle humain, puis un push vers le déploiement.
Étapes : compilation, tests, configuration et déploiement
Workflows : généralement, un développeur écrit du code et fait un check-in à l'aide d'un système de contrôle de version ou d'un outil de gestion de configuration. Le code est ensuite compilé et empaqueté dans un artefact, lui-même stocké dans un dépôt.
Environnements : il s'agit de l'infrastructure ciblée pour le déploiement, qui peut inclure un cluster Kubernetes, une instance de cloud public ou un data center privé sur site.
Pipelines : les pipelines typiques se concentrent sur des domaines spécifiques, y compris les compilations automatisées, les tests et la phase de staging des déploiements en un seul processus continu.
Déclencheurs : un déclencheur initie un événement qui lance le processus de pipeline. Un déclencheur peut être manuel ou automatisé dans le pipeline CI/CD. Il peut par exemple s'agir d'un nouvel artefact ou d'une durée récurrente.
L'une des principales caractéristiques d'un pipeline de CD automatisé est la possibilité d'automatiser les tests et les sorties. La phase de test doit inclure à la fois des tests fonctionnels et non fonctionnels. Le recours à un pipeline automatisé pour les versions de release permet une approche « fail fast » : les tests les plus susceptibles d'échouer en premier sont exécutés d'abord.
Un pipeline automatisé offre également une visibilité sur le code, renforçant ainsi la confiance dans sa fiabilité à chaque étape du processus de livraison continue.
Lorsque le pipeline de livraison de logiciels est automatisé, il n'est plus nécessaire d'exécuter des tâches manuelles, souvent sujettes à des erreurs et coûteuses. Les équipes peuvent aussi détecter les problèmes dans le code et le rejeter. Les pipelines automatisés fournissent des commentaires sur les raisons du rejet qui permettent aux développeurs de corriger les problèmes rapidement.
Maintenir la sécurité tout au long du cycle de développement logiciel est primordial. Il est essentiel de s'assurer que les équipes de sécurité et de développement communiquent et collaborent dans le but de comprendre leurs différents objectifs et leurs priorités.
L'application de la méthode de livraison continue aux tests de sécurité permet de rationaliser le processus et de réduire la charge de travail des équipes de sécurité. Chaque nouvelle portion de code déployée dans des modèles de livraison continue peut être analysé plus rapidement, ce qui facilite la recherche et la correction des failles.
Le modèle de développement d’applications en chaîne n’est plus viable. Si les équipes de sécurité doivent attendre qu'une application soit terminée avant de corriger les vulnérabilités, elles ne pourront jamais suivre le rythme et la demande d'innovations.
Pour exploiter pleinement le modèle de livraison continue (CD), les équipes doivent communiquer et collaborer en permanence tout au long du processus DevSecOps. Les mentalités doivent évoluer afin que les développeurs et les équipes de sécurité puissent tirer parti de ses avantages.
La livraison continue est une pratique de développement logiciel qui permet de déployer les logiciels en production à tout moment. Elle joue un rôle clé dans les processus DevOps, en servant de pilier pour combler le fossé entre les équipes de développement et les équipes des opérations.
L'approche DevOps vise à rapprocher les équipes de développement et celles des opérations au sein d'une entreprise. Une culture DevOps brise les silos traditionnels et unifie les personnes, les processus et les technologies pour améliorer la collaboration et la coordination. Cette approche permet de déployer rapidement de nouvelles fonctionnalités, améliorations ou modifications de code, afin de les livrer aux clients le plus efficacement possible.
Cependant, le processus de livraison de logiciels demeure complexe, même si les équipes de développement, des opérations informatiques, d'ingénierie de la qualité et de sécurité travaillent toutes main dans la main. L'approche DevOps organise la livraison de logiciels en plusieurs étapes : planification, développement, publication, déploiement et exploitation.
Lancez-vous dès maintenant
Découvrez comment la plateforme DevSecOps unifiée de GitLab peut aider votre équipe.