Istio Circuit Breaker: enfim veso ki defo

Jou ferye yo fini epi nou tounen ak dezyèm pòs nou an nan seri Istio Service Mesh.

Istio Circuit Breaker: enfim veso ki defo

Sijè jodi a se Circuit Breaker, ki tradui nan jeni elektrik Ris vle di "disjoncteur sikwi", nan langaj komen - "disjoncteur sikwi". Se sèlman nan Istio machin sa a pa dekonekte yon kous kout oswa twò chaje, men resipyan defo.

Ki jan sa a ta dwe travay depreferans

Lè Kubernetes jere mikwosèvis yo, pou egzanp nan platfòm OpenShift la, yo otomatikman monte ak desann depann sou chaj la. Paske mikwosèvis yo kouri nan gous, ka gen plizyè ka nan yon mikwosèvis kontenè sou yon pwen final, ak Kubernetes pral dirije demann ak balans chaj ant yo. Ak - depreferans - tout bagay sa yo ta dwe travay parfe.

Nou sonje ke mikwosèvis yo piti ak efemèr. Efemèr, ki isit la vle di fasilite nan parèt ak disparèt, souvan souzèstime. Nesans ak lanmò yon lòt egzanp yon mikwosèvis nan yon gous se bagay ki byen espere, OpenShift ak Kubernetes okipe sa a byen, ak tout bagay ap travay byen - men ankò nan teyori.

Ki jan li vrèman travay

Koulye a, imajine ke yon egzanp espesifik nan yon mikwosèvis, se sa ki, yon veso, te vin pa ka itilize: swa li pa reponn (erè 503), oswa, sa ki pi dezagreyab, li reponn, men twò dousman. Nan lòt mo, li vin glitchy oswa li pa reponn a demann, men li pa otomatikman retire nan pisin lan. Ki sa ki ta dwe fè nan ka sa a? Pou reesye? Èske mwen ta dwe retire li nan konplo a routage? Ak ki sa "twò dousman" vle di - konbyen li nan nimewo, ak ki moun ki detèmine yo? Petèt jis bay li yon ti repo epi eseye ankò pita? Si wi, konbyen pita?

Ki sa ki ekspilsyon pisin nan Istio

Ak isit la Istio vini nan sekou a ak machin pwoteksyon Circuit Breaker li yo, ki tanporèman retire resipyan ki defo nan pisin resous routage ak balanse chaj, mete ann aplikasyon pwosedi ekspilsyon pisin lan.

Sèvi ak yon estrateji deteksyon outlier, Istio detekte gous koub ki soti nan liy epi retire yo nan pisin resous la pou yon kantite tan espesifik, yo rele yon fenèt dòmi.

Pou montre ki jan sa ap travay nan Kubernetes sou platfòm OpenShift la, ann kòmanse ak yon ekran mikrosèvis k ap travay nòmalman apati egzanp nan depo a. Red Hat Developer Demo. Isit la nou gen de gous, v1 ak v2, chak kouri yon veso. Lè règ wout Istio yo pa itilize, Kubernetes parfo pou ekilibre routage round-robin:

Istio Circuit Breaker: enfim veso ki defo

Lè w pare pou yon aksidan

Anvan ou fè Pool Ejection, ou bezwen kreye yon règ routage Istio. Ann di nou vle distribye demann ant gous nan yon rapò 50/50. Anplis de sa, nou pral ogmante kantite resipyan v2 soti nan youn a de, tankou sa a:

oc scale deployment recommendation-v2 --replicas=2 -n tutorial

Koulye a, nou mete yon règ routage pou trafik distribye ant gous nan yon rapò 50/50.

Istio Circuit Breaker: enfim veso ki defo
Men ki rezilta règ sa a sanble:

Istio Circuit Breaker: enfim veso ki defo
Ou ka jwenn fòt ak lefèt ke ekran sa a se pa 50/50, men 14:9, men sou tan sitiyasyon an ap amelyore.

Fè yon glitch

Koulye a, ann enfim youn nan de resipyan v2 yo pou nou gen yon resipyan v1 ki an sante, yon veso v2 ki an sante ak yon veso v2 ki defo:

Istio Circuit Breaker: enfim veso ki defo

Ranje glitch la

Se konsa, nou gen yon veso ki defo, epi li lè pou ekspilsyon pisin. Sèvi ak yon konfigirasyon trè senp, nou pral eskli veso sa a ki echwe nan nenpòt plan routage pou 15 segonn nan espwa ke li pral retounen nan yon eta an sante (swa rekòmanse oswa retabli pèfòmans). Men sa konfigirasyon sa a sanble ak rezilta travay li yo:

Istio Circuit Breaker: enfim veso ki defo
Istio Circuit Breaker: enfim veso ki defo
Kòm ou ka wè, veso v2 ki echwe a pa itilize ankò pou demann routage paske li te retire nan pisin lan. Men, apre 15 segonn li pral otomatikman retounen nan pisin lan. Aktyèlman, nou jis te montre kouman Pool Ejection travay.

Ann kòmanse bati achitekti

Pool Ejection, konbine avèk kapasite siveyans Istio a, pèmèt ou kòmanse bati yon kad pou ranplase otomatikman veso ki defo pou diminye, si se pa elimine, D 'ak echèk.

NASA gen yon sèl deviz byen fò - Echèk se pa yon opsyon, otè a ki konsidere kòm direktè vòl la. Gene Kranz. Li ka tradui nan Ris kòm "Echèk se pa yon opsyon," ak siyifikasyon an isit la se ke tout bagay ka fè travay si ou gen ase volonte. Sepandan, nan lavi reyèl, echèk pa jis rive, yo inevitab, toupatou ak nan tout bagay. Ak ki jan fè fas ak yo nan ka a nan mikwosèvis? Nan opinyon nou an, li se pi bon konte pa sou volonte, men sou kapasite yo nan resipyan, Kubernetes, Sou entènèt jwèt Red Hat OpenShift, Ak Istio.

Istio, jan nou te ekri pi wo a, aplike konsèp disjoncteurs, ki te pwouve tèt li byen nan mond fizik la. Epi menm jan yon disjoncteurs elèktrik fèmen yon seksyon pwoblèm nan yon sikwi, Istio a lojisyèl Circuit Breaker ouvè koneksyon ki genyen ant yon kouran demann ak yon veso pwoblèm lè gen yon bagay ki mal ak pwen final la, pou egzanp, lè sèvè a te fè aksidan oswa te kòmanse. ale dousman.

Anplis, nan dezyèm ka a gen sèlman plis pwoblèm, depi fren yo nan yon sèl veso pa sèlman lakòz yon kaskad nan reta nan sèvis yo jwenn aksè nan li epi, kòm yon rezilta, diminye pèfòmans nan sistèm nan kòm yon antye, men tou, jenere repete. demann nan yon sèvis ki deja ralanti, ki sèlman agrave sitiyasyon an.

Circuit Breaker nan teyori

Circuit Breaker se yon prokurasyon ki kontwole koule nan demann nan yon pwen final. Lè pwen sa a sispann travay oswa, depann sou anviwònman yo espesifye, kòmanse ralanti, prokurasyon an kraze koneksyon an ak veso a. Lè sa a, trafik yo redireksyon nan lòt resipyan, tou senpleman akòz balans chaj. Koneksyon an rete louvri pou yon fenèt dòmi bay, di de minit, ak Lè sa a, yo konsidere kòm mwatye louvri. Yon tantativ pou voye demann kap vini an detèmine eta a plis nan koneksyon an. Si tout bagay anfòm ak sèvis la, koneksyon an retounen nan kondisyon travay epi ankò vin fèmen. Si gen yon bagay mal toujou ak sèvis la, koneksyon an dekonekte epi fenèt dòmi an re-pèmèt. Men ki jan yon dyagram eta disjoncteurs senplifye sanble:

Istio Circuit Breaker: enfim veso ki defo
Li enpòtan sonje isit la ke tout bagay sa yo rive nan nivo a, se konsa pale, achitekti sistèm. Se konsa, nan kèk pwen ou pral oblije anseye aplikasyon ou yo travay ak Circuit Breaker, tankou bay yon valè default nan repons oswa, si sa posib, inyore egzistans lan nan sèvis la. Yo itilize yon modèl bulkhead pou sa, men li depase sijè ki abòde lan atik sa a.

Circuit Breaker nan pratik

Pou egzanp, nou pral kouri de vèsyon mikwosèvis rekòmandasyon nou an sou OpenShift. Vèsyon 1 ap travay byen, men nan v2 nou pral bati nan yon reta pou simulation ralentissement sou sèvè a. Pou wè rezilta yo, sèvi ak zouti a syèj:

siege -r 2 -c 20 -v customer-tutorial.$(minishift ip).nip.io

Istio Circuit Breaker: enfim veso ki defo
Tout bagay sanble travay, men a ki pri? Nan premye gade, nou gen 100% disponiblite, men pran yon gade pi pre - dire maksimòm tranzaksyon an se otan ke 12 segonn. Sa a se klèman yon kou boutèy e li bezwen elaji.

Pou fè sa, nou pral sèvi ak Istio pou elimine apèl pou ralanti veso yo. Men sa konfigirasyon ki koresponn lan sanble lè l sèvi avèk Circuit Breaker:

Istio Circuit Breaker: enfim veso ki defo
Dènye liy lan ak paramèt httpMaxRequestsPerConnection siyal ke koneksyon an ta dwe dekonekte lè w ap eseye kreye yon lòt - yon dezyèm - koneksyon anplis youn ki deja egziste. Depi veso nou an simule yon sèvis ralanti, sitiyasyon sa yo pral parèt detanzantan, ak Lè sa a, Istio pral retounen yon erè 503, men sa a se syèj la pral montre:

Istio Circuit Breaker: enfim veso ki defo

OK, nou gen Circuit Breaker, kisa kap vini?

Se konsa, nou aplike fèmen otomatik san yo pa manyen kòd sous sèvis yo tèt yo ditou. Sèvi ak Circuit Breaker ak pwosedi ekspilsyon pisin ki dekri pi wo a, nou ka retire veso fren yo nan pisin resous la jiskaske yo retounen nan nòmal, epi tcheke estati yo nan yon frekans espesifye - nan egzanp nou an, sa a se de minit (paramèt sleepWindow).

Remake byen ke kapasite yon aplikasyon pou reponn a yon erè 503 toujou fikse nan nivo kòd sous la. Gen anpil estrateji pou itilize Circuit Breaker, tou depann de sitiyasyon an.

Nan pwochen pòs la: Nou pral pale sou trase a ak siveyans ki deja entegre oswa fasil ajoute nan Istio, osi byen ke fason yo entansyonèlman prezante erè nan sistèm nan.

Sous: www.habr.com

Add nouvo kòmantè