Qu’est-ce que le déploiement Canary ?

25 juillet 2024

Le déploiement Canary est une stratégie de publication de logiciels dans laquelle une nouvelle version est progressivement déployée auprès d'un petit sous-ensemble d'utilisateurs avant un déploiement complet. Cette méthode permet aux équipes de tester et de surveiller les performances et la stabilité de la nouvelle version, garantissant ainsi que tout problème peut être identifié et résolu avant qu'il n'affecte l'ensemble de la base d'utilisateurs.

qu'est-ce que le déploiement Canary

Qu’est-ce que le déploiement Canary ?

Le déploiement Canary est une stratégie de mise en production logicielle qui consiste à déployer progressivement une nouvelle version d'une application ou d'un service auprès d'un petit groupe d'utilisateurs contrôlé avant de la rendre accessible à l'ensemble des utilisateurs. Cette approche permet aux équipes de développement et d'exploitation de surveiller de près les performances, la stabilité et les retours des utilisateurs de la nouvelle version en conditions réelles. Ainsi, elles peuvent identifier et corriger rapidement tout problème ou bug éventuel, réduisant ainsi le risque de perturbations majeures.

Le terme « canari » est dérivé de la pratique historique consistant à utiliser des canaris dans les mines de charbon pour détecter des gaz toxiques, car ces oiseaux montreraient des signes de détresse en présence d'un danger, fournissant ainsi une alerte précoce. De même, dans le déploiement Canary, le petit groupe initial d'utilisateurs agit comme un système d'alerte précoce, fournissant des informations et des commentaires précieux qui contribuent à garantir la robustesse et la fiabilité de la nouvelle version avant sa sortie à grande échelle.

Une stratégie de déploiement Canary améliore la qualité globale des versions logicielles et améliore la satisfaction des utilisateurs en évitant que des problèmes majeurs n'affectent l'ensemble de la population d'utilisateurs.

Comment fonctionnent les déploiements Canary ?

Les déploiements Canary fonctionnent en publiant progressivement une nouvelle version du logiciel pour un petit segment d'utilisateurs, permettant une surveillance minutieuse et un déploiement progressif. Le processus commence par le déploiement de la nouvelle version auprès d'un petit groupe d'utilisateurs sélectionnés au hasard, appelé groupe Canary. Ce groupe initial ne représente généralement qu’un petit pourcentage de la base totale d’utilisateurs.

Durant cette phase, les indicateurs de performance, les taux d'erreur et les retours des utilisateurs sont étroitement surveillés afin de détecter tout problème ou anomalie. Des outils automatisés et des tableaux de bord sont souvent utilisés pour suivre les indicateurs clés de performance (KPI) et garantir le bon fonctionnement de la nouvelle version.

Si la nouvelle version fonctionne bien et qu'aucun problème significatif n'est détecté, le déploiement est progressivement étendu à un groupe d'utilisateurs plus large. Cette approche progressive se poursuit jusqu'à ce que la nouvelle version soit entièrement déployée auprès de tous les utilisateurs. Si des problèmes sont identifiés à un moment donné, le déploiement peut être interrompu ou rétabli à la version stable précédente, limitant ainsi l'impact sur les utilisateurs.

Cette méthode réduit le risque de perturbations généralisées, permet une détection précoce des problèmes potentiels et offre la possibilité de procéder aux ajustements nécessaires avant une version à grande échelle. En tirant parti des déploiements Canary, les organisations garantissent un processus de mise à jour logicielle plus fluide et plus fiable, améliorant ainsi la satisfaction globale des utilisateurs et la stabilité du système.

Exemple de déploiement Canary

exemple de déploiement Canary

Imaginez une plate-forme de commerce électronique populaire prévoyant de publier une nouvelle fonctionnalité qui améliore la fonctionnalité de recherche. L'entreprise décide d'utiliser une stratégie de déploiement Canary pour minimiser les risques et garantir que la nouvelle fonctionnalité fonctionne comme prévu.

Tout d'abord, l'équipe de développement sélectionne 5 % de la base d'utilisateurs pour recevoir la nouvelle fonctionnalité de recherche. Ces utilisateurs sont choisis au hasard pour représenter un échantillon diversifié de la population globale des utilisateurs. La nouvelle fonctionnalité est déployée uniquement sur ce petit groupe.

Une fois le déploiement terminé, l'équipe surveille de près plusieurs indicateurs clés, tels que les performances de recherche, l'engagement des utilisateurs, les taux d'erreur et tout retour fourni par les utilisateurs du groupe Canary. Ils utilisent des outils de surveillance automatisés pour détecter tout problème de performances ou bug qui n'aurait peut-être pas été détecté lors des tests internes.

Si la nouvelle fonctionnalité de recherche fonctionne correctement et qu'aucun problème significatif n'est détecté sur une période prédéfinie, le déploiement est étendu à 20 % de la base d'utilisateurs. La surveillance se poursuit et l'équipe reste vigilante à tout signe de problème.

En supposant que le déploiement auprès du groupe de 20 % soit également réussi, l'équipe procède ensuite au déploiement de la nouvelle fonctionnalité de recherche auprès des 80 % d'utilisateurs restants. Tout au long du processus, si des problèmes critiques sont identifiés, l'équipe peut rapidement annuler les modifications pour les utilisateurs concernés, résolvant ainsi le problème avant de tenter un autre déploiement.

En utilisant une stratégie de déploiement Canary, la plate-forme de commerce électronique garantit que la nouvelle fonctionnalité de recherche est robuste et fiable, minimisant le risque de perturbations généralisées et améliorant l'expérience utilisateur globale.

Déploiements Canary et Kubernetes

Les déploiements Canary dans Kubernetes tirent parti de ses puissantes capacités d'orchestration pour faciliter les mises à jour logicielles incrémentales. Grâce aux fonctionnalités natives de Kubernetes telles que les déploiements, les services et les contrôleurs d'entrée, les équipes peuvent rediriger en toute transparence un faible pourcentage du trafic utilisateur vers la nouvelle version d'une application, tandis que la majorité continue d'utiliser la version stable.

Les outils automatisés de mise à l'échelle, de vérification de l'état et de surveillance de Kubernetes permettent un suivi des performances en temps réel et une identification rapide de tout problème pendant la phase Canary. Cette intégration garantit un processus de déploiement fluide et efficace, réduisant le risque de pannes généralisées et améliorant la fiabilité et la résilience globales du déploiement logiciel.

Avantages et inconvénients des déploiements Canary

Cette section explore les avantages et les inconvénients des déploiements Canary. Bien que cette stratégie de déploiement offre des avantages significatifs en minimisant les risques et en améliorant la qualité des logiciels, elle comporte également certains défis et limites. Comprendre les deux côtés peut aider les organisations à prendre des décisions éclairées sur le moment et la manière de mettre en œuvre efficacement les déploiements Canary.

Les Avantages

Les déploiements Canary offrent une approche stratégique pour publier de nouvelles versions de logiciels, équilibrant innovation et stabilité. Voici les principaux avantages de cette méthode :

  • Risque réduit de pannes. En déployant progressivement les modifications auprès d'un petit sous-ensemble d'utilisateurs, les déploiements Canary limitent l'exposition de bogues ou de problèmes potentiels. Ce confinement évite des perturbations généralisées et permet aux équipes de résoudre les problèmes avant qu'ils n'affectent l'ensemble de la base d'utilisateurs.
  • Détection précoce des problèmes. Le groupe Canary initial agit comme un système d'alerte précoce, aidant à identifier les goulots d'étranglement en matière de performances, les problèmes de compatibilité ou les problèmes d'expérience utilisateur dès le début du processus de publication.
  • Expérience utilisateur améliorée. Étant donné que les problèmes sont identifiés et résolus avant le déploiement complet, l’expérience utilisateur globale reste cohérente et fiable.
  • Prise de décision basée sur les données. Les outils de surveillance et d'analyse fournissent des informations précieuses sur les performances de la nouvelle version dans un environnement réel. Les commentaires basés sur les données aident les équipes à prendre des décisions éclairées concernant les déploiements ultérieurs ou les ajustements nécessaires.
  • Flexoptions de restauration disponibles. Si des problèmes critiques sont détectés pendant la phase Canary, les équipes peuvent rapidement revenir à la version stable précédente pour les utilisateurs concernés. Ce flexCette fonctionnalité minimise les temps d'arrêt et assure la continuité du service.
  • Tests de performances contrôlés. Les déploiements Canary permettent aux équipes de tester de nouvelles fonctionnalités et des améliorations de performances dans des conditions d'utilisation réelles sans risquer la stabilité de l'ensemble du système. Ceci contrôlait environnement de test fournit une évaluation plus précise de l’impact de la nouvelle version.

Inconvénients

Bien que les déploiements Canary offrent de nombreux avantages, ils présentent également certains inconvénients qui ont un impact sur l'efficacité et l'efficience du processus de déploiement :

  • Complexité. La mise en œuvre de déploiements Canary nécessite une infrastructure sophistiquée et des outils d'automatisation avancés. La gestion simultanée de plusieurs versions de l'application et la direction appropriée du trafic utilisateur ajoutent une complexité significative au processus de déploiement.
  • Suivi et analyse. Les déploiements Canary efficaces dépendent d'une surveillance et d'une analyse rigoureuses des mesures de performances et des commentaires des utilisateurs. Cela nécessite des systèmes de surveillance complets et un personnel qualifié pour interpréter les données et prendre des décisions éclairées.
  • Difficultés de restauration. L'annulation d'un déploiement Canary peut s'avérer difficile, en particulier si des problèmes sont découverts après que le déploiement a été étendu à une base d'utilisateurs plus large. Coordonner une restauration tout en minimisant les perturbations des utilisateurs nécessite une planification et une exécution minutieuses.
  • Incohérence de l’expérience utilisateur. Lors d'un déploiement Canary, différents utilisateurs peuvent rencontrer différentes versions de l'application, ce qui entraîne des incohérences dans l'expérience utilisateur. Cela peut être déroutant pour les utilisateurs, en particulier s'ils basculent entre les versions lors de leurs interactions avec l'application.
  • Portée des tests limitée. Bien que les déploiements Canary exposent la nouvelle version à de vrais utilisateurs, le groupe d'utilisateurs initial peut ne pas représenter tous les modèles et environnements d'utilisation possibles. Cela peut entraîner l'apparition de certains problèmes seulement après le déploiement complet, malgré une phase Canary réussie.

Anastasie
Spasojevic
Anastazija est une rédactrice de contenu expérimentée avec des connaissances et une passion pour cloud l'informatique, les technologies de l'information et la sécurité en ligne. À phoenixNAP, elle se concentre sur la réponse à des questions brûlantes concernant la garantie de la robustesse et de la sécurité des données pour tous les acteurs du paysage numérique.