Un test canari est un type de test de logiciel dans lequel une nouvelle version d'un programme logiciel est diffusée à un petit groupe d'utilisateurs avant d'être mise à la disposition du grand public. Cela permet aux développeurs du programme d'évaluer la stabilité et les performances de la nouvelle version dans des conditions réelles et d'apporter les modifications nécessaires avant que le programme ne soit largement disponible.
Les tests Canary peuvent être utilisés pour tout type de logiciel, mais ils sont particulièrement utiles pour les programmes qui sont mis à jour fréquemment, tels que les navigateurs Web et les systèmes d'exploitation. Ils sont également utiles pour les programmes qui sont essentiels au fonctionnement d'une entreprise, comme les logiciels de comptabilité.
Comment obtenir le déploiement de canaris dans Kubernetes ?
Il existe plusieurs façons d'obtenir un déploiement canari dans Kubernetes. La plus courante consiste à utiliser un outil comme Istio ou Linkerd, qui prend en charge les déploiements canariens dès le départ.
Une autre façon est d'utiliser un outil comme MetalLB qui peut fournir un équilibrage de charge de couche 2 et de couche 3 pour Kubernetes. Cela peut être utilisé pour mettre en œuvre des déploiements canariens en acheminant un pourcentage du trafic vers la nouvelle version de l'application et en augmentant progressivement le trafic au fil du temps.
Un autre moyen est d'utiliser un outil comme kube-router qui peut fournir des fonctionnalités de routage avancées comme le routage basé sur des politiques et la mise en forme du trafic. Cela peut être utilisé pour mettre en œuvre des déploiements canariens en acheminant un pourcentage du trafic vers la nouvelle version de l'application et en augmentant progressivement le trafic au fil du temps.
Enfin, il est également possible de mettre en œuvre des déploiements canariens en utilisant des fonctionnalités natives de Kubernetes, telles que les ensembles de répliques et les comptes de service. Cette approche nécessite une configuration plus manuelle mais peut être utilisée pour obtenir les mêmes résultats.
Pourquoi avons-nous besoin de déploiements canariens ?
Les déploiements canariens sont un moyen de tester les modifications apportées à un logiciel dans un environnement de production sans impacter tous les utilisateurs. Pour ce faire, il faut d'abord déployer les changements sur un petit sous-ensemble d'utilisateurs, puis surveiller les éventuels effets négatifs avant d'étendre le déploiement à tous les utilisateurs.
Cette approche peut être utilisée pour tester tout type de changement, qu'il s'agisse d'une simple modification du code, d'une nouvelle fonctionnalité ou même d'une nouvelle version du logiciel. En déployant progressivement le changement à un nombre croissant d'utilisateurs, il est possible d'obtenir un retour d'information précoce et d'identifier tout problème potentiel avant qu'il n'affecte l'ensemble de la base d'utilisateurs.
Les déploiements canariens peuvent être un moyen efficace de réduire le risque d'introduire des changements dans les logiciels en production. Ils peuvent également être utilisés pour obtenir un retour sur les changements de la part d'utilisateurs réels avant de les rendre largement disponibles.
Quels sont les types de déploiement ?
Il existe quatre principaux types de déploiement :
1. Déploiement sur site
2. Déploiement en nuage
3. Déploiement hybride
4. Déploiement en périphérie
Le déploiement sur site consiste à installer et à exécuter une application dans les locaux du client, généralement dans son propre centre de données. Le déploiement en nuage consiste à héberger une application sur un serveur distant et à la fournir aux clients via Internet. Le déploiement hybride est un mélange de déploiement sur site et dans le nuage, où certains composants d'une application sont hébergés sur site et d'autres dans le nuage. Le déploiement en périphérie consiste à déployer une application à la périphérie d'un réseau, à proximité de l'utilisateur, afin de réduire la latence.
Comment le déploiement canari est-il mis en œuvre ?
Le déploiement canari est une technique utilisée pour déployer lentement des changements dans un système logiciel en déployant d'abord les changements à un petit sous-ensemble d'utilisateurs, en surveillant les problèmes éventuels, puis en déployant progressivement les changements à un sous-ensemble plus important d'utilisateurs.
Le déploiement canari peut être mis en œuvre de plusieurs manières différentes. Une approche commune consiste à utiliser un système de marquage des fonctionnalités, où les nouvelles fonctionnalités sont initialement désactivées, puis progressivement activées pour un nombre croissant d'utilisateurs au fil du temps. Une autre approche consiste à utiliser un serveur canari, où le nouveau code est d'abord déployé sur un petit nombre de serveurs, puis progressivement sur un plus grand nombre de serveurs au fil du temps.
Quelle que soit l'approche utilisée, l'objectif du déploiement canari est de faciliter le déploiement incrémental et sécurisé des changements. En déployant lentement les changements, il est plus facile d'identifier et de corriger les problèmes qui pourraient survenir, et en surveillant les problèmes, il est possible d'annuler rapidement les changements si nécessaire.