Straitéisí imlonnaithe i Kubernetes: rollta, athchruthaigh, gorm/glas, canáraí, dorcha (tástáil A/B)

Nóta aistriúchán: Tugann an forbhreathnú seo ó Weaveworks isteach na straitéisí rolladh amach feidhmchlár is coitianta agus léiríonn sé conas is féidir na cinn is forbartha a chur i bhfeidhm ag baint úsáide as oibreoir Kubernetes Flagger. Tá sé scríofa i dteanga shimplí agus tá léaráidí amhairc ann a ligeann d'innealtóirí nua fiú an cheist a thuiscint.

Straitéisí imlonnaithe i Kubernetes: rollta, athchruthaigh, gorm/glas, canáraí, dorcha (tástáil A/B)
Tógtar an léaráid ó athbhreithniú eile straitéisí rolladh amach déanta i Container Solutions

Is é ceann de na dúshláin is mó maidir le feidhmchláir dhúchasacha scamall a fhorbairt inniu ná an t-imscaradh a bhrostú. I gcur chuige microservices, oibríonn forbróirí cheana féin le feidhmchláir atá go hiomlán modúlach agus déanann siad iad a dhearadh, rud a ligeann d'fhoirne éagsúla cód a scríobh ag an am céanna agus athruithe a dhéanamh ar an bhfeidhmchlár.

Tá na buntáistí seo a leanas ag baint le himscaradh níos giorra agus níos minice:

  • Laghdaítear an t-am chun an mhargaidh.
  • Sroicheann gnéithe nua úsáideoirí níos tapúla.
  • Sroicheann aiseolas úsáideoirí an fhoireann forbartha níos tapúla. Ciallaíonn sé seo gur féidir leis an bhfoireann gnéithe a chur leis agus fadhbanna a réiteach níos tapúla.
  • Méaduithe meanma an fhorbróra: bíonn níos mó spraoi ag baint le níos mó gnéithe forbartha.


Ach de réir mar a mhéadaíonn minicíocht na n-eisiúintí, méadaíonn an seans go mbeidh tionchar diúltach ar iontaofacht an fheidhmchláir nó ar thaithí úsáideora. Sin an fáth go bhfuil sé tábhachtach d’oibríochtaí agus d’fhoirne DevOps próisis a thógáil agus straitéisí imlonnaithe a bhainistiú ar bhealach a íoslaghdaíonn an riosca don táirge agus d’úsáideoirí. (Is féidir leat tuilleadh a fhoghlaim faoi uathoibriú píblíne CI/CD anseo.)

Sa phost seo, pléifimid straitéisí imlonnaithe éagsúla in Kubernetes, lena n-áirítear imscaradh rollach agus modhanna níos forbartha mar rolladh amach canáraí agus a n-éagsúlachtaí.

Straitéisí imlonnaithe

Tá cineálacha éagsúla straitéisí imlonnaithe ann ar féidir leat a úsáid ag brath ar do sprioc. Mar shampla, b'fhéidir go mbeidh ort athruithe a dhéanamh ar thimpeallacht áirithe le haghaidh tuilleadh tástála, nó ar fho-thacar úsáideoirí/cliaint, nó b'fhéidir go mbeadh ort tástáil teoranta úsáideora a dhéanamh sula ndéanann tú gné poiblí.

Rollach (imscaradh céimneach, “rollach”)

Is é seo an straitéis imlonnaithe chaighdeánach i Kubernetes. De réir a chéile, ceann ar cheann, cuireann sé pods in ionad pods leis an seanleagan den fheidhmchlár le pods leis an leagan nua - gan aga downtime braisle.

Straitéisí imlonnaithe i Kubernetes: rollta, athchruthaigh, gorm/glas, canáraí, dorcha (tástáil A/B)

Fanann Kubernetes go dtí go mbeidh pods nua réidh le hobair (seiceáil iad ag baint úsáide as tástálacha ullmhachta), sula dtosaíonn tú ag rolladh suas na sean. Má tharlaíonn fadhb, is féidir deireadh a chur leis an nuashonrú rollta seo gan an braisle iomlán a stopadh. Sa chomhad YAML a dhéanann cur síos ar an gcineál imlonnaithe, cuirtear an íomhá nua in ionad na seaníomhá:

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: awesomeapp
spec:
  replicas: 3
  template:
    metadata:
      labels:
        app: awesomeapp
    spec:
      containers:
        - name: awesomeapp
          image: imagerepo-user/awesomeapp:new
          ports:
            - containerPort: 8080

Is féidir na paraiméadair nuashonraithe tar-rollta a shonrú sa chomhad follasach:

spec:
  replicas: 3
  strategy:
    type: RollingUpdate
    rollingUpdate:
       maxSurge: 25%
       maxUnavailable: 25%  
  template:
  ...

Athchruthaigh

Sa chineál seo imlonnaithe is simplí, maraítear seanchóid go léir ag an am céanna agus cuirtear cinn nua ina n-ionad:

Straitéisí imlonnaithe i Kubernetes: rollta, athchruthaigh, gorm/glas, canáraí, dorcha (tástáil A/B)

Breathnaíonn an léiriú comhfhreagrach rud éigin mar seo:

spec:
  replicas: 3
  strategy:
    type: Recreate
  template:
  ...

Gorm/Glas (imscaradh gorm-uaine)

Baineann an straitéis imlonnaithe gorm-uaine (ar a dtugtar uaireanta dearg/dubh freisin) le himscaradh comhuaineach na seanleaganacha (glas) agus na leaganacha nua (gorm) den fheidhmchlár. Tar éis an dá leagan a phostáil, tá rochtain ag úsáideoirí rialta ar an gceann glas, agus tá an ceann gorm ar fáil don fhoireann QA chun tástálacha a uathoibriú trí sheirbhís ar leith nó trí chur ar aghaidh díreach calafoirt:

Straitéisí imlonnaithe i Kubernetes: rollta, athchruthaigh, gorm/glas, canáraí, dorcha (tástáil A/B)

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: awesomeapp-02
spec:
  template:
    metadata:
      labels:
        app: awesomeapp
        version: "02"

Tar éis an leagan gorm (nua) a thástáil agus a scaoileadh ceadaithe, aistríonn an tseirbhís chuige, agus filltear an leagan glas (sean):

apiVersion: v1
kind: Service
metadata:
  name: awesomeapp
spec:
  selector:
    app: awesomeapp
    version: "02"
...

Canáracha (imscaradh chanáracha)

Tá rolladh amach Chanáracha cosúil le rolladh amach gorm-uaine, ach tá smacht agus úsáid níos fearr acu forásach cur chuige céim ar chéim. Áirítear leis an gcineál seo straitéisí éagsúla, lena n-áirítear seoltaí “stealth” agus tástáil A/B.

Úsáidtear an straitéis seo nuair is gá roinnt feidhmiúlacht nua a thriail, go hiondúil in inneall an fheidhmchláir. Is é croílár an chur chuige ná dhá fhreastalaithe beagnach comhionann a chruthú: feidhmíonn ceann amháin beagnach gach úsáideoir, agus feidhmíonn an ceann eile, le feidhmeanna nua, ach foghrúpa beag úsáideoirí, agus ina dhiaidh sin déantar comparáid idir torthaí a gcuid oibre. Mura ndéantar aon earráidí, déantar an leagan nua a rolladh amach de réir a chéile chuig an mbonneagar iomlán.

Cé gur féidir an straitéis seo a chur i bhfeidhm go heisiach ag baint úsáide as Kubernetes, ag athsholáthar sean-pods le cinn nua, tá sé i bhfad níos áisiúla agus níos simplí mogalra seirbhíse a úsáid mar Istio.

Mar shampla, b'fhéidir go mbeadh dhá fhorléiriú éagsúla agat i Git: léiriú rialta leis an gclib 0.1.0 agus léiriú canáraí leis an gclib 0.2.0. Trí na meáchain sa thairseach fhíorúil Istio a athrú, is féidir leat dáileadh an tráchta idir an dá imscaradh seo a rialú:

Straitéisí imlonnaithe i Kubernetes: rollta, athchruthaigh, gorm/glas, canáraí, dorcha (tástáil A/B)

Le haghaidh treoir céim ar chéim ar imscaradh canáraí a chur i bhfeidhm ag baint úsáide as Istio, féach Sreafaí Oibre GitOps le Istio. (Nóta. aistrigh.: Aistríomar ábhar faoi rolladh amach canáraí go Istio freisin anseo.)

Imscaradh Chanáracha le Bratach Weaveworks

Bratach Weaveworks ligeann sé duit rolladh amach canáraí a bhainistiú go héasca agus go héifeachtach.

Oibríonn Flagger uathoibrithe leo. Úsáideann sé Istio nó AWS App Mogall chun trácht a bhealach agus a aistriú, agus méadracht Prometheus chun anailís a dhéanamh ar na torthaí. Ina theannta sin, is féidir cur leis an anailís ar imscaradh canáraí le cuacha gréasáin chun tástálacha glactha, tástálacha ualaigh, agus aon chineál seiceála eile a dhéanamh.

Bunaithe ar imscaradh Kubernetes agus, más gá, ar scálú cothrománach pods (HPA), cruthaíonn Flagger tacair réad (imscaradh Kubernetes, seirbhísí ClusterIP agus seirbhísí fíorúla Istio nó App Mesh) chun imscaradh canáraí a anailísiú agus a chur i bhfeidhm:

Straitéisí imlonnaithe i Kubernetes: rollta, athchruthaigh, gorm/glas, canáraí, dorcha (tástáil A/B)

An lúb rialaithe a chur i bhfeidhm (lúb rialaithe),Aistríonn Flagger trácht de réir a chéile chuig an bhfreastalaí canáraí, agus ag an am céanna déantar príomhmhéadracht feidhmíochta a thomhas ar nós céatadán na n-iarratas HTTP rathúla, meánfhad na n-iarratas, agus sláinte an phod. Bunaithe ar an anailís KPI (Príomhtháscairí Feidhmíochta), tagann fás nó titim ar an gcanárach agus foilsítear torthaí na hanailíse in Slack. Tá cur síos agus léiriú ar an bpróiseas seo le fáil san ábhar Seachadadh Forásach le haghaidh Mogall App.

Straitéisí imlonnaithe i Kubernetes: rollta, athchruthaigh, gorm/glas, canáraí, dorcha (tástáil A/B)

Imscaradh dorcha (i bhfolach) nó A/B

Is athrú eile ar an straitéis chanárach é imscaradh stealth (ar féidir, dála an scéil, Flagger oibriú leis freisin). Is é an difríocht idir imscaradh stealth agus canáraí ná go ndéileálann imscaradh stealth leis an tosach seachas leis an inneall cosúil le himscaradh canáraí.

Ainm eile ar na himscaradh seo ná tástáil A/B. In ionad an ghné nua a chur ar fáil do gach úsáideoir, ní thairgtear í ach do chuid teoranta díobh. Go hiondúil, ní bhíonn a fhios ag na húsáideoirí seo gur tástálaithe ceannródaíocha iad (dá bhrí sin an téarma "imscaradh stealth").

Ag baint úsáide as lasca feidhmiúlacht (scoránaigh gné) agus uirlisí eile, is féidir leat monatóireacht a dhéanamh ar an gcaoi a n-idirghníomhaíonn úsáideoirí leis an ngné nua, cibé an bhfuil siad gafa leis, nó an bhfuil an comhéadan úsáideora nua mearbhall orthu, agus cineálacha eile méadrachta.

Straitéisí imlonnaithe i Kubernetes: rollta, athchruthaigh, gorm/glas, canáraí, dorcha (tástáil A/B)

Imscaradh Flagger agus A/B

Chomh maith le ródú bunaithe ar mheáchan, is féidir le Flagger trácht a threorú chuig an bhfreastalaí canáraí bunaithe ar pharaiméadair HTTP. I dtástáil A/B, is féidir leat ceanntásca HTTP nó fianáin a úsáid chun díriú ar mhír shonrach úsáideoirí. Tá sé seo éifeachtach go háirithe i gcás feidhmchláir tosaigh a éilíonn ceangal seisiúin leis an bhfreastalaí (cleamhnas seisiúin). Is féidir tuilleadh eolais a fháil i gcáipéisíocht Flagger.

Gabhann an t-údar buíochas Stefan Prodan, Innealtóir Weaveworks (agus cruthaitheoir Flagger), do na patrúin imlonnaithe iontach seo go léir.

PS ó aistritheoir

Léigh freisin ar ár mblag:

Foinse: will.com

Add a comment