Qu’est-ce que la livraison continue ?
Ici, vous suivez l’équipe Tailspin qui discute actuellement des avantages qu’elle pourrait tirer d’un pipeline de livraison continue (CD) pour le lancement à venir.
L’équipe Tailspin commence à avoir un meilleur ressenti vis-à-vis de son processus de génération. Son processus est automatisé et s’exécute dans Azure Pipelines, ce qui signifie que l’environnement de génération est stable. Amita sait immédiatement à quel moment elle doit tester un artefact. Elle trouve moins de bogues, car Andy et Mara ont commencé à ajouter des tests unitaires et des tests de qualité du code. Tout va pour le mieux dans le meilleur des mondes. Revenons à l’équipe.
Réunion du matin
Les membres de l’équipe se retrouvent dans la salle de réunion et attendent Irwin, le chef de produit, qui veut s’adresser à eux. Ils ont hâte de l’informer de leur progression. Mais quand Irwin entre dans la salle, il a l’air préoccupé. Il entame la discussion sans attendre.
Irwin : J’ai eu une réunion ce matin avec l’équipe de direction. Elle souhaite savoir pourquoi le lancement de nos jeux et de nos sites web prend tant de temps. Nos concurrents immédiats sortent leurs nouvelles fonctionnalités et leurs nouveaux jeux bien plus rapidement que nous. Nous devons accélérer les choses. Ce message ne s’adresse pas qu’à vous. Il concerne toutes les équipes. En quoi pouvons-nous aider votre équipe à déployer plus rapidement ?
Andy : Le fait est que nous avons pris les devants. Nous sommes en train d’automatiser le processus de génération de nos sites web. Peut-être le moment est-il venu à présent d’étendre l’automatisation à notre processus de mise en production.
Irwin : Comment comptez-vous vous y prendre ?
Mara : Nous avons créé un pipeline de build automatisé à l’aide d’Azure Pipelines. Il génère un artefact qu’Amita peut tester. Nous pourrions aussi créer un pipeline CD (livraison continue).
Irwin : Qu’est-ce qu’un pipeline CD ?
Alors que Mara se lance dans des explications, elle est interrompue par un bip émis par le téléphone portable d’Irwin. Irwin lit un SMS à voix basse en grommelant.
Irwin : Je suis désolé, mais j’ai une urgence. Je dois vous quitter. Pourquoi ne pas vous entretenir sur la question et revenir vers moi rapidement ?
Andy parcourt son équipe du regard.
Andy : On prend un café ?
Andy et le reste de l’équipe prennent la direction de la cafétéria pour élaborer un plan.
Qu’est-ce que la livraison continue ?
L’équipe se réunit autour d’un café pour déterminer comment configurer un workflow de livraison continue.
Andy : Mara, pouvez-vous nous dire ce que vous savez sur la livraison continue ?
Mara : Pour moi, la livraison continue et DevOps sont inséparables. Pour rappel, nous avons défini DevOps comme étant l’association de personnes, de processus et de produits visant à fournir de la valeur à nos utilisateurs finaux de façon continue.
La livraison continue seule est un ensemble de processus, d’outils et de techniques qui autorisent une livraison rapide, fiable et continue de logiciels. Par conséquent, même si la livraison continue fait la part belle à la configuration d’un pipeline, ce n’est pas son seul et unique rôle. Le déploiement continu consiste à configurer un environnement opérationnel, dans lequel :
- Nous disposons d’un processus fiable et reproductible pour la mise en production et le déploiement de logiciels.
- Nous automatisations autant que possible.
- Nous ne remettons pas une tâche difficile ou douloureuse. Nous essayons plutôt souvent de trouver comment la rendre routinière.
- Nous gardons tout dans le contrôle de code source.
- Nous sommes tous d’accord pour dire que terminé signifie lancé.
- Nous intégrons la qualité dans le processus. La qualité n’est jamais une idée de dernière minute.
- Nous sommes tous responsables du processus de mise en production. Nous ne travaillons plus dans des silos.
- Nous sommes toujours en quête d’améliorations.
Nous avons déjà mis en place un grand nombre de ces principes et nous sommes tous d’accord pour dire que nous avons amélioré notre façon de travailler. La livraison continue est le prolongement de ce que nous avons déjà commencé.
Pourquoi la livraison continue est-elle nécessaire ?
La livraison continue permet aux équipes logiciel de fournir des mises à jour logicielles fiables à leurs clients à une cadence rapide. Elle est aussi l’assurance de faire rapidement bénéficier les clients et les parties prenantes des dernières fonctionnalités et des derniers correctifs.
Reprenons le fil de la discussion entre les membres de l’équipe.
Andy : Merci, Mara. La livraison continue est une nécessité, car comme nous le savons tous, le monde a changé. Les nouvelles fonctionnalités sont plus vite mises en production. Les mises à jour et les correctifs de bogues doivent être disponibles immédiatement. Il n’y a pas que notre direction qui souhaite accélérer nos lancements. Elle réagit simplement aux demandes de nos clients. Si les clients ne peuvent pas obtenir ce qu’ils veulent de nous, ils iront voir ailleurs.
Tim : D’accord ! J’ai hâte de commencer.
Andy : Merci à vous. Mara et moi-même allons élaborer une preuve de concept (POC) simple, si vous êtes d’accord. Je pense que tout sera beaucoup plus facile à comprendre si vous pouvez voir un pipeline CD à l’œuvre.
Amita : Bon courage à vous deux.
L’équipe laisse Andy et Mara régler les détails.
Quelles sont les différences entre la livraison continue et la publication par clic droit ?
Nombreux sont les outils de développement qui permettent de publier une application directement dans un environnement cible, tel que Microsoft Internet Information Services (IIS) ou Azure. Par exemple, il est possible de publier une application ASP.NET Core dans Azure avec Visual Studio. Ce processus est parfois appelé publication par clic droit.
La publication par clic droit offre un excellent moyen de générer un prototype. Par exemple, vous pouvez publier votre application par clic droit dans Azure pour partager une nouvelle idée avec votre équipe. Cette technique présente toutefois des limites.
Avec la livraison continue, vous et votre équipe disposez d’une méthode cohérente pour tester, déployer et superviser votre application en continu chaque fois que vous archivez votre code. Quand vous publiez votre application par clic droit, vous n’avez aucune garantie que le code a été testé dans les règles ou qu’il se comportera comme prévu quand il sera utilisé en vrai.
Dans cette brève vidéo, Abel Wang, Cloud Advocate chez Microsoft, vous en dit plus.
Quelles sont les différences entre la livraison continue et le déploiement continu ?
Dans la communauté DevOps, il est parfois question de livraison continue et de déploiement continu. Ces termes ont-ils la même signification ? Dans cette petite vidéo, Abel en explique les différences.
Quels sont les outils de livraison continue que je peux utiliser ?
Une fois la réunion terminée, Andy et Mara se penchent sur les étapes suivantes. Ils utilisent Azure Pipelines pour générer leurs logiciels. Ils souhaitent identifier les outils qui pourraient les aider dans leur processus de mise en production, notamment Azure Pipelines.
Mara : Par où voulez-vous commencer ?
Andy : Nous devons d’abord nous mettre d’accord sur l’outil de gestion des mises en production à utiliser. Cet outil doit pouvoir :
- Prendre en charge notre système de gestion de version.
- Être déployé dans plusieurs environnements pour nous permettre de tester et valider notre travail.
- Faciliter la définition de nos tâches de déploiement.
- Être facilement extensible.
Mara : Azure DevOps s’intègre avec plusieurs autres solutions d’intégration continue (CI) et de livraison continue (CD). Il existe un grand nombre de solutions, mais nous n’avons investi dans aucune d’entre elles. Si c’état le cas, il serait logique de l’utiliser. Les systèmes CI et CD les plus en vue sont notamment Jenkins, Circle CI, GitLab, Travis CI et Azure Pipelines.
Si ces outils ont des points communs, ils présentent chacun leurs propres points forts. Certains de ces outils sont open source, certains sont gratuits et d’autres sont payants. Ils proposent aussi des intégrations avec d’autres outils logiciels.
Par exemple, Jenkins est open source. Il compte de nombreux plug-ins, et de nombreuses entreprises l’utilisent. Circle CI peut être exécuté dans le cloud ou en local. Je pense que nous avons besoin de le personnaliser. GitLab est une application unique qui prend en charge l’ensemble du cycle de vie de développement logiciel. Nous n’avons peut-être pas besoin de tant pour le moment. Nous pouvons continuer avec Azure Pipelines.
Voici une brève vidéo dans laquelle Abel parle du déploiement de code dans Azure selon les bonnes pratiques DevOps.
Mara : Je suis favorable à ce que l’on continue avec Azure Pipelines.
Andy : Je suis d’accord. Azure Pipelines nous a bien réussi jusqu’à présent, et nous n’avons pas besoin de nous former à une nouvelle technologie.
Mara : Parfait. Commençons par les détails du pipeline.
Andy et Mara vont dans une salle de conférence pour planifier leur pipeline CD.