Canary rollouts zoo ib yam li xiav-ntsuab rollouts, tab sis muaj kev tswj thiab siv tau zoo dua vam meej ib kauj ruam los ntawm kauj ruam mus kom ze. Hom no suav nrog ntau lub tswv yim sib txawv, suav nrog "ntev" kev xa tawm thiab kev sim A / B.
Cov tswv yim no yog siv thaum muaj qhov xav tau los sim qee qhov kev ua haujlwm tshiab, feem ntau yog nyob rau hauv qab ntawm daim ntawv thov. Lub ntsiab lus ntawm txoj hauv kev yog los tsim ob lub servers yuav luag zoo ib yam: ib qho ua haujlwm yuav luag txhua tus neeg siv, thiab lwm yam, nrog cov haujlwm tshiab, tsuas yog pab pawg me me ntawm cov neeg siv, tom qab ntawd cov txiaj ntsig ntawm lawv txoj haujlwm tau muab piv. Yog tias txhua yam mus yam tsis muaj qhov yuam kev, qhov tshiab version yog maj mam dov mus rau tag nrho cov infrastructure.
Txawm hais tias lub tswv yim no tuaj yeem ua tiav tsuas yog siv Kubernetes, hloov cov qub pods nrog cov tshiab, nws yooj yim dua thiab yooj yim dua los siv cov kev pabcuam mesh zoo li Istio.
Piv txwv li, koj yuav muaj ob qhov sib txawv hauv Git: ib txwm tshwm sim nrog lub cim 0.1.0 thiab canary manifest nrog lub cim 0.2.0. Los ntawm kev hloov qhov hnyav hauv Istio virtual gateway manifest, koj tuaj yeem tswj kev faib tawm ntawm ob qhov kev xa tawm no:
Weaveworks Flagger tso cai rau koj kom yooj yim thiab zoo tswj canary rollouts.
Flagger automates ua haujlwm nrog lawv. Nws siv Istio lossis AWS App Mesh rau txoj kev thiab hloov tsheb, thiab Prometheus metrics los soj ntsuam cov txiaj ntsig. Tsis tas li ntawd, kev soj ntsuam ntawm canary deployments tuaj yeem ntxiv nrog webhooks los ua qhov kev lees paub, kev xeem thauj khoom, thiab lwm yam kev kuaj xyuas.
Raws li kev xa tawm Kubernetes thiab, yog tias tsim nyog, kab rov tav scaling ntawm pods (HPA), Flagger tsim cov khoom siv (Kubernetes xa mus, ClusterIP cov kev pabcuam thiab Istio lossis App Mesh cov kev pabcuam virtual) los tshuaj xyuas thiab siv cov kev xa tawm canary:
Ua raws li kev tswj lub voj (control loop),Flagger maj mam hloov tsheb mus rau cov neeg rau zaub mov canary, thaum tib lub sijhawm ntsuas cov ntsuas kev ua haujlwm tseem ceeb xws li feem pua ββββntawm kev thov HTTP ua tiav, ncua sij hawm thov nruab nrab, thiab kev noj qab haus huv ntawm cov pods. Raws li KPI (Key Performance Indicators) tsom xam, cov canary txawm loj hlob los yog tawg thiab cov txiaj ntsig ntawm kev tshuaj ntsuam tau luam tawm hauv Slack. Cov lus piav qhia thiab kev ua qauv qhia ntawm cov txheej txheem no tuaj yeem pom hauv cov khoom siv Progressive Delivery rau App Mesh.
Tsaus (pob ntseg) lossis A / B xa tawm
Kev xa tawm Stealth yog lwm qhov kev hloov pauv ntawm lub tswv yim canary (uas, los ntawm txoj kev, Flagger kuj tuaj yeem ua haujlwm nrog). Qhov txawv ntawm stealth thiab canary deployments yog tias stealth deployments cuam tshuam nrog frontend es tsis yog lub backend zoo li canary deployments.
Lwm lub npe rau cov kev xa tawm no yog kev sim A / B. Es tsis txhob ua qhov tshiab feature muaj rau txhua tus neeg siv, nws tau muab rau tsuas yog ib feem ntawm lawv. Feem ntau, cov neeg siv no tsis paub tias lawv yog cov pioneering testers (li no lo lus "stealth deployment").