Waxay ka dhigan tahay index.html, Codsashada hal nooc oo ah faylasha taagan, waxaa u diri kara miisaamiyaha culeyska si uu u helo qayb ka duwan, halkaas oo, sababo muuqda, faylasha noocaas ah aysan jirin. Sidaa darteed, si codsigu u shaqeeyo, waxaan u baahanahay inaan dejino xaddidaad: "isla nooca arjiga u adeegay index.html waa inuu u adeegaa codsiyada xiga".
Waxaan halkaas ku gaari doonaa dheellitirka xashiish-ku-saleysan ee joogtada ah (Hash Load dheelitirka Joogta ah). Xaaladdan oo kale Codsiyada isla macmiilka ayaa loo diraa isla tusaale dhabarka dambe, kaas oo hanti horay loo sii qeexay - tusaale ahaan, madax HTTP ah. Waxaa la hirgaliyay iyadoo la isticmaalayo DestinationRules.
Xeerarka goobta
Kadib Adeegga Virtual codsi u diray adeega la rabo, anagoo adeegsanayna DestinationRules waxaan qeexi karnaa siyaasadaha lagu dabaqi doono taraafikada tusaale ahaan adeegan:
Maareynta taraafikada oo leh ilaha Istio
tacliiq: Saamaynta ilaha Istio ee taraafikada shabakada ayaa halkan lagu soo bandhigay si ay fududahay in la fahmo. Si sax ah loo dhigo, go'aanka tusaale ahaan codsiga loo dirayo waxaa sameeya Ergeyga ku jira Kadinka Ingress Gateway ee lagu habeeyay CRD.
Xeerarka Meesha, waxaan u habeyn karnaa isku dheelitirka culeyska si aan u isticmaalno xashiish joogto ah oo aan hubinno in adeeg isku mid ah uu uga jawaabo isticmaale isku mid ah. Qaabaynta soo socota ayaa kuu ogolaanaysa inaad tan gaadho (xeer meel-sa-frontend.yaml):
tacliiq: Si aad ugu darto qiimaha kala duwan ee madaxa oo aad si toos ah u tijaabiso natiijooyinka browserka, waxaad isticmaali kartaa kordhintan Chrome (ama taas oo leh for Firefox - qiyaastii. turjumi.).
Hooska ("gashaanti") ama Muraayadaha ("muraayad") loo isticmaalo kiisaska aan rabno in aan tijaabino isbeddelka wax soo saarka iyada oo aan saameyn ku yeelan isticmaalayaasha dhamaadka: si tan loo sameeyo, waxaan nuqul ka dhiganeynaa ("muraayada") codsiyada tusaale ahaan meesha isbeddellada la rabo la sameeyay, oo fiiri natiijooyinka. Si fudud loo dhigo, tani waa marka saaxiibkaa uu doorto arrinta ugu muhiimsan oo uu sameeyo codsi jiidis ah oo ah buro weyn oo wasakh ah oo aan qofna si dhab ah u eegi karin.
Si loo tijaabiyo dhacdadan ficil ahaan, aynu abuurno tusaale labaad oo ah SA-Logic oo leh cayayaanka (buggy) adoo fulinaya amarkan soo socda:
$ kubectl apply -f resource-manifests/kube/shadowing/sa-logic-service-buggy.yaml
deployment.extensions/sa-logic-buggy created
Oo hadda aynu maamulno amarka si aan u hubinno in dhammaan xaaladaha ay la socdaan app=sa-logic Waxay kaloo leeyihiin calaamado leh noocyada u dhigma:
Martigeliyaha (host) qeexaya in sharcigani uu quseeyo kaliya kiisaska marka dariiqa loo maro adeega sa-logic;
Ciwaanka (name) qayb-hoosaadyo ayaa la isticmaalaa marka la marinayo xaaladaha hoose;
Summada (label) qeexayaa lamaanaha qiimaha muhiimka ah ee ay tahay in tusaalooyinku iswaafaqaan si ay qayb uga noqdaan qaybta hoose.
Ku codso qaabaynta amarkan soo socda:
$ kubectl apply -f resource-manifests/istio/shadowing/sa-logic-subsets-destinationrule.yaml
destinationrule.networking.istio.io/sa-logic created
Hadda oo qayb-hoosaadyada la qeexay, waan sii socon karnaa oo aan habayn karnaa Adeegga VirtualService si aan ugu dabaqno xeerarka codsiyada sa-logic si ay:
Sharaxaad loogama baahna halkan, markaa aan aragno ficil ahaan:
$ kubectl apply -f resource-manifests/istio/shadowing/sa-logic-subsets-shadowing-vs.yaml
virtualservice.networking.istio.io/sa-logic created
Aynu ku darno culayska anagoo wacaya amarka soo socda:
$ while true; do curl -v http://$EXTERNAL_IP/sentiment
-H "Content-type: application/json"
-d '{"sentence": "I love yogobella"}';
sleep .8; done
Aynu eegno natiijooyinka Grafana, halkaas oo aad ku arki karto in nooca cayayaanka leh (buggy) waxay keentaa guuldarada ~ 60% codsiyada, laakiin guuldarrooyinkan midkoodna ma saameeyo isticmaalayaasha dhamaadka maadaama ay uga jawaabaan adeeg socda.
Jawaabaha lagu guulaystay ee noocyada kala duwan ee adeega sa-logic
Halkan waxaan markii hore ku aragnay sida VirtualService loogu dabaqo Ergeyada adeegyadeena: goorma sa-web-app wuxuu codsi u sameeyaa sa-logic, waxa ay dhex martaa Ergeyga sidecar, kaas oo - iyada oo loo marayo VirtualService - loo habeeyey in uu codsiga u maro qaybta v1 oo uu muraayadda codsiga u gudbiyo qaybta v2 ee adeegga. sa-logic.
Waan ogahay, waxaa laga yaabaa inaad horeba u malaynayso in Adeegyada Virtual ay fudud yihiin. Qaybta soo socota, waxaan ku ballaarin doonaa taas anagoo nidhaahna waxay sidoo kale runtii aad u fiican yihiin.
Soo-bandhigista Canary
Deployment Canary waa habka loo soo rogo nooc cusub oo arji ah tiro yar oo isticmaaleyaal ah. Waxaa loo isticmaalaa in lagu hubiyo in aysan jirin wax dhibaato ah oo la sii daayo oo kaliya ka dib, mar horeba kalsooni ku qaba tayada (sii daynta), u qaybi isticmaalayaasha kale.ΠΎdhagaystayaal waaweyn.
Si loo muujiyo duubista kanary-ga, waxaanu sii wadi doonaa la shaqaynta qayb-hoosaad buggy Ρ sa-logic.
Yaynaan wakhtiga ku lumin waxyaabaha yaryar oo isla markiiba u dir 20% isticmaalayaasha nooca leh cayayaanka (tani waxay matali doontaa soo bixitaankeena canary), iyo 80% soo hadhay ee adeega caadiga ah. Si tan loo sameeyo, isticmaal adeegga VirtualService ee soo socda (sa-logic-subsets-canary-vs.yaml):
... oo waxaan isla markiiba arki doonnaa in codsiyada qaar ay horseedaan guuldarro:
$ while true; do
curl -i http://$EXTERNAL_IP/sentiment
-H "Content-type: application/json"
-d '{"sentence": "I love yogobella"}'
--silent -w "Time: %{time_total}s t Status: %{http_code}n"
-o /dev/null; sleep .1; done
Time: 0.153075s Status: 200
Time: 0.137581s Status: 200
Time: 0.139345s Status: 200
Time: 30.291806s Status: 500
Adeegyada Virtual waxay awood u siinayaan soo-bandhigidda kanariyada: Xaaladdan oo kale, waxaanu ku soo koobnay saamaynta suurtagalka ah ee arrimaha 20% saldhigga isticmaalaha. Cajiib! Hadda, xaalad kasta marka aynaan hubin koodkayaga (si kale haddii loo dhigo - had iyo jeer...), waxaan isticmaali karnaa muraayadaha iyo duubista canary.
Waqtigoodu iyo isku day
Laakiin dhiqlaha had iyo jeer kuma dhammaadaan koodka. Liiska ku jira"8 Fikradaha khaldan ee ku saabsan Xisaabinta La Qaybiyay"Marka ugu horeysa waa aaminsanaanta khaldan ee ah "shabakadu waa mid la isku halayn karo." Xaqiiqda shabakada ma la isku halayn karo, sababtaas awgeed waxaan u baahanahay waqti-gabo (waqti dhammaatay) oo isku day (isku day).
Muujinta waxaan sii wadi doonaa isticmaalka nooca dhibaatada sa-logic (buggy), waxaanan ku ekaan doonaa kalsoonida aan la isku halleyn karin ee shabakada oo leh fashilaad aan kala sooc lahayn.
U oggolow adeeggayaga kutaannada leh 1/3 fursad uu ku qaadanayo waqti dheer si looga jawaabo, 1/3 fursad uu ku dhammeeyo Khaladka Server-ka Gudaha, iyo 1/3 fursad uu si guul leh ugu soo celiyo bogga.
Si loo yareeyo saameynta dhibaatooyinkan oo kale oo aan nolosha uga dhigno mid u wanaagsan isticmaalayaasha, waxaan awoodnaa:
ku dar waqti-dhaaf ah haddii adeeggu uu qaato in ka badan 8 ilbiriqsi si uu uga jawaabo,
Wakhtiga kama dambaysta ah ee codsiga waxa loo dejiyay 8 sekan;
Codsiyada waxaa dib loo tijaabiyay 3 jeer;
Isku day kastana waxaa loo arkaa mid aan guulaysan haddii wakhtiga jawaabta uu ka badan yahay 3 ilbiriqsi.
Tani waa wanaajinta sababtoo ah isticmaaluhu ma sugi doono wax ka badan 8 ilbiriqsi waxaanan sameyn doonaa seddex isku day oo cusub si aan jawaab u helno haddii ay dhacdo guuldarrooyin, kordhinta fursadda jawaab celinta guusha leh.
Dalbo qaabaynta la cusboonaysiiyay ee leh amarka soo socda:
Waxaan ka hadlaynaa laba qaab oo muhiim ah oo ku jira qaab-dhismeedka microservice-ka kaas oo kuu oggolaanaya inaad gaarto dib-u-soo-kabasho (is-bogsiin) adeegyada.
Qalabka wareega("circuit breaker") loo isticmaalo in lagu joojiyo codsiyada ku imanaya tusaale ahaan adeegga loo arko mid aan caafimaad qabin oo dib loo soo celiyo iyada oo codsiyada macmiilka loo wareejinayo xaaladaha caafimaadka qaba ee adeeggaas (taas oo kordhisa boqolkiiba jawaabaha guuleysta). (Fiiro gaar ah: Tilmaan faahfaahsan oo ka sii faahfaahsan qaabka ayaa la heli karaa, tusaale ahaan, halkan.)
Bulkhead("qayb") waxay ka saartaa guuldarrooyinka adeegga inay saameeyaan nidaamka oo dhan. Tusaale ahaan, Adeegga B wuu jabay oo adeeg kale (macaamilka Adeegga B) ayaa codsi u diraya Adeegga B, taasoo keenaysa inuu daalo balliga dunta oo aanu awoodin inuu u adeego codsiyada kale (xitaa haddii aanay ka iman Adeegga B). (Fiiro gaar ah: Tilmaan faahfaahsan oo ka sii faahfaahsan qaabka ayaa la heli karaa, tusaale ahaan, halkan.)
Waxaan ka tagi doonaa tafaasiisha fulinta qaababkan sababtoo ah way fududahay in la helo dukumeenti rasmi ah, iyo sidoo kale waxaan runtii rabaa inaan muujiyo aqoonsiga iyo oggolaanshaha, kaas oo looga hadli doono qaybta xigta ee maqaalka.