Istio Circuit Breaker: disabling faulty ntim

Hnub so dhau los thiab peb rov qab nrog peb qhov thib ob hauv Istio Service Mesh series.

Istio Circuit Breaker: disabling faulty ntim

Niaj hnub no lub ntsiab lus yog Circuit Breaker, uas txhais ua Lavxias teb sab hluav taws xob engineering txhais tau tias "circuit breaker", nyob rau hauv kev sib piv - "circuit breaker". Tsuas yog hauv Istio lub tshuab no tsis cuam tshuam lub luv luv lossis overloaded Circuit Court, tab sis faulty ntim.

Qhov no yuav tsum ua haujlwm zoo li cas

Thaum cov kev pabcuam microservices raug tswj los ntawm Kubernetes, piv txwv li hauv OpenShift platform, lawv cia li nce thiab nqis nyob ntawm qhov load. Vim tias microservices khiav hauv cov pods, tuaj yeem muaj ntau qhov piv txwv ntawm lub thawv microservice ntawm ib qho kawg, thiab Kubernetes yuav xa cov kev thov thiab thauj khoom sib npaug ntawm lawv. Thiab - qhov tseeb - txhua yam no yuav tsum ua haujlwm zoo kawg nkaus.

Peb nco ntsoov tias microservices me me thiab ephemeral. Ephemerality, uas ntawm no txhais tau tias qhov yooj yim ntawm kev tshwm sim thiab ploj mus, feem ntau underestimated. Kev yug me nyuam thiab kev tuag ntawm lwm qhov piv txwv ntawm microservice hauv lub plhaub taum yog qhov xav tau heev, OpenShift thiab Kubernetes tuav qhov zoo, thiab txhua yam ua haujlwm zoo - tab sis dua hauv txoj kev xav.

Nws ua li cas tiag

Tam sim no xav txog tias ib qho piv txwv tshwj xeeb ntawm microservice, uas yog, lub thawv, tau dhau los siv tsis tau: txawm tias nws tsis teb (kev ua yuam kev 503), lossis, qhov tsis zoo dua, nws teb, tab sis qeeb dhau. Hauv lwm lo lus, nws dhau los ua glitchy lossis tsis teb rau kev thov, tab sis nws tsis raug tshem tawm ntawm lub pas dej. Yuav ua li cas rau qhov no? Yuav rov sim dua? Kuv puas yuav tsum tshem nws tawm ntawm txoj kev routing? Thiab "yooj yim" txhais li cas - nws muaj pes tsawg tus lej, thiab leej twg txiav txim siab rau lawv? Tej zaum tsuas yog muab nws so thiab sim dua tom qab? Yog tias muaj, ntau npaum li cas tom qab?

Dab tsi yog Pool Ejection hauv Istio

Thiab ntawm no Istio tuaj rau kev cawm nrog nws cov Circuit Breaker tiv thaiv cov cav tov, uas ib ntus tshem tawm faulty ntim los ntawm routing thiab load balancing resource pas dej ua ke, siv lub pas dej ua ke Ejection txheej txheem.

Siv lub tswv yim nrhiav kom pom qhov tsis txaus ntseeg, Istio tshawb pom cov kab nkhaus uas tawm ntawm kab thiab tshem tawm lawv los ntawm cov peev txheej hauv lub sijhawm teev tseg, hu ua lub qhov rais pw tsaug zog.

Txhawm rau qhia tias qhov no ua haujlwm li cas hauv Kubernetes ntawm OpenShift platform, cia peb pib nrog lub screenshot ntawm ib txwm ua haujlwm microservices los ntawm qhov piv txwv hauv qhov chaw cia khoom. Red Hat Developer Demos. Ntawm no peb muaj ob lub pods, v1 thiab v2, txhua tus khiav ib lub thawv. Thaum Istio routing cov cai tsis raug siv, Kubernetes defaults kom sib npaug sib npaug puag ncig-robin routing:

Istio Circuit Breaker: disabling faulty ntim

Npaj txhij rau kev sib tsoo

Ua ntej ua Pas Dej Ejection, koj yuav tsum tsim txoj cai Istio routing. Cia peb hais tias peb xav faib kev thov ntawm cov pods nyob rau hauv ib tug 50/50 piv. Tsis tas li ntawd, peb yuav nce tus naj npawb ntawm v2 ntim ntawm ib mus rau ob, zoo li qhov no:

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

Tam sim no peb teeb tsa txoj cai routing kom cov tsheb khiav tawm ntawm cov pods hauv qhov sib piv 50/50.

Istio Circuit Breaker: disabling faulty ntim
Nov yog qhov txiaj ntsig ntawm txoj cai no zoo li:

Istio Circuit Breaker: disabling faulty ntim
Koj tuaj yeem pom qhov ua txhaum ntawm qhov screen no tsis yog 50/50, tab sis 14: 9, tab sis dhau sij hawm qhov xwm txheej yuav zoo dua.

Ua glitch

Tam sim no cia peb lov tes taw ib ntawm ob lub thawv v2 kom peb muaj ib lub thawv noj qab haus huv v1, ib lub thawv noj qab haus huv v2 thiab ib lub thawv faulty v2:

Istio Circuit Breaker: disabling faulty ntim

Kho qhov glitch

Yog li, peb muaj lub thawv faulty, thiab nws yog lub sijhawm rau Pas Dej Ejection. Siv lub config yooj yim heev, peb yuav tshem tawm lub thawv ua tsis tiav no los ntawm ib qho kev sib txuas lus rau 15 vib nas this hauv kev cia siab tias nws yuav rov qab mus rau lub xeev noj qab haus huv (xws li rov pib dua lossis rov ua haujlwm). Nov yog qhov kev teeb tsa no zoo li thiab cov txiaj ntsig ntawm nws txoj haujlwm:

Istio Circuit Breaker: disabling faulty ntim
Istio Circuit Breaker: disabling faulty ntim
Raws li koj tuaj yeem pom, lub thawv ua tsis tiav v2 tsis siv rau kev thov kev thov vim nws tau raug tshem tawm ntawm lub pas dej. Tab sis tom qab 15 vib nas this nws yuav rov qab mus rau lub pas dej. Qhov tseeb, peb tsuas yog qhia tias Pool Ejection ua haujlwm li cas.

Cia peb pib tsim architecture

Pas Dej Ejection, ua ke nrog Istio lub peev xwm saib xyuas, tso cai rau koj los pib tsim lub hauv paus rau kev hloov pauv cov ntim tsis raug los txo, yog tias tsis tshem tawm, poob qis thiab ua tsis tiav.
 
NASA muaj ib lub suab nrov - Kev Ua Tsis Taus Tsis Muaj Kev Xaiv, tus sau uas suav tias yog tus thawj coj davhlau Gene Kranz. Nws tuaj yeem txhais ua lus Lavxias raws li "Failure tsis yog ib qho kev xaiv," thiab lub ntsiab lus ntawm no yog tias txhua yam tuaj yeem ua haujlwm tau yog tias koj muaj lub siab xav txaus. Txawm li cas los xij, hauv lub neej tiag tiag, kev ua tsis tiav tsis yog tshwm sim xwb, lawv tsis tuaj yeem zam, txhua qhov chaw thiab hauv txhua yam. Thiab yuav ua li cas nrog lawv nyob rau hauv cov ntaub ntawv ntawm microservices? Hauv peb lub tswv yim, nws yog qhov zoo dua los tso siab tsis yog lub zog, tab sis ntawm lub peev xwm ntawm cov ntim khoom, Kubernetes, Red Hat OpenShiftthiab Istio.

Istio, raws li peb tau sau saum toj no, siv lub tswv yim ntawm Circuit Court breakers, uas tau ua pov thawj nws tus kheej zoo hauv lub ntiaj teb lub cev. Thiab ib yam li lub tshuab hluav taws xob hluav taws xob tua hluav taws xob tua qhov teeb meem ntawm lub voj voog, Istio's software Circuit Breaker qhib qhov kev sib txuas ntawm cov kwj ntawm kev thov thiab lub thawv teeb meem thaum muaj ib yam dab tsi tsis ncaj ncees lawm ntawm qhov kawg, piv txwv li, thaum lub server poob lossis pib. qeeb.

Tsis tas li ntawd, nyob rau hauv qhov thib ob tsuas muaj teeb meem ntau dua, txij li cov brakes ntawm ib lub thawv tsis tsuas yog ua rau muaj kev ncua sij hawm ntawm cov kev pabcuam nkag mus rau nws thiab, vim li ntawd, txo qhov kev ua tau zoo ntawm lub kaw lus tag nrho, tab sis kuj tsim rov ua dua. thov rau qhov kev pabcuam uas twb tau ua haujlwm qeeb, uas tsuas yog ua rau qhov xwm txheej hnyav dua.

Circuit Breaker hauv kev xav

Circuit Breaker yog ib lub npe uas tswj cov ntws ntawm kev thov mus rau qhov kawg. Thaum lub ntsiab lus no tsis ua haujlwm lossis, nyob ntawm qhov chaw teev tseg, pib qeeb, tus neeg sawv cev cuam tshuam qhov kev sib txuas nrog lub thawv. Tsheb thauj mus los yog tom qab ntawd xa mus rau lwm lub thawv, tsuas yog vim muaj kev sib npaug ntawm kev thauj khoom. Kev sib txuas tseem qhib rau lub qhov rais pw tsaug zog, hais ob feeb, thiab tom qab ntawd suav tias yog ib nrab qhib. Ib qho kev sim xa daim ntawv thov tom ntej txiav txim siab txog lub xeev txuas ntxiv. Yog tias txhua yam ua tau zoo nrog cov kev pabcuam, qhov kev sib txuas rov qab mus rau qhov ua haujlwm thiab rov ua dua. Yog tias tseem muaj ib yam dab tsi tsis ncaj ncees lawm nrog kev pabcuam, kev sib txuas raug txiav thiab lub qhov rais pw tsaug zog rov qhib dua. Nov yog qhov yooj yim Circuit Breaker lub xeev daim duab zoo li:

Istio Circuit Breaker: disabling faulty ntim
Nws yog ib qho tseem ceeb uas yuav tsum nco ntsoov ntawm no tias tag nrho cov no tshwm sim nyob rau theem ntawm, yog li hais, system architecture. Yog li ntawm qee lub sijhawm koj yuav tsum tau qhia koj cov ntawv thov ua haujlwm nrog Circuit Breaker, xws li muab tus nqi qub hauv cov lus teb lossis, yog tias ua tau, tsis quav ntsej txog qhov muaj nyob ntawm qhov kev pabcuam. Ib tug qauv bulkhead yog siv rau qhov no, tab sis nws yog dhau ntawm cov kab lus no.

Circuit Breaker hauv kev xyaum

Piv txwv li, peb yuav khiav ob versions ntawm peb qhov kev pom zoo microservice ntawm OpenShift. Version 1 yuav ua hauj lwm zoo, tab sis nyob rau hauv v2 peb yuav tsim nyob rau hauv ib tug ncua sij hawm mus simulate slowdowns ntawm lub server. Txhawm rau saib cov txiaj ntsig, siv lub cuab yeej siege:

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

Istio Circuit Breaker: disabling faulty ntim
Txhua yam zoo li ua haujlwm, tab sis tus nqi dab tsi? Thaum xub thawj siab ib muag, peb muaj 100% muaj, tab sis ua tib zoo saib - qhov siab tshaj plaws kev lag luam ntev yog ntau npaum li 12 vib nas this. Qhov no yog kom meej meej ib tug bottleneck thiab yuav tsum tau nthuav.

Txhawm rau ua qhov no, peb yuav siv Istio tshem tawm kev hu mus rau qeeb ntim. Qhov no yog qhov sib thooj config zoo li siv Circuit Breaker:

Istio Circuit Breaker: disabling faulty ntim
Cov kab kawg nrog httpMaxRequestsPerConnection parameter qhia tias kev sib txuas nrog yuav tsum raug txiav tawm thaum sim tsim lwm qhov - thib ob - kev sib txuas ntxiv rau qhov uas twb muaj lawm. Txij li thaum peb lub thawv simulates ib qho kev pabcuam qeeb, cov xwm txheej zoo li no yuav tshwm sim ib ntus, thiab tom qab ntawd Istio yuav rov qab ua qhov yuam kev 503, tab sis qhov no yog qhov kev tawm tsam yuav qhia:

Istio Circuit Breaker: disabling faulty ntim

OK, peb muaj Circuit Breaker, dab tsi ntxiv?

Yog li, peb tau siv lub tshuab kaw tsis siv neeg tsis kov lub hauv paus code ntawm cov kev pabcuam lawv tus kheej txhua. Siv Circuit Breaker thiab cov txheej txheem Pas Dej Ejection tau piav qhia saum toj no, peb tuaj yeem tshem cov thawv nres ntawm lub pas dej kom txog thaum lawv rov qab mus rau qhov qub, thiab tshawb xyuas lawv cov xwm txheej ntawm qhov ntau zaus - hauv peb qhov piv txwv, qhov no yog ob feeb (pw tsaug zogWindow parameter).

Nco ntsoov tias daim ntawv thov lub peev xwm los teb rau qhov yuam kev 503 tseem tau teeb tsa ntawm qhov chaws theem. Muaj ntau lub tswv yim rau kev siv Circuit Breaker, nyob ntawm qhov xwm txheej.

Hauv tsab ntawv tom ntej: Peb mam li tham txog kev taug qab thiab saib xyuas uas twb tau tsim los lossis yooj yim ntxiv rau Istio, nrog rau yuav ua li cas txhob txwm tshaj tawm qhov yuam kev rau hauv lub system.

Tau qhov twg los: www.hab.com

Ntxiv ib saib