{"id":52688,"date":"2019-11-14T00:00:00","date_gmt":"2019-11-13T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/strategii-deploya-v-kubernetes-rolling-recreate-blue-green-canary-dark-a-b-testirovanie"},"modified":"2020-02-18T14:00:29","modified_gmt":"2020-02-18T11:00:29","slug":"strategii-deploya-v-kubernetes-rolling-recreate-blue-green-canary-dark-a-b-testirovanie","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/strategii-deploya-v-kubernetes-rolling-recreate-blue-green-canary-dark-a-b-testirovanie","title":{"rendered":"Strat\u00e9gies de d\u00e9ploiement dans Kubernetes : rolling, recreate, blue\/green, canary, dark (tests A\/B)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Rem. trad.:<\/b> Ce document de Weaveworks pr\u00e9sente les strat\u00e9gies de d\u00e9ploiement d'applications les plus populaires et d\u00e9crit comment mettre en \u0153uvre certaines des plus avanc\u00e9es \u00e0 l'aide de l'op\u00e9rateur Kubernetes Flagger. Il est r\u00e9dig\u00e9 dans un langage simple et comprend des sch\u00e9mas clairs, permettant m\u00eame aux ing\u00e9nieurs d\u00e9butants de comprendre le sujet.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Strat\u00e9gies de d\u00e9ploiement dans Kubernetes : rolling, recreate, blue\/green, canary, dark (tests A\/B)\" src=\"\/wp-content\/uploads\/2019\/11\/8d32d63c9986e9f5b35ccca74a546d42.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Le sch\u00e9ma est tir\u00e9 de <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.container-solutions.com\/kubernetes-deployment-strategies\">une autre revue<\/a><\/noindex> des strat\u00e9gies de d\u00e9ploiement pr\u00e9sent\u00e9e par Container Solutions<\/i><\/p>\n<p>L'un des plus grands d\u00e9fis lors du d\u00e9veloppement d'applications cloud natives aujourd'hui est d'acc\u00e9l\u00e9rer le d\u00e9ploiement. Avec une approche microservices, les d\u00e9veloppeurs travaillent d\u00e9j\u00e0 avec des applications enti\u00e8rement modulaires et les con\u00e7oivent, permettant \u00e0 diff\u00e9rentes \u00e9quipes d'\u00e9crire du code et d'apporter des modifications de mani\u00e8re simultan\u00e9e.<\/p>\n<p>Des d\u00e9ploiements plus courts et plus fr\u00e9quents pr\u00e9sentent les avantages suivants :<\/p>\n<ul>\n<li> Le temps de mise sur le march\u00e9 est r\u00e9duit.<\/li>\n<li> Les nouvelles fonctionnalit\u00e9s atteignent plus rapidement les utilisateurs.<\/li>\n<li> Les retours des utilisateurs parviennent plus vite \u00e0 l'\u00e9quipe de d\u00e9veloppeurs. Cela signifie que l'\u00e9quipe peut ajouter des fonctionnalit\u00e9s et corriger des probl\u00e8mes plus rapidement.<\/li>\n<li> Le moral des d\u00e9veloppeurs s'am\u00e9liore : travailler avec un plus grand nombre de fonctionnalit\u00e9s en d\u00e9veloppement est plus int\u00e9ressant.<\/li>\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nCependant, avec une fr\u00e9quence de version accrue, les risques d'affecter n\u00e9gativement la fiabilit\u00e9 de l'application ou l'exp\u00e9rience utilisateur augmentent \u00e9galement. C'est pourquoi il est crucial pour les \u00e9quipes d'exploitation et DevOps de structurer les processus et de g\u00e9rer les strat\u00e9gies de d\u00e9ploiement de mani\u00e8re \u00e0 minimiser le risque pour le produit et les utilisateurs. (En savoir plus sur l'automatisation des pipelines CI\/CD peut le faire) <noindex><a rel=\"nofollow\" href=\"https:\/\/www.weave.works\/assets\/images\/blta8084030436bce24\/CICD_eBook_Web.pdf\">ici<\/a><\/noindex>.)<\/p>\n<p>Dans cette publication, nous discuterons des diff\u00e9rentes strat\u00e9gies de d\u00e9ploiement dans Kubernetes, y compris les d\u00e9ploiements rolling et des m\u00e9thodes plus avanc\u00e9es telles que les d\u00e9ploiements canary et leurs variations.<\/p>\n<h2>Strat\u00e9gies de d\u00e9ploiement<\/h2>\n<p>\nIl existe plusieurs types de strat\u00e9gies de d\u00e9ploiement que vous pouvez utiliser en fonction de vos objectifs. Par exemple, vous pourriez avoir besoin d'apporter des modifications \u00e0 un certain environnement pour un test approfondi, \u00e0 un sous-ensemble d'utilisateurs\/clients, ou d'effectuer un test limit\u00e9 sur des utilisateurs avant de rendre une fonctionnalit\u00e9 <i>publique<\/i>.<\/p>\n<h3>Rolling (d\u00e9ploiement progressif, 'graduel')<\/h3>\n<p>\nC'est la strat\u00e9gie de d\u00e9ploiement standard dans Kubernetes. Elle remplace progressivement, un par un, les pods avec l'ancienne version de l'application par des pods avec la nouvelle version, sans temps d'arr\u00eat pour le cluster.<\/p>\n<p><img decoding=\"async\" alt=\"Strat\u00e9gies de d\u00e9ploiement dans Kubernetes : rolling, recreate, blue\/green, canary, dark (tests A\/B)\" src=\"\/wp-content\/uploads\/2019\/11\/cbd490f1ef8311ff4c242726e947248c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKubernetes attend que les nouveaux pods soient pr\u00eats \u00e0 fonctionner (en les v\u00e9rifiant avec <noindex><a rel=\"nofollow\" href=\"https:\/\/www.weave.works\/blog\/resilient-apps-with-liveness-and-readiness-probes-in-kubernetes\">tests de disponibilit\u00e9<\/a><\/noindex>), avant de commencer \u00e0 retirer les anciens. En cas de probl\u00e8me, cette mise \u00e0 jour progressive peut \u00eatre interrompue sans arr\u00eater l'ensemble du cluster. Dans le fichier YAML d\u00e9crivant le type de d\u00e9ploiement, la nouvelle image remplace l'ancienne :<\/p>\n<pre><code class=\"plaintext\">apiVersion: apps\/v1beta1\nkind: Deployment\nmetadata:\n  name: awesomeapp\nspec:\n  replicas: 3\n  template:\n    metadata:\n      labels:\n        app: awesomeapp\n    spec:\n      containers:\n        - name: awesomeapp\n          image: imagerepo-user\/awesomeapp:new\n          ports:\n            - containerPort: 8080<\/code><\/pre>\n<p>\nLes param\u00e8tres de la mise \u00e0 jour progressive peuvent \u00eatre pr\u00e9cis\u00e9s dans le fichier de manifeste :<\/p>\n<pre><code class=\"plaintext\">spec:\n  replicas: 3\n  strategy:\n    type: RollingUpdate\n    rollingUpdate:\n       maxSurge: 25%\n       maxUnavailable: 25%  \n  template:\n  ...\n<\/code><\/pre>\n<p><\/p>\n<h3>Recreate (recr\u00e9ation)<\/h3>\n<p>\nDans ce type de d\u00e9ploiement le plus simple, les anciens pods sont tu\u00e9s tous en m\u00eame temps et remplac\u00e9s par des nouveaux :<\/p>\n<p><img decoding=\"async\" alt=\"Strat\u00e9gies de d\u00e9ploiement dans Kubernetes : rolling, recreate, blue\/green, canary, dark (tests A\/B)\" src=\"\/wp-content\/uploads\/2019\/11\/46168e36b7f44c76bcea40ab3a1a2cad.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLe manifeste correspondant ressemble \u00e0 ceci :<\/p>\n<pre><code class=\"plaintext\">spec:\n  replicas: 3\n  strategy:\n    type: Recreate\n  template:\n  ...<\/code><\/pre>\n<p><\/p>\n<h3>Blue\/Green (d\u00e9ploiements bleu\/vert)<\/h3>\n<p>\nLa strat\u00e9gie de d\u00e9ploiement bleu\/vert (parfois appel\u00e9e rouge\/noir) pr\u00e9voit le d\u00e9ploiement simultan\u00e9 des anciennes (vertes) et nouvelles (bleues) versions de l'application. Apr\u00e8s le d\u00e9ploiement des deux versions, les utilisateurs normaux ont acc\u00e8s \u00e0 la version verte, tandis que la bleue est accessible \u00e0 l'\u00e9quipe QA pour l'automatisation des tests via un service s\u00e9par\u00e9 ou un redirection directe des ports :<\/p>\n<p><img decoding=\"async\" alt=\"Strat\u00e9gies de d\u00e9ploiement dans Kubernetes : rolling, recreate, blue\/green, canary, dark (tests A\/B)\" src=\"\/wp-content\/uploads\/2019\/11\/6664b625c99e089acf01c92edce0b45a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<pre><code class=\"plaintext\">apiVersion: apps\/v1beta1\nkind: Deployment\nmetadata:\n  name: awesomeapp-02\nspec:\n  template:\n    metadata:\n      labels:\n        app: awesomeapp\n        version: \"02\"<\/code><\/pre>\n<p>\nUne fois que la version bleue (nouvelle) a \u00e9t\u00e9 test\u00e9e et que sa mise en production a \u00e9t\u00e9 approuv\u00e9e, le service bascule vers elle, tandis que la version verte (ancienne) est r\u00e9duite :<\/p>\n<pre><code class=\"plaintext\">apiVersion: v1\nkind: Service\nmetadata:\n  name: awesomeapp\nspec:\n  selector:\n    app: awesomeapp\n    version: \"02\"\n...<\/code><\/pre>\n<p><\/p>\n<h3>Canary (d\u00e9ploiements canari)<\/h3>\n<p>\nLes mises en production canari ressemblent aux d\u00e9ploiements bleu\/vert, mais sont mieux g\u00e9r\u00e9es et utilisent <noindex><a rel=\"nofollow\" href=\"https:\/\/redmonk.com\/jgovernor\/2018\/08\/06\/towards-progressive-delivery\/\">une approche progressive<\/a><\/noindex> . Ce type comprend plusieurs strat\u00e9gies diff\u00e9rentes, y compris les lancements \u00ab cach\u00e9s \u00bb et les tests A\/B.<\/p>\n<p>Cette strat\u00e9gie est utilis\u00e9e lorsqu'il est n\u00e9cessaire de tester une nouvelle fonctionnalit\u00e9, g\u00e9n\u00e9ralement dans le backend de l'application. L'id\u00e9e est de cr\u00e9er deux serveurs presque identiques : l'un dessert presque tous les utilisateurs, tandis que l'autre, avec les nouvelles fonctionnalit\u00e9s, ne dessert qu'un petit sous-groupe d'utilisateurs, apr\u00e8s quoi les r\u00e9sultats de leurs performances sont compar\u00e9s. Si tout se passe sans erreurs, la nouvelle version est progressivement d\u00e9ploy\u00e9e sur l'ensemble de l'infrastructure.<\/p>\n<p>Bien que cette strat\u00e9gie puisse \u00eatre mise en \u0153uvre uniquement avec Kubernetes, en rempla\u00e7ant les anciens pods par de nouveaux, il est beaucoup plus pratique et simple d'utiliser un service mesh comme Istio.<\/p>\n<p>Par exemple, vous pouvez avoir deux manifestes diff\u00e9rents dans Git : un normal avec le tag 0.1.0 et un \"canari\" avec le tag 0.2.0. En modifiant les poids dans le manifeste du passerelle virtuelle Istio, vous pouvez g\u00e9rer la r\u00e9partition du trafic entre ces deux d\u00e9ploiements :<\/p>\n<p><img decoding=\"async\" alt=\"Strat\u00e9gies de d\u00e9ploiement dans Kubernetes : rolling, recreate, blue\/green, canary, dark (tests A\/B)\" src=\"\/wp-content\/uploads\/2019\/11\/d75dc34fea187c4e67879d0f64f9251c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUn guide \u00e9tape par \u00e9tape sur la mise en \u0153uvre des d\u00e9ploiements canari avec Istio se trouve dans le document <noindex><a rel=\"nofollow\" href=\"https:\/\/www.weave.works\/blog\/gitops-workflows-for-istio-canary-deployments\">GitOps Workflows with Istio<\/a><\/noindex>. <i>(<b>Note de traduction.<\/b>: Nous avons \u00e9galement traduit un article sur les d\u00e9ploiements canari dans Istio <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/440378\/\">ici<\/a><\/noindex>.)<\/i><\/p>\n<h4>D\u00e9ploiements canari avec Weaveworks Flagger<\/h4>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/docs.flagger.app\/\">Weaveworks Flagger<\/a><\/noindex> permet de g\u00e9rer facilement et efficacement les d\u00e9ploiements canari.<\/p>\n<p>Flagger automatise leur gestion. Il utilise Istio ou AWS App Mesh pour le routage et le basculement du trafic, ainsi que des m\u00e9triques Prometheus pour analyser les r\u00e9sultats. De plus, l'analyse des d\u00e9ploiements canari peut \u00eatre compl\u00e9t\u00e9e par des webhooks pour effectuer des tests d'acceptation, des tests de charge et tout autre type de v\u00e9rification.<\/p>\n<p>Sur la base du d\u00e9ploiement Kubernetes et, si n\u00e9cessaire, de la mise \u00e0 l'\u00e9chelle horizontale des pods (HPA), Flagger cr\u00e9e des ensembles d'objets (d\u00e9ploiements Kubernetes, services ClusterIP et services virtuels Istio ou App Mesh) pour effectuer l'analyse et r\u00e9aliser des d\u00e9ploiements canari :<\/p>\n<p><img decoding=\"async\" alt=\"Strat\u00e9gies de d\u00e9ploiement dans Kubernetes : rolling, recreate, blue\/green, canary, dark (tests A\/B)\" src=\"\/wp-content\/uploads\/2019\/11\/99aa426bbcf59edcb70d5637e32d8ff7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEn mettant en \u0153uvre une boucle de contr\u00f4le <i>(control loop)<\/i>, Flagger bascule progressivement le trafic vers le serveur canari, tout en mesurant les indicateurs cl\u00e9s de performance, tels que le taux de succ\u00e8s des requ\u00eates HTTP, la dur\u00e9e moyenne des requ\u00eates et la sant\u00e9 des pods. Sur la base de l'analyse des KPI (indicateurs cl\u00e9s de performance), la partie canari cro\u00eet ou diminue, et les r\u00e9sultats de l'analyse sont publi\u00e9s dans Slack. Une description et une d\u00e9monstration de ce processus peuvent \u00eatre trouv\u00e9es dans le mat\u00e9riel. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.weave.works\/blog\/progressive-delivery-for-aws-app-mesh\">Progressive Delivery for App Mesh<\/a><\/noindex>.<\/p>\n<p><img decoding=\"async\" alt=\"Strat\u00e9gies de d\u00e9ploiement dans Kubernetes : rolling, recreate, blue\/green, canary, dark (tests A\/B)\" src=\"\/wp-content\/uploads\/2019\/11\/f9fa1ba66edecc2b3e971952a318ea40.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>D\u00e9ploiements sombres (cach\u00e9s) ou A\/B<\/h3>\n<p>\nLe d\u00e9ploiement cach\u00e9 est une autre variation de la strat\u00e9gie canarienne (\u00e0 noter que Flagger peut \u00e9galement travailler avec cela). La diff\u00e9rence entre un d\u00e9ploiement cach\u00e9 et un d\u00e9ploiement canarien est que les d\u00e9ploiements cach\u00e9s concernent le frontend, et non le backend comme les canariens.<\/p>\n<p>Un autre nom pour ces d\u00e9ploiements est A\/B testing. Au lieu de permettre l'acc\u00e8s \u00e0 une nouvelle fonctionnalit\u00e9 \u00e0 tous les utilisateurs, elle est propos\u00e9e \u00e0 seulement une partie limit\u00e9e d'entre eux. En g\u00e9n\u00e9ral, ces utilisateurs ne savent pas qu'ils sont des testeurs pr\u00e9curseurs (ce qui donne lieu au terme \u00ab d\u00e9ploiement cach\u00e9 \u00bb).<\/p>\n<p>\u00c0 l'aide de commutateurs de fonctionnalit\u00e9 <i>(feature toggles)<\/i> et d'autres outils, il est possible de suivre comment les utilisateurs interagissent avec la nouvelle fonctionnalit\u00e9, si cela les attire ou s'ils trouvent la nouvelle interface utilisateur d\u00e9routante, ainsi que d'autres types de m\u00e9triques.<\/p>\n<p><img decoding=\"async\" alt=\"Strat\u00e9gies de d\u00e9ploiement dans Kubernetes : rolling, recreate, blue\/green, canary, dark (tests A\/B)\" src=\"\/wp-content\/uploads\/2019\/11\/037b5ccca2e1d99ac142d2ce734f954d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>Flagger et A\/B d\u00e9ploiements<\/h4>\n<p>\nEn plus du routage bas\u00e9 sur le poids, Flagger peut \u00e9galement diriger le trafic vers le serveur canarien en fonction des param\u00e8tres HTTP. Lors des tests A\/B, il est possible d'utiliser des en-t\u00eates HTTP ou des cookies pour rediriger un segment sp\u00e9cifique d'utilisateurs. Cela est particuli\u00e8rement efficace dans le cas d'applications frontend n\u00e9cessitant une affinit\u00e9 de session au serveur <i>(session affinity)<\/i>. Des informations suppl\u00e9mentaires peuvent \u00eatre trouv\u00e9es dans la documentation de Flagger.<\/p>\n<p><i>L'auteur remercie <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/stefanprodan\">Stefan Prodan<\/a><\/noindex>, ing\u00e9nieur chez Weaveworks (et cr\u00e9ateur de Flagger), pour tous ces sch\u00e9mas de d\u00e9ploiement impressionnants.<\/i><\/p>\n<h2>P.S. de l'auteur<\/h2>\n<p>\nLisez aussi dans notre blog :<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/447180\/\">Aper\u00e7u et comparaison des contr\u00f4leurs Ingress pour Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/460351\/\">werf est notre outil pour CI\/CD dans Kubernetes (aper\u00e7u et vid\u00e9o de la pr\u00e9sentation).<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/469541\/\">Construction et d\u00e9ploiement de microservices similaires avec werf et GitLab CI.<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/458878\/\">Qu'est-ce que GitOps ?<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/471620\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u042d\u0442\u043e\u0442 \u043e\u0431\u0437\u043e\u0440\u043d\u044b\u0439 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043e\u0442 Weaveworks \u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442 \u0441 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u043c\u0438 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f\u043c\u0438 \u0432\u044b\u043a\u0430\u0442\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0445 \u0438\u0437 \u043d\u0438\u0445 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Kubernetes-\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 Flagger. \u041e\u043d \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u044f\u0437\u044b\u043a\u043e\u043c \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u044b\u0435 \u0441\u0445\u0435\u043c\u044b, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0435 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0432\u043e\u043f\u0440\u043e\u0441\u0435 \u0434\u0430\u0436\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u043c \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430\u043c. \u0421\u0445\u0435\u043c\u0430 \u0432\u0437\u044f\u0442\u0430 \u0438\u0437 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043e\u0431\u0437\u043e\u0440\u0430 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0439 \u0432\u044b\u043a\u0430\u0442\u0430, \u0441\u0434\u0435\u043b\u0430\u043d\u043d\u043e\u0433\u043e \u0432 Container Solutions \u041e\u0434\u043d\u043e\u0439 \u0438\u0437 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-52688","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u043c.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/strategii-deploya-v-kubernetes-rolling-recreate-blue-green-canary-dark-a-b-testirovanie\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u0434\u0435\u043f\u043b\u043e\u044f \u0432 Kubernetes: rolling, recreate, blue\/green, canary, dark (A\/B-\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u043c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/strategii-deploya-v-kubernetes-rolling-recreate-blue-green-canary-dark-a-b-testirovanie\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-11-13T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:00:29+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Strat\u00e9gies de d\u00e9ploiement dans Kubernetes : rolling, recreate, blue\/green, canary, dark (A\/B testing) | ProHoster","description":"Ex.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/strategii-deploya-v-kubernetes-rolling-recreate-blue-green-canary-dark-a-b-testirovanie","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u0434\u0435\u043f\u043b\u043e\u044f \u0432 Kubernetes: rolling, recreate, blue\/green, canary, dark (A\/B-\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435) | ProHoster","og:description":"\u041f\u0440\u0438\u043c.","og:url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/strategii-deploya-v-kubernetes-rolling-recreate-blue-green-canary-dark-a-b-testirovanie","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-11-13T21:00:00+00:00","article:modified_time":"2020-02-18T11:00:29+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"52688","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 04:27:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:03:32","updated":"2026-01-24 04:27:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/52688","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=52688"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/52688\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=52688"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=52688"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=52688"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}