Comprendre les bases des déploiements Canary, Blue/Green et autres
Une stratégie de déploiement se concentre sur la distribution de l’application logicielle aux utilisateurs finaux. Les organisations utilisent une stratégie pour gérer efficacement leurs solutions logicielles et s’assurer qu’elles sont publiées comme prévu.
Diverses stratégies de déploiement sont disponibles, mais les cinq plus populaires sont le déploiement Blue-Green, la version Canary, les tests A/B, le déploiement Recreate et le déploiement Shadow. Chaque stratégie de déploiement présente des avantages et des inconvénients et peut être utilisée en fonction de vos besoins.
Dans cet article, vous en apprendrez plus sur ces types de déploiement.
Commençons!
Dans ce modèle de déploiement, l’ancienne version de code stable s’exécute dans un environnement bleu. Le nouveau code s’exécute en parallèle dans un code vert. Une fois que vous avez soigneusement testé le nouveau code pour vous assurer qu’il répond à toutes les exigences, l’équilibreur de charge fait passer le trafic du bleu au vert.
L’un des avantages de cette stratégie est qu’il n’y a pas de temps d’arrêt de la production. Si vous devez annuler le nouveau code, vous pouvez renvoyer le trafic vers l’ancien environnement.
Le principal inconvénient est qu’il s’accompagne de coûts plus élevés car vous devez exploiter deux environnements parallèles.
La version Canary est une stratégie de déploiement qui permet un déploiement incrémentiel dans un environnement de production. L’idée est de diffuser lentement la nouvelle version à un sous-ensemble d’utilisateurs. Par exemple, 10 % du trafic de production peut être envoyé au canari. Nous pouvons tester la stabilité et les performances et recevoir les commentaires des utilisateurs. Si tout fonctionne comme prévu, nous pouvons progressivement déplacer le trafic de l’ancienne version vers la nouvelle version.
Ce déploiement réduit le risque d’introduire des bogues dans la nouvelle version du logiciel. Il a également une stratégie de restauration simple.
Un inconvénient est que le cycle de développement est plus complexe et prend plus de temps à se terminer. Par exemple, le canari nécessite des scripts et des tests manuels/humains.
Les tests A/B sont principalement utilisés pour mesurer l’efficacité d’un changement. C’est similaire à la version Canary. Un sous-ensemble d’utilisateurs voit la version A, et les autres voient la version B du logiciel. Un exemple peut impliquer l’affichage d’une page Web avec deux mises en page différentes. À l’aide d’outils de surveillance, vous pouvez analyser la façon dont le public réagit aux changements.
C’est un excellent moyen d’expérimenter de nouvelles fonctionnalités en production.
L’inconvénient de cette méthode est que l’écriture des tests A/B est chronophage et complexe à mettre en place.
Cette stratégie arrête d’abord l’ancienne version de l’application, puis déploie la nouvelle version. L’ensemble de l’application est redémarré.
L’avantage de cette stratégie est qu’elle est simple et directe.
L’inconvénient est que l’application aura des temps d’arrêt. Il ne convient pas aux logiciels critiques qui doivent toujours être disponibles pour les clients. En outre, il n’est pas facile d’effectuer une restauration.
Cette stratégie consiste à déployer la nouvelle version parallèlement à la version existante. Les demandes de production sont mises en miroir/copiées et envoyées à la version fantôme pour tester si les exigences sont remplies.
C’est un moyen sûr de tester le comportement des changements de code dans un environnement productif.
Cependant, il est coûteux et complexe à mettre en place. Les ingénieurs doivent également faire attention au trafic pour éviter de dupliquer les requêtes en direct.
Dans cet article, vous avez appris certaines des stratégies de déploiement les plus couramment utilisées. Si vous êtes un débutant et que vos collègues parlent du déploiement de Canary, vous aurez un aperçu de son fonctionnement.
J’espère que vous avez appris quelque chose de nouveau grâce à ce post. Merci d’avoir lu, et à la prochaine !