Dabarun turawa a Kubernetes: mirgina, sake ƙirƙira, shuɗi/kore, canary, duhu (gwajin A/B)

Lura fassarar: Wannan bayyani daga Weaveworks yana gabatar da mafi mashahuri dabarun ƙaddamar da aikace-aikacen kuma yana nuna yadda za'a iya aiwatar da mafi girman ci gaba ta amfani da mai aiki na Kubernetes Flagger. An rubuta shi a cikin harshe mai sauƙi kuma yana ƙunshe da zane-zane na gani wanda ke ba da damar ko da injiniyoyi masu tasowa su fahimci batun.

Dabarun turawa a Kubernetes: mirgina, sake ƙirƙira, shuɗi/kore, canary, duhu (gwajin A/B)
An ɗauko zane daga wani bita dabarun fitar da abubuwan da aka yi a cikin Maganin Kwantena

Ɗaya daga cikin manyan ƙalubalen haɓaka aikace-aikacen 'yan asalin girgije a yau shine saurin tura aiki. A cikin tsarin microservices, masu haɓakawa sun riga sun yi aiki tare da ƙira gabaɗaya aikace-aikace na yau da kullun, ba da damar ƙungiyoyi daban-daban su rubuta lamba lokaci guda da yin canje-canje ga aikace-aikacen.

Gajeru kuma akai-akai turawa suna da fa'idodi masu zuwa:

  • An rage lokacin kasuwa.
  • Sabbin fasali suna isa ga masu amfani da sauri.
  • Bayanin mai amfani yana kaiwa ga ƙungiyar haɓaka cikin sauri. Wannan yana nufin ƙungiyar zata iya ƙara fasali da gyara matsaloli cikin sauri.
  • Haɓakawa mai haɓakawa yana ƙaruwa: ƙarin fasali a cikin haɓakawa sun fi jin daɗin yin aiki da su.


Amma yayin da yawan fitowar ke ƙaruwa, damar yin mummunar tasiri ga amincin aikace-aikacen ko ƙwarewar mai amfani kuma yana ƙaruwa. Shi ya sa yana da mahimmanci ga ayyuka da ƙungiyoyin DevOps don gina matakai da sarrafa dabarun turawa ta hanyar da za ta rage haɗari ga samfurin da masu amfani. (Zaku iya ƙarin koyo game da sarrafa bututun CI/CD a nan.)

A cikin wannan sakon, za mu tattauna dabarun turawa daban-daban a cikin Kubernetes, gami da tura kayan aiki da ƙarin hanyoyin ci-gaba kamar su canary rollouts da bambance-bambancen su.

Dabarun turawa

Akwai dabaru iri-iri daban-daban na turawa waɗanda zaku iya amfani da su dangane da burin ku. Misali, ƙila kuna buƙatar yin canje-canje zuwa wani yanayi don ƙarin gwaji, ko zuwa rukunin masu amfani/aboki, ko kuna iya buƙatar yin iyakacin gwajin mai amfani kafin yin fasalin. jama'a.

Mirgina (a hankali, “juyawa” turawa)

Wannan shine daidaitaccen tsarin turawa a Kubernetes. A hankali, ɗaya bayan ɗaya, yana maye gurbin kwas ɗin da tsohon sigar aikace-aikacen tare da kwasfa tare da sabon sigar - ba tare da raguwar gungu ba.

Dabarun turawa a Kubernetes: mirgina, sake ƙirƙira, shuɗi/kore, canary, duhu (gwajin A/B)

Kubernetes yana jira har sai sabbin kwas ɗin sun shirya don aiki (duba su ta amfani da shirye-shiryen gwaje-gwaje), kafin ka fara naɗa tsofaffin. Idan matsala ta faru, ana iya soke wannan sabuntawar birgima ba tare da dakatar da duka tarin ba. A cikin fayil ɗin YAML da ke kwatanta nau'in turawa, sabon hoton ya maye gurbin tsohon hoton:

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

Za a iya ƙayyade sigogin sabuntawar rollover a cikin fayil ɗin bayyanuwa:

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

Sake ƙirƙira

A cikin wannan nau'in turawa mafi sauƙi, ana kashe tsoffin kwas ɗin gaba ɗaya kuma a maye gurbinsu da sababbi:

Dabarun turawa a Kubernetes: mirgina, sake ƙirƙira, shuɗi/kore, canary, duhu (gwajin A/B)

Bayanin da ya dace yana kama da wani abu kamar haka:

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

Blue/Green (shuɗi-kore tura kayan aiki)

Dabarar tura shuɗi-kore (wani lokaci kuma ana kiranta ja/baƙi) ta ƙunshi tura tsoffin (kore) da sabbin nau'ikan aikace-aikacen lokaci guda. Bayan buga nau'ikan biyu, masu amfani na yau da kullun suna samun damar zuwa kore, yayin da blue ɗin yana samuwa ga ƙungiyar QA don sarrafa gwaje-gwaje ta hanyar sabis na daban ko isar da tashar jiragen ruwa kai tsaye:

Dabarun turawa a Kubernetes: mirgina, sake ƙirƙira, shuɗi/kore, canary, duhu (gwajin A/B)

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

Bayan an gwada sigar shuɗin (sabuwar) kuma an amince da sakinta, sabis ɗin ya canza zuwa gare shi, kuma sigar kore (tsohuwar) tana naɗewa:

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

Canary (aikin Canary)

Canary rollouts yayi kama da shuɗi-kore rollouts, amma suna da mafi kyawun sarrafawa da amfani m matakin mataki-mataki. Wannan nau'in ya haɗa da dabaru daban-daban, gami da ƙaddamar da "stealth" da gwajin A/B.

Ana amfani da wannan dabarun lokacin da ake buƙatar gwada wasu sabbin ayyuka, yawanci a bayan aikace-aikacen. Ma'anar hanyar ita ce ƙirƙirar sabar guda biyu kusan iri ɗaya: ɗaya yana hidima kusan duk masu amfani, ɗayan kuma, tare da sabbin ayyuka, yana hidima kawai ƙaramin rukunin masu amfani, bayan haka ana kwatanta sakamakon aikin su. Idan komai ya tafi ba tare da kurakurai ba, ana fitar da sabon sigar a hankali zuwa ga dukkan kayan aikin.

Kodayake ana iya aiwatar da wannan dabarun ta amfani da Kubernetes kawai, tare da maye gurbin tsoffin kwasfa tare da sababbi, ya fi dacewa da sauƙi don amfani da ragar sabis kamar Istio.

Misali, kuna iya samun bayyananni daban-daban guda biyu a cikin Git: bayyanar yau da kullun tare da alamar 0.1.0 da bayyanawar canary tare da alamar 0.2.0. Ta hanyar canza ma'auni a cikin bayyanar ƙofa mai kama da Istio, zaku iya sarrafa rarraba zirga-zirga tsakanin waɗannan turawa biyu:

Dabarun turawa a Kubernetes: mirgina, sake ƙirƙira, shuɗi/kore, canary, duhu (gwajin A/B)

Don jagorar mataki-mataki don aiwatar da turawar canary ta amfani da Istio, duba GitOps yana gudana tare da Istio. (Lura. fassara: Mun kuma fassara abu game da na'ura na canary zuwa Istio a nan.)

Canary Deployments tare da Weaveworks Flagger

Weaveworks Flagger yana ba ku damar sarrafa sauƙi da inganci yadda ya kamata.

Flagger mai sarrafa kansa yana aiki tare da su. Yana amfani da Istio ko AWS App Mesh don hanya da canza zirga-zirga, da ma'aunin Prometheus don nazarin sakamakon. Bugu da ƙari, ana iya ƙara nazarin ƙaddamarwa na canary tare da mahaɗar yanar gizo don gudanar da gwaje-gwajen karɓa, gwaje-gwajen kaya, da kowane nau'i na cak.

Dangane da ƙaddamarwar Kubernetes kuma, idan ya cancanta, sikelin kwas ɗin kwas ɗin (HPA), Flagger yana ƙirƙira saitin abubuwa (aikin Kubernetes, sabis na ClusterIP da sabis na kama-da-wane na Istio ko App Mesh) don tantancewa da aiwatar da ayyukan canary:

Dabarun turawa a Kubernetes: mirgina, sake ƙirƙira, shuɗi/kore, canary, duhu (gwajin A/B)

Aiwatar da madauki na sarrafawa (control madauki), Flagger a hankali yana canza zirga-zirga zuwa uwar garken canary, yayin da a lokaci guda auna ma'aunin aikin maɓalli kamar yawan adadin buƙatun HTTP masu nasara, matsakaicin lokacin buƙata, da lafiyar kwasfa. Dangane da nazarin KPI (Maɓallin Ayyukan Maɓalli), canary ko dai yayi girma ko ya faɗi kuma ana buga sakamakon binciken a cikin Slack. Ana iya samun bayanin da nunin wannan tsari a cikin kayan Isar da Ci gaba don App Mesh.

Dabarun turawa a Kubernetes: mirgina, sake ƙirƙira, shuɗi/kore, canary, duhu (gwajin A/B)

Dark (boye) ko turawar A/B

Aiwatar da Stealth wani bambanci ne na dabarun canary (wanda, ta hanya, Flagger kuma zai iya aiki da shi). Bambance-bambancen da ke tsakanin stealth da Canary tura shi ne cewa ƙaddamar da ɓoye yana hulɗa da gaba maimakon baya kamar turawa na canary.

Wani suna na waɗannan turawa shine gwajin A/B. Maimakon samar da sabon fasalin samuwa ga duk masu amfani, ana ba da shi ga ƙayyadaddun yanki daga cikinsu. Yawanci, waɗannan masu amfani ba su san cewa su masu gwajin majagaba ne (saboda haka kalmar "aikin sata").

Amfani da maɓallan ayyuka (fasalin juyawa) da sauran kayan aikin, zaku iya saka idanu kan yadda masu amfani ke hulɗa tare da sabon fasalin, ko suna aiki da shi, ko kuma sun sami sabon ƙirar mai amfani da ruɗani, da sauran nau'ikan ma'auni.

Dabarun turawa a Kubernetes: mirgina, sake ƙirƙira, shuɗi/kore, canary, duhu (gwajin A/B)

Flagger da A/B turawa

Baya ga tuƙi mai nauyi, Flagger kuma yana iya tafiyar da zirga-zirga zuwa uwar garken canary dangane da sigogin HTTP. A cikin gwajin A/B, zaku iya amfani da taken HTTP ko kukis don ƙaddamar da takamaiman ɓangaren masu amfani. Wannan yana da tasiri musamman a yanayin aikace-aikacen gaba da ke buƙatar ɗaure zaman zuwa uwar garke (zaman zumunci). Ana iya samun ƙarin bayani a cikin takaddun Flagger.

Marubucin ya nuna godiya Stefan Prodan, Injiniya Weaveworks (kuma mahaliccin Flagger), don duk waɗannan alamu na turawa mai ban mamaki.

PS daga mai fassara

Karanta kuma a kan shafinmu:

source: www.habr.com

Add a comment