Xeeladaha geynta Kubernetes: rogid, dib u abuur, buluug/cagaaran, canary, mugdi (tijaabada A/B)

Ogow tarjumaad: Dulmarkan ka soo baxay Weaveworks waxa uu soo bandhigayaa xeeladaha arjiyada ugu caansan oo muujinaya sida kuwa ugu horumarsan loo hirgelin karo iyadoo la isticmaalayo Kubernetes Flagger. Waxay ku qoran tahay luqad fudud waxayna ka kooban tahay jaantusyo muuqaal ah oo u oggolaanaya xitaa injineerada cusub inay fahmaan arrinta.

Xeeladaha geynta Kubernetes: rogid, dib u abuur, buluug/cagaaran, canary, mugdi (tijaabada A/B)
Jaantuska ayaa laga soo qaatay dib u eegis kale xeeladaha faafinta ee lagu sameeyay Xalalka Kontaynarada

Mid ka mid ah caqabadaha ugu waaweyn ee horumarinta codsiyada waddaniga ah ee daruuriga ah maanta waa dedejinta hawlgelinta. Habka adeeg-yaraha, horumariyayaashu waxay mar hore la shaqeeyaan oo ay naqshadeeyaan codsiyo dhammaystiran oo modular ah, taasoo u oggolaanaysa kooxo kala duwan inay isku mar qoraan koodka oo ay isbeddel ku sameeyaan arjiga.

Hawlgalinta gaaban iyo kuwa soo noqnoqda ayaa leh faa'iidooyinka soo socda:

  • Waqtiga suuq geynta waa la dhimay.
  • Tilmaamo cusub ayaa si dhakhso leh u gaadha isticmaalayaasha
  • Jawaab celinta isticmaaluhu waxay si dhakhso leh u gaartaa kooxda horumarinta. Tani waxay ka dhigan tahay kooxdu waxay ku dari kartaa sifooyin waxayna hagaajin karaan arrimaha si dhakhso ah.
  • Niyadda horumariyaha ayaa korodha: sifooyin badan oo horumarineed ayaa aad u xiiso badan in lala shaqeeyo.


Laakin marka inta jeer ee sii dayntu ay korodho, fursadaha saamaynta xun ee lagu halayn karo codsiga ama khibrada isticmaaluhu sidoo kale way korodhaa. Taasi waa sababta ay muhiim ugu tahay hawlgallada iyo kooxaha DevOps inay dhisaan geeddi-socod oo ay u maareeyaan xeeladaha hawlgelinta si loo yareeyo khatarta badeecadaha iyo isticmaalayaasha. (Waxaad ka baran kartaa wax badan oo ku saabsan automation-ka dhuumaha CI/CD halkan.)

Maqaalkan, waxaanu kaga wada hadli doonaa xeelado kala duwan oo lagu geynayo Kubernetes, oo ay ku jiraan hawlgelinta duubista iyo habab aad u horumarsan sida duubista canary-ga iyo kala duwanaanshahooda.

Xeeladaha hawlgelinta

Waxaa jira dhowr nooc oo kala duwan oo xeelado geyn ah oo aad isticmaali karto iyadoo ku xiran hadafkaaga. Tusaale ahaan, waxaa laga yaabaa inaad u baahato inaad isbeddel ku samayso deegaan gaar ah si aad u tijaabiso, ama qayb ka mid ah isticmaalayaasha/macaamiisha, ama waxa laga yaabaa inaad u baahato inaad samayso tijaabinta isticmaale xaddidan ka hor inta aanad samayn sifo. si guud loo heli karo.

Duubista (tartiib tartiib ah, geyn "duubid")

Tani waa istaraatiijiyada geynta caadiga ah ee Kubernetes. Waxay si tartiib tartiib ah, mid mid u beddeshaa pods iyo nuqulkii hore ee codsiga iyo pods iyo version cusub - iyada oo aan kooxdu hoos u dhac.

Xeeladaha geynta Kubernetes: rogid, dib u abuur, buluug/cagaaran, canary, mugdi (tijaabada A/B)

Kubernetes waxa ay sugaysaa ilaa galka cusubi ay diyaar u yihiin in ay shaqeeyaan (hubinta iyaga oo isticmaalaya imtixaanada diyaargarowga), ka hor inta aanad bilaabin duubista kuwii hore. Haddii dhib dhaco, cusbooneysiinta duubista waa la ridi karaa iyada oo aan la joojin kooxda oo dhan. Faylka YAML ee qeexaya nooca geynta, sawirka cusub wuxuu bedelayaa sawirkii hore:

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

Halbeegyada cusboonaysiinta rogrogga waxaa lagu qeexi karaa faylka muuqda:

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

Dib u abuur

Noocan ugu fudud ee la geyn karo, baalal duug ah ayaa hal mar la dila waxaana lagu beddelaa kuwa cusub:

Xeeladaha geynta Kubernetes: rogid, dib u abuur, buluug/cagaaran, canary, mugdi (tijaabada A/B)

Muujinta u dhiganta waxay u egtahay sidan:

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

Buluug/cagaaran (diritaanka buluug-cagaaran)

Istaraatiijiyadda geynta buluuga-cagaaran (mararka qaarkood sidoo kale loo yaqaan casaan/madow) waxay ku lug leedahay isku mar la geyn jiray noocyadii hore (cagaaran) iyo kuwa cusub (buluugga) ee codsiga. Kadib dhajinta labada nooc, isticmaalayaasha caadiga ah waxay heli karaan kan cagaarka ah, halka kan buluugga ah ay diyaar u yihiin kooxda QA si ay u tijaabiyaan adeeg gaar ah ama gudbin toos ah oo deked ah:

Xeeladaha geynta Kubernetes: rogid, dib u abuur, buluug/cagaaran, canary, mugdi (tijaabada A/B)

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

Ka dib marka nooca buluuga ah (cusub) la tijaabiyo lana ogolaado sii dayntiisa, adeeggu wuu u wareegayaa, oo nooca cagaarka ah (oo hore) waa la laalaabi doonaa:

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

Canary (dirista Kanary)

Duubista Canary-ga waxay la mid tahay duubista buluug-cagaaran, laakiin waxay leeyihiin kontorool iyo adeegsi fiican horumar leh hab tallaabo-tallaabo ah. Noocaan waxaa ku jira dhowr xeelado kala duwan, oo ay ku jiraan "xatooyo" bilaabista iyo baaritaanka A/B.

Istaraatiijiyadan waxa la adeegsadaa marka ay jirto baahi loo qabo in la tijaabiyo qaar ka mid ah shaqaynta cusub, badiyaa xagga dambe ee codsiga. Nuxurka habka waa in la abuuro laba isku mid ah oo isku mid ah: mid ka mid ah wuxuu u adeegaa dhammaan dadka isticmaala, kan kalena, oo leh hawlo cusub, wuxuu u adeegaa kaliya koox-hoosaad yar oo isticmaalayaasha ah, ka dib markaa natiijada shaqadooda ayaa la barbar dhigaa. Haddii wax waliba ay ku dhacaan qalad la'aan, nooca cusub ayaa si tartiib tartiib ah loogu soo rogay dhammaan kaabayaasha.

In kasta oo istaraatiijiyadan si gaar ah loo hirgelin karo iyadoo la adeegsanayo Kubernetes, iyadoo lagu beddelayo boodhyo hore oo cusub, way ka sahlan tahay oo aad bay u fududdahay in la isticmaalo mesh adeegga sida Istio.

Tusaale ahaan, waxa laga yaabaa in aad ku yeelato laba astaamood oo kala duwan Git: caddayn joogto ah oo leh summada 0.1.0 iyo muujinta canary oo leh summada 0.2.0. Beddelidda miisaanka gudaha Istio virtual gateway, waxaad xakamayn kartaa qaybinta taraafikada u dhexeeya labadan goobood:

Xeeladaha geynta Kubernetes: rogid, dib u abuur, buluug/cagaaran, canary, mugdi (tijaabada A/B)

Si aad u hesho hage tallaabo-tallaabo ah oo lagu hirgelinayo geynta canary-ga iyadoo la adeegsanayo Istio, eeg GitOps Workflows la Istio. (Ogow. turjumi: Waxaan sidoo kale u turjunnay waxyaabo ku saabsan duubista kanary-ga ee Istio halkan.)

Soo dejinta Canary oo wata calanka Weaveworks

Calanka Weaveworks wuxuu kuu ogolaanayaa inaad si fudud oo wax ku ool ah u maamusho soo-bandhigista kanary-ga.

Atoomatada calanka ayaa la shaqeeya. Waxay isticmaashaa Istio ama AWS App Mesh si ay u waddo oo ay u bedesho taraafikada, iyo cabbirada Prometheus si ay u falanqeyso natiijooyinka. Intaa waxaa dheer, falanqaynta geynta canary-ga waxaa lagu kabi karaa webhooks si loo sameeyo imtixaanada aqbalaadda, imtixaanada culeyska, iyo nooc kasta oo kale oo hubin ah.

Iyada oo ku saleysan hawlgelinta Kubernetes iyo, haddii loo baahdo, cabbir toosan ee pods-ka (HPA), Flagger wuxuu abuuraa qaybo shay (kubernetes geyn, adeegyada ClusterIP iyo adeegyada Istio ama App Mesh) si loo falanqeeyo oo loo hirgeliyo geynta kanary:

Xeeladaha geynta Kubernetes: rogid, dib u abuur, buluug/cagaaran, canary, mugdi (tijaabada A/B)

Hirgelinta wareegga xakamaynta (xakamaynta loop)Flagger wuxuu si tartiib tartiib ah ugu beddelaa taraafikada server-ka kanary-ga, isagoo isla markaa cabbiraya cabbirada waxqabadka muhiimka ah sida boqolleyda codsiyada HTTP ee guuleysta, celceliska muddada codsiga, iyo caafimaadka boobka. Iyada oo ku saleysan falanqaynta KPI ( Tusayaasha Waxqabadka Muhiimka ah), canary-gu wuu koraa ama wuu dumaa, natiijooyinka falanqaynta waxaa lagu daabacay Slack. Sharaxaada iyo muujinta habkan waxaa laga heli karaa maaddada Gaadhsiinta Horumarka leh ee Mesh App.

Xeeladaha geynta Kubernetes: rogid, dib u abuur, buluug/cagaaran, canary, mugdi (tijaabada A/B)

Madow (qarsoon) ama A/B la geeyo

Dirista qarsoodiga ah waa kala duwanaansho kale oo istiraatiijiyad canary ah (taas oo, habka, Flagger uu sidoo kale la shaqeyn karo). Farqiga u dhexeeya qarsoodiga iyo geynta kanary-ga ayaa ah in hawlgelinta qarsoodiga ah ay wax ka qabato dhinaca hore halkii ay ka ahaan lahayd dhabarka dambe sida geynta kanariyada.

Magaca kale ee loo dirayo kuwan waa imtixaanka A/B. Halkii laga samayn lahaa sifada cusub ee ay heli karaan dhammaan isticmaalayaasha, waxa la siiyaa qayb kooban oo iyaga ka mid ah. Caadi ahaan, isticmaalayaashani ma oga inay yihiin tijaabiyeyaal hormood ah (markaa ereyga "dirista qarsoodiga").

Isticmaalka furayaasha shaqada (rogid sifada) iyo aaladaha kale, waxaad la socon kartaa sida isticmaalayaashu ula falgalaan sifada cusub, haddii ay ku hawlan yihiin, ama haddii ay u arkaan is-dhexgalka cusub ee isticmaale mid jahawareer ah, iyo noocyada kale ee cabbirada.

Xeeladaha geynta Kubernetes: rogid, dib u abuur, buluug/cagaaran, canary, mugdi (tijaabada A/B)

Calanka iyo A/B geynta

Marka lagu daro dariiqinta miisaanka ku salaysan, Flagger waxa kale oo uu u wadi karaa taraafikada server-ka canary ee ku salaysan xuduudaha HTTP. Imtixaanka A/B, waxaad isticmaali kartaa madaxyada HTTP ama cookies si aad u beegsato qayb gaar ah oo isticmaalayaasha ah. Tani waxay si gaar ah wax ku ool u tahay kiiska codsiyada hore ee u baahan fadhiga ku xidhka serverka (xidhiidhka fadhiga). Macluumaad dheeraad ah ayaa laga heli karaa dukumeentiga calanka.

Qoraagu wuxuu muujinayaa mahadnaq Stefan Prodan, Injineer Weaveworks (iyo abuuraha Flagger), dhammaan qaababkan la yaabka leh ee loo dirayo.

PS ka turjumaan

Sidoo kale ka akhri boggayaga:

Source: www.habr.com

Add a comment