Istio Circuit Breaker: kuletsa zotengera zolakwika

Tchuthi zatha, ndipo tabweranso ndi positi yathu yachiwiri pamndandanda wa Istio Service Mesh.

Istio Circuit Breaker: kuletsa zotengera zolakwika

Mutu wa lero ndi Circuit Breaker, womwe m'Chirasha umatanthauza "kusintha kwadzidzidzi" kapena, mowonjezereka, "wophwanya dera." Ku Istio, komabe, wophwanya dera uyu amachotsa zotengera zolakwika m'malo mofupikitsa kapena zolemetsa.

Momwe ziyenera kugwirira ntchito moyenera

Ma microservices akamayendetsedwa ndi Kubernetes, mwachitsanzo, mkati mwa nsanja ya OpenShift, amangokwera ndi kutsika kutengera katundu. Chifukwa ma microservices amayendera ma pod, maulendo angapo a microservice yokhala ndi zotengera amatha kukhala pamtunda umodzi, ndipo Kubernetes amayendetsa zopempha ndikuwongolera katundu pakati pawo. Ndipo moyenera, zonsezi ziyenera kugwira ntchito mwangwiro.

Tikumbukenso kuti microservices ndi ang'onoang'ono ndi ephemeral. Ephemerality, yomwe pano imatanthawuza kumasuka kwa kutuluka ndi kutayika, nthawi zambiri imakhala yochepa. Kubadwa ndi imfa ya chitsanzo chinanso cha microservice mu pod chikuyembekezeka kwathunthu; OpenShift ndi Kubernetes amachita bwino izi, ndipo zonse zimagwira ntchito modabwitsa, koma kachiwiri, ndizongoganiza chabe.

Momwe zimagwirira ntchito

Tsopano yerekezerani kuti chitsanzo cha microservice, kapena chidebe, chakhala chosagwiritsidwa ntchito: mwina sichikuyankha (zolakwika 503) kapena, choyipitsitsa, chikuyankha koma pang'onopang'ono. Mwa kuyankhula kwina, ndi glitching kapena osalabadira, koma izo sizimachotsedwa basi ku dziwe. Kodi muyenera kuchita chiyani pamenepa? Yesaninso? Chotsani panjira? Ndipo “kuchedwa kwambiri” kumatanthauza chiyani? Ndi ndalama zingati, ndipo ndani amatsimikiza zimenezo? Mwina muyenera kungopuma pang'ono ndikuyesanso nthawi ina? Ngati ndi choncho, mpaka liti?

Kodi Pool Ejection ku Istio ndi chiyani?

Apa ndipamene Istio imabwera ndi njira zake zodzitetezera ku Circuit Breaker, zomwe zimachotsa kwakanthawi zotengera zolakwika kuchokera pazida zowongolera ndikuwongolera potengera njira ya Pool Ejection.

Pogwiritsa ntchito njira yodziwira zinthu zakunja, Istio imazindikira ma pods omwe sakugwirizanitsa ndikuchotsa padziwe lazinthu kwa nthawi yodziwika, yotchedwa zenera lakugona.

Kuti muwonetse momwe izi zimagwirira ntchito ku Kubernetes pa nsanja ya OpenShift, tiyeni tiyambe ndi chithunzi cha ma microservice omwe nthawi zambiri amayendetsa kuchokera pachitsanzo chosungira. Red Hat Developer DemosPano tili ndi ma pods awiri, v1 ndi v2, iliyonse ikuyendetsa chidebe chimodzi. Malamulo oyendetsera Istio akapanda kugwiritsidwa ntchito, Kubernetes amasintha njira yozungulira yozungulira:

Istio Circuit Breaker: kuletsa zotengera zolakwika

Kukonzekera kulephera

Tisanachite Pool Ejection, tiyenera kupanga lamulo la Istio routing. Tiyerekeze kuti tikufuna kugawa zopempha pakati pa ma pod 50/50. Tiwonjezeranso kuchuluka kwa zotengera za v2 kuchokera pa chimodzi mpaka ziwiri, motere:

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

Tsopano timakhazikitsa lamulo loyendetsa magalimoto kuti magalimoto agawidwe pakati pa ma pod mu chiŵerengero cha 50/50.

Istio Circuit Breaker: kuletsa zotengera zolakwika
Ndipo izi ndi zomwe zotsatira za lamuloli zimawonekera:

Istio Circuit Breaker: kuletsa zotengera zolakwika
Wina atha kupeza cholakwika ndi mfundo yakuti chophimba ichi si 50/50, koma 14:9, koma zinthu zidzasintha pakapita nthawi.

Tikuyambitsa vuto

Tsopano tiyeni tiyimitse chimodzi mwa zotengera ziwiri za v2 kuti tikhale ndi chidebe chimodzi chathanzi cha v1, chidebe chimodzi chathanzi cha v2, ndi chidebe chimodzi chosweka cha v2:

Istio Circuit Breaker: kuletsa zotengera zolakwika

Tikukonza vuto

Chifukwa chake, tili ndi chidebe cholephera, ndipo nthawi yakwana yoti Pool Ejection. Pogwiritsa ntchito masinthidwe osavuta, tidzasiya chidebe cholephera ichi pamayendedwe onse kwa masekondi 15, ndikuyembekeza kuti chizichira chokha (mwina poyambitsanso kapena kubwezeretsanso magwiridwe antchito). Izi ndi momwe kasinthidwe amawonekera ndi zotsatira zake:

Istio Circuit Breaker: kuletsa zotengera zolakwika
Istio Circuit Breaker: kuletsa zotengera zolakwika
Monga mukuwonera, chidebe cholakwika cha v2 sichigwiritsidwanso ntchito pofunsira njira chifukwa chachotsedwa padziwe. Komabe, pambuyo masekondi 15, izo basi kubwerera ku dziwe. M'malo mwake, tangowonetsa momwe Pool Ejection imagwirira ntchito.

Tiyeni tiyambe kumanga zomangamanga

Pool Ejection, yophatikizidwa ndi kuthekera kowunika kwa Istio, imakulolani kuti muyambe kupanga chimango chosinthira zokha zotengera zomwe zidalephera kuchepetsa, ngati sizingathetse, kutsika ndi kulephera.

NASA ili ndi mawu akulu - Kulephera Si Njira, wolemba yemwe amawerengedwa kuti ndi wotsogolera ndege. Gene KranzIkhoza kumasuliridwa ku Chirasha monga "Kulephera sikusankha," ndipo lingaliro ndiloti chirichonse chingapangidwe kuti chigwire ntchito ndi mphamvu zokwanira. Komabe, m’moyo weniweni, zolephera sizimangochitika; nzosapeweka, kulikonse ndi mu chirichonse. Ndiye mumathana nawo bwanji pankhani ya microservices? M'malingaliro athu, ndi bwino kudalira osati kufunitsitsa, koma pa luso la zotengera. Kubernetes, Chipewa Chofiira OpenShiftndi Istio.

Istio, monga tanenera kale, imagwiritsa ntchito lingaliro lokhazikitsidwa bwino la ophwanya madera padziko lapansi. Monga momwe wophulitsira magetsi amadula gawo lovuta la dera, pulogalamu ya Istio yochokera ku Circuit Breaker imachotsa kulumikizana pakati pa mtsinje wa pempho ndi chidebe chovuta pamene china chake sichikuyenda bwino ndi mapeto, monga seva ikugwa kapena kuchedwa.

Komanso, chachiwiri, mavuto amangowonjezeka, chifukwa kuchepa kwa chidebe chimodzi sikungoyambitsa kuchedwa kwa mautumiki omwe amapeza ndipo, chifukwa chake, kuchepetsa ntchito ya dongosolo lonse, komanso kumapanga zopempha mobwerezabwereza ku utumiki wodekha, womwe umangowonjezera vutoli.

Circuit Breaker in Theory

Circuit Breaker ndi projekiti yomwe imayang'anira kutuluka kwa zopempha mpaka kumapeto. Pamene mapetowa asiya kugwira ntchito kapena, malingana ndi zoikidwiratu zomwe zakhazikitsidwa, zimayamba kuchepa, wothandizirayo amachotsa kugwirizana kwa chidebecho. Magalimoto amatumizidwa ku makontena ena, kuti angoyimitsa katundu. Kulumikizana kumakhalabe kotseguka kwa zenera latulo lodziwika, titi, mphindi ziwiri, ndiyeno limawonedwa ngati lotseguka. Kuyesera kutumiza pempho lotsatira kumatsimikizira mkhalidwe wotsatira wa kugwirizana. Ngati ntchitoyo ili bwino, kulumikizana kumabwerera kumalo ogwirira ntchito ndikutsekanso. Ngati ntchitoyo ikulepherabe, kugwirizanako kumachotsedwa ndipo zenera lakugona limayatsidwanso. Nachi chithunzi chosavuta cha kusintha kwa dziko la Circuit Breaker:

Istio Circuit Breaker: kuletsa zotengera zolakwika
Ndikofunika kuzindikira kuti zonsezi zimachitika pamlingo wa zomangamanga, kunena kwake. Chifukwa chake, nthawi ina, muyenera kuphunzitsa mapulogalamu anu kuti agwire ntchito ndi Circuit Breaker, mwachitsanzo, popereka mtengo wokhazikika poyankha kapena, ngati n'kotheka, kunyalanyaza kupezeka kwa ntchitoyo. Izi zimatheka pogwiritsa ntchito chitsanzo cha bulkhead, koma ndizopitirira malire a nkhaniyi.

Circuit Breaker in Practice

Pachitsanzo ichi, tidzayendetsa mitundu iwiri ya malingaliro athu a microservice pa OpenShift. Mtundu 1 umayenda bwino, koma mu v2 tiwonjezera kuchedwa kuti tiyesere kuchedwa kwa seva. Kuti muwone zotsatira, gwiritsani ntchito chida kuzinga:

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

Istio Circuit Breaker: kuletsa zotengera zolakwika
Chilichonse chikuwoneka kuti chikuyenda, koma pamtengo wotani? Poyang'ana koyamba, tili ndi kupezeka kwa 100%, koma yang'anani mozama - nthawi yayitali yochitapo kanthu ndi masekondi a 12. Mwachiwonekere ichi ndi cholepheretsa, ndipo chiyenera kuthetsedwa.

Kuti tichite izi, tigwiritsa ntchito Istio kuteteza mafoni kuti achepetse zotengera. Izi ndi momwe kasinthidwe kofananirako kakuwoneka pogwiritsa ntchito Circuit Breaker:

Istio Circuit Breaker: kuletsa zotengera zolakwika
Mzere womaliza wokhala ndi httpMaxRequestsPerConnection parameter umasonyeza kuti kugwirizana kuyenera kutsekedwa poyesa kupanga chiyanjano chachiwiri kuwonjezera pa chomwe chilipo. Popeza chidebe chathu chikuyerekeza ntchito pang'onopang'ono, izi zichitika nthawi ndi nthawi, kenako Istio ibweza cholakwika cha 503, ndipo izi ndi zomwe Siege iwonetsa:

Istio Circuit Breaker: kuletsa zotengera zolakwika

Chabwino, tili ndi Circuit Breaker, chotsatira ndi chiyani?

Chifukwa chake, takhazikitsa kuzimitsa popanda kukhudza magwero a mautumikiwo. Pogwiritsa ntchito Circuit Breaker ndi Pool Ejection njira yomwe tafotokozera pamwambapa, titha kuchotsa zotengera pang'onopang'ono kuchokera padziwe mpaka zitabwerera mwakale, ndikuwona momwe zilili pakanthawi kochepa - mu chitsanzo chathu, mphindi ziwiri zilizonse (parameter ya sleepWindow).

Chonde dziwani kuti kuthekera kwa pulogalamu kuyankha cholakwika cha 503 kumafotokozedwabe pamlingo wa magwero. Pali njira zingapo zothanirana ndi Circuit Breaker, kutengera momwe zinthu ziliri.

Mu positi yotsatira: Tidzayang'ana kutsata ndi kuwunika, zomwe zimamangidwa mu Istio kapena kuwonjezeredwa mosavuta, komanso momwe mungayambitsire zolakwika mudongosolo.

Source: www.habr.com

Gulani kuchititsa kodalirika kwamasamba okhala ndi chitetezo cha DDoS, ma seva a VPS VDS Gulani malo odalirika osungira mawebusayiti okhala ndi chitetezo cha DDoS, ma seva a VPS VDS | ProHoster