Canary Testing : qu'est-ce que c'est et comment en tirer profit ?
Publié: 2022-08-20Si vous n'êtes pas programmeur, il y a de fortes chances que vous n'ayez jamais entendu parler des tests Canary. Ce n'est pas grave, mais vous vous demandez probablement de quoi il s'agit et pourquoi s'appelle-t-il le test canari ?
Le terme dérive de l'expression "canari dans la mine de charbon". Vous voyez, les mineurs de charbon avaient l'habitude d'amener avec eux un canari en cage dans la mine de charbon, car les canaris ont une tolérance plus faible aux gaz toxiques.
Par conséquent, les travailleurs savaient que si le canari mourait, ils devaient sortir de la mine. En termes de développement de logiciels, lors de la création de nouveaux logiciels, l'objectif est de détecter et de résoudre les problèmes le plus rapidement possible, avant qu'ils ne deviennent un problème pour les utilisateurs.
Qu'est-ce que le test Canary ?
Les tests Canary sont la méthode d'essai de nouvelles fonctionnalités et caractéristiques avec, espérons-le, un impact négatif minimal sur la fin de l'utilisateur. Ce type de test est normalement utilisé avec un petit groupe d'utilisateurs, pour lequel l'application est présentée avec de petites modifications. De cette façon, la majorité des utilisateurs utiliseront toujours la version actuelle du logiciel, tandis que le petit groupe d'utilisateurs sélectionné utilisera une version légèrement mise à jour.
Le but de cet exercice est de permettre à la majorité des personnes utilisant le logiciel de continuer à travailler avec celui-ci, sans aucun problème, tout en poussant les changements pour seulement un petit pourcentage d'utilisateurs.
Tout cela est fait tout en gardant simultanément la version existante et la nouvelle version de l'application. Ensuite, si le test Canary ne renvoie aucune erreur, vous pouvez continuer à l'étendre à de plus grands pourcentages d'utilisateurs.
Les lecteurs apprécient également : Qu'est-ce que le développement rapide d'applications ? 4 phases de la méthodologie RAD – DevriX
Comment effectuer un test canari ?
La première étape d'un test Canary consiste à lancer un ensemble de serveurs ou de conteneurs principaux pour exécuter le nouveau code. Une fois qu'il y a de nouveaux utilisateurs, votre équilibreur de charge en enverra un pourcentage au "cluster canary".
Les spécialistes DevOps surveillent ensuite les serveurs pour identifier les problèmes potentiels, comme la charge de calcul ou des taux d'E/S plus élevés. Et, gardez à l'esprit que, même si des problèmes graves surviennent, il est facile de rétablir les choses telles qu'elles étaient, car le processus n'affecte pas tous ceux qui utilisent le logiciel.
Sinon, vous pouvez facilement implémenter et automatiser les tests Canary en utilisant des outils comme Spinnaker pour désigner le nombre d'utilisateurs utilisant le nouveau code.
Ce pourcentage est généralement d'environ 5 %, et une fois que l'équipe DevOps affectée établit qu'il n'y a aucun problème, elle peut augmenter régulièrement ce pourcentage, jusqu'à ce que tout le monde utilise la nouvelle version de code de l'application.
De plus, les tests Canary sont bénéfiques dans les situations où les environnements de développement ou de préproduction ne correspondent pas entièrement à l'environnement de production. L'utilisation d'un petit groupe d'utilisateurs de test peut révéler tous les problèmes qui n'ont pas été détectés lors des environnements de test ou de développement.
Les lecteurs apprécient également : Test A/B avec WordPress : Le guide définitif – DevriX
Avantages et inconvénients des tests Canary
Définissons le bon et le mauvais en matière de test, en utilisant la méthode canari.
Avantages du test Canary
- Tests en conditions réelles . Tester dans des environnements internes fermés est formidable, cependant, pouvoir tester des logiciels sur de vrais utilisateurs est ce qui vous fait avancer un peu plus. Avec les déploiements Canary, vous pouvez faire exactement cela : tester votre application sur une petite audience, sans risquer de lancer une toute nouvelle application.
- Meilleure gestion des risques . La publication progressive de nouvelles fonctionnalités et la vérification de leur bon fonctionnement réduisent considérablement les erreurs importantes et le coût total des échecs.
En utilisant la méthode de test Canary, vous éliminez essentiellement le besoin d'annuler les mises à jour majeures ou de réécrire de grandes quantités de code. - Plus orienté business . Besoin de présenter des données commerciales aux managers et aux commerciaux/marketing ? Avec Canary, vous pouvez visualiser très rapidement les résultats. Par exemple, si vous souhaitez tester une nouvelle fonctionnalité logicielle, vous pouvez déployer une nouvelle fonctionnalité pour un petit groupe d'utilisateurs, puis attendre de voir si la fonctionnalité fonctionne bien ou non. Vous pouvez ensuite utiliser ces données pour stimuler l'engagement pour ton produit.
Inconvénients des tests Canary
- Problèmes de logiciel . Il y a encore du code non testé, donc, naturellement, il y a des risques. Dans le cas où même quelques utilisateurs rencontrent des problèmes importants avec une fonctionnalité spécifique, il est préférable d'ignorer les tests Canary en faveur de tests internes plus stricts.
- Dépenses plus importantes . Si vous avez l'intention d'utiliser un équilibreur de charge pour partitionner les utilisateurs, vous aurez besoin d'une infrastructure supplémentaire et de plus d'administration. Cela signifie que vous devrez créer deux environnements de production et deux backends distincts pour exécuter le test. Donc, deux serveurs d'applications, deux lignes de code, deux serveurs Web et une infrastructure réseau à maintenir.
- Mauvaise expérience utilisateur . Certains utilisateurs pourraient ne pas être trop enthousiastes à l'idée d'être utilisés comme sujets de test. Si vous voulez être ouvert sur ce qui se passe, vous pouvez faire savoir aux utilisateurs qu'ils sont utilisés comme "canaris", via un programme "d'adoption précoce" ou quelque chose de similaire.
Quand ne pas utiliser les tests Canary ?
Les tests Canary sont bénéfiques dans de nombreux cas, cependant, ce n'est pas une réponse infaillible à tout (c'est 42).
Voici quand vous ne devriez absolument pas utiliser l'approche canari :
- Dans les environnements qui ne sont pas adaptés au déploiement continu.
- Lorsqu'il s'agit de logiciels critiques tels que des systèmes de survie ou des réacteurs nucléaires.
- Les systèmes financiers où l'échec peut entraîner un impact économique substantiel.
Lorsque vous ne pouvez pas mettre à jour le logiciel à distance.
Comment faire un déploiement Canary ?
Examinons maintenant les étapes nécessaires à suivre pour effectuer un déploiement Canary.
- Préparez le déploiement sur le serveur intermédiaire.
- Exclure les nœuds Canary via l'équilibrage de charge.
- Déployez la nouvelle version sur les nœuds Canary.
- Testez la nouvelle version avec des scripts de test automatisés.
- Connectez les nœuds Canary au trafic avec l'équilibrage de charge.
- Déployez la mise à jour sur les nœuds de production restants.
En pratique, le déploiement commence par la préparation du serveur intermédiaire. Vérifiez les fichiers de configuration, les scripts de test, les artefacts de génération, etc. Après cela, vous pouvez soit exécuter des tests automatisés ou manuels, soit laisser le serveur en ligne et voir si tout fonctionne bien ou s'il plante.
Quand mettre Canary en production ?
Une fois que vous avez testé votre mise à jour Canary sur 5 ou 10 % des utilisateurs et que tout fonctionne correctement, vous pouvez doubler ou tripler le pourcentage d'utilisateurs de test.
Ensuite, testez à nouveau, recueillez les commentaires des métriques, et une fois que vous avez évalué que tout fonctionne bien, une fois de plus, vous pouvez continuer à mettre à jour 70 % de l'environnement de production.
Enfin, répétez la procédure de test, et si tout va bien, déployez la nouvelle version du logiciel à 100% des utilisateurs et, bien sûr, continuez la surveillance.
Entreprises ayant mis en œuvre le déploiement Canary
Pour vous montrer que le déploiement Canary est une méthode de mise en œuvre populaire, nous allons examiner certaines entreprises qui utilisent le déploiement Canary.
Netflix
Le géant du service de streaming utilise l'analyse canari automatisée avec Kayenta depuis 2018. Cela permet des mises à jour extrêmement rapides de l'environnement de production de Netflix. La société affirme que cette méthode de déploiement a augmenté la productivité des développeurs tout en réduisant le risque d'apporter des modifications à leur environnement de production.
Cette plate-forme de médias sociaux est également un fan de longue date du déploiement de Canary. Leur co-fondateur et CTO, Mike Krieger, a partagé que les versions canaries garantissent que les bogues ne font pas trop de dégâts et n'affectent qu'un petit groupe de personnes.
Saviez-vous que Google Chrome a une version spéciale, destinée aux développeurs ? C'est vrai, Google Chrome Canary vous permet de tester les nouvelles API de la plate-forme Web et de voir à quoi ressemblerait l'avenir du navigateur avant tout le monde.
Microsoft
Microsoft utilise son propre personnel pour tester toutes les mises à jour de ses produits. Le processus est en place depuis Windows Vista et Microsoft Azure. La mise à niveau de Windows 10 a également été effectuée à l'aide de mises à jour Canary des systèmes d'exploitation de leur personnel.
Sommaire
Les tests Canary sont un excellent moyen d'introduire rapidement de nouvelles versions d'applications, dans des environnements de test réels. Non seulement cela, mais cela permet une meilleure gestion des risques et des données plus traçables.
Bien que les tests Canary aient tant d'avantages, ce n'est pas toujours la solution à toutes les situations. Assurez-vous de faire vos recherches avant de commencer un déploiement Canary, sinon cela pourrait se retourner contre vous.