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 publication de logiciels dans laquelle une nouvelle version d'un application ou le service est progressivement introduit auprès d'un petit sous-ensemble contrôlé d'utilisateurs avant d'être mis à la disposition de l'ensemble de la base d'utilisateurs. Cette approche permet aux développeurs et aux équipes opérationnelles de surveiller de près les performances, la stabilité et les commentaires des utilisateurs de la nouvelle version dans un environnement réel. Ce faisant, ils peuvent rapidement identifier et résoudre tout problème ou bug pouvant survenir, réduisant ainsi le risque de perturbations généralisées.

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.

Au cours de cette phase, les mesures de performances, les taux d'erreur et les commentaires des utilisateurs sont étroitement surveillés pour détecter tout problème ou anomalie. Des outils et des tableaux de bord automatisés sont souvent utilisés pour suivre indicateurs clés de performance (KPI) et assurez-vous que la nouvelle version fonctionne comme prévu.

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

Déploiements Canary dans Kubernetes exploitez ses solides capacités d’orchestration pour faciliter les versions logicielles incrémentielles. En utilisant les fonctionnalités natives de Kubernetes telles que les déploiements, les services et les contrôleurs d'entrée, les équipes peuvent diriger de manière transparente un petit 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.

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.