Yintoni esiyaziyo ngeemicroservices

Mholo! Igama lam nguVadim Madison, ndikhokela ukuphuhliswa kwe-Avito System Platform. Kuye kwathethwa ngaphezu kwesihlandlo esinye ukuba thina kwinkampani sihamba njani ukusuka kwi-architecture ye-monolithic ukuya kwi-microservices enye. Lixesha lokuba sabelane ngendlela esiziguqule ngayo izixhobo zethu ukuze sifumane okuninzi kwiinkonzo ezincinci kwaye sizithintele ekulahlekeni kuzo. Isinceda njani i-PaaS apha, indlela esenze lula ngayo ukuthunyelwa kunye nokunciphisa ukudalwa kwe-microservice ukuya kunqakrazo olunye-funda. Ayisiyiyo yonke into endiyibhala ngayo ngezantsi iphunyezwe ngokupheleleyo kwi-Avito, enye yindlela esiphuhlisa ngayo iqonga lethu.

(Kwaye ekupheleni kweli nqaku, ndiza kuthetha ngethuba lokuzimasa isemina yeentsuku ezintathu evela kwingcali yezokwakha i-microservice uChris Richardson).

Yintoni esiyaziyo ngeemicroservices

Sifike njani kwii-microservices

I-Avito yenye yezona ndawo zinkulu kakhulu emhlabeni; Umva wethu wamkela izicelo ezingaphezu kwamawaka angama-15 ngomzuzwana. Okwangoku sinamakhulu aliqela eenkonzo ezincinci.

Besisakha i-microservice architecture iminyaka eliqela ngoku. Njani ngokuchanekileyo - oogxa bethu ngokweenkcukacha uxelelwe kwicandelo lethu kwi-RIT ++ 2017. Kwi-CodeFest 2017 (bona. видео), USergey Orlov kunye noMikhail Prokopchuk bachaza ngokucacileyo ukuba kutheni sifuna utshintsho kwii-microservices kwaye yintoni indima eyenziwa nguKubernetes apha. Ewe, ngoku senza yonke into ukunciphisa iindleko zokulinganisa ezihambelana nolwakhiwo olunjalo.

Ekuqaleni, asizange siyile inkqubo yendalo enokusinceda ngokupheleleyo ukuba siphuhlise kwaye siqalise ii-microservices. Bavele baqokelela izisombululo zemithombo evulekileyo enengqondo, bazisungula ekhaya kwaye bamema umphuhlisi ukuba ajongane nazo. Ngenxa yoko, waya kwiindawo ezilishumi elinambini (iideshibhodi, iinkonzo zangaphakathi), emva koko waba namandla kumnqweno wakhe wokusika ikhowudi ngendlela endala, kwi-monolith. Umbala oluhlaza kwimizobo engezantsi ubonisa oko umthuthukisi akwenzayo ngenye indlela okanye enye ngezandla zakhe, kwaye umbala ophuzi ubonisa ukuzenzekelayo.

Yintoni esiyaziyo ngeemicroservices

Ngoku kwi-PaaS CLI utility, inkonzo entsha yenziwe ngomyalelo omnye, kwaye i-database entsha yongezwa kunye nezinye ezimbini kwaye ifakwe kwiSiteji.

Yintoni esiyaziyo ngeemicroservices

Uloyisa njani ixesha le "microservice fragmentation"

Ngokwakhiwa kwe-monolithic, ngenxa yokuhambelana kweenguqu kwimveliso, abaphuhlisi baphoqeleka ukuba baqikelele oko kwenzekayo kunye nabamelwane babo. Xa usebenza kwi-architecture entsha, iimeko zenkonzo azisaxhomekeke omnye komnye.

Ukongeza, ukuze uyilo lwe-microservice lusebenze, kufuneka kusekwe iinkqubo ezininzi, ezizezi:

• ukugawulwa kwemithi;
• cela ukukhangelwa (Jaeger);
• ukudityaniswa kwempazamo (Umlindi);
• iimeko, imiyalezo, iziganeko ezivela Kubernetes (Event Stream Processing);
• umda womdyarho / umaphuli wesekethe (ungasebenzisa iHystrix);
• ulawulo loqhagamshelwano lwenkonzo (sisebenzisa iNetramesh);
• ukubeka iliso (eGrafana);
• indibano (TeamCity);
• unxibelelwano kunye nesaziso (i-Slack, i-imeyile);
• ukulandelela umsebenzi; (Jira)
• ukulungiswa kwamaxwebhu.

Ukuqinisekisa ukuba inkqubo ayilahleki ingqibelelo kwaye ihlala isebenza njengoko ilinganisa, saphinda sacinga umbutho wee-microservices kwi-Avito.

Sizilawula njani iinkonzo ezincinci

Olu ncedo lulandelayo ukuphumeza "umgaqo-nkqubo weqela" phakathi kwee-microservices ezininzi ze-Avito:

  • ukwahlula iziseko zophuhliso ngokwamanqanaba;
  • Iqonga njengeNgcaciso yeNkonzo (PaaS);
  • ukubeka esweni yonke into eyenzekayo ngeemicroservices.

Iinfrastructure abstraction layers ibandakanya iileya ezintathu. Masisuke phezulu siye ezantsi.

A. Phezulu - i-mesh yenkonzo. Ekuqaleni sazama i-Istio, kodwa kwavela ukuba isebenzisa izixhobo ezininzi, ezibiza kakhulu kwimiqulu yethu. Ngoko ke, injineli ephezulu kwiqela lezokwakha u-Alexander Lukyanchenko wavelisa isisombululo sakhe - Netramesh (ifumaneka kwi-Open Source), esiyisebenzisayo ngoku kwimveliso kwaye idla ngokuphindaphindiweyo izixhobo ezingaphantsi kwe-Istio (kodwa ayenzi yonke into i-Istio enokuziqhayisa ngayo).
B. Phakathi - Kubernetes. Sithumela kwaye sisebenzise ii-microservices kuyo.
C. Ezantsi - isinyithi esingenanto. Asisebenzisi amafu okanye izinto ezifana ne-OpenStack, kodwa sithembele ngokupheleleyo kwisinyithi esingenanto.

Zonke iileya zidityaniswe yiPaaS. Kwaye eli qonga liqulethwe ngamacandelo amathathu.

I. Iijenereyitha, ilawulwa ngokusetyenziswa kwe-CLI. Nguye oncedisa umphuhlisi ukuba enze i-microservice ngendlela efanelekileyo kwaye ubuncinane bomzamo.

II. Umqokeleli odibeneyo ngolawulo lwazo zonke izixhobo ngokusebenzisa ideshibhodi eqhelekileyo.

III. Ugcino. Iqhagamshela nabacwangcisi abaseta ngokuzenzekelayo izichukumisi zezenzo ezibalulekileyo. Ndiyabulela kwinkqubo enjalo, akukho msebenzi omnye ophosiweyo ngenxa yokuba umntu ekhohliwe ukuseta umsebenzi eJira. Sisebenzisa isixhobo sangaphakathi esibizwa ngokuba yiAtlas kule nto.

Yintoni esiyaziyo ngeemicroservices

Ukuphunyezwa kwee-microservices kwi-Avito nayo iqhutywe ngokweskimu esisodwa, esenza lula ukulawula phezu kwabo kwinqanaba ngalinye lophuhliso kunye nokukhululwa.

Ingaba umbhobho wophuhliso lwenkonzo encinci usebenza njani?

Ngokubanzi, ikhonkco lokudala i-microservice lijongeka ngolu hlobo:

CLI-tyhala → Udibaniso oluqhubekayo → Bhaka → Beka → iimvavanyo ezenziweyo → iimvavanyo zaseCanary → Cola uvavanyo → Imveliso → Ugcino.

Masihambe ngayo ngokuchanekileyo ngolu hlobo.

CLI-tyhala

• Ukwenza inkonzo encinci.
Siye sasokola ixesha elide ukufundisa wonke umphuhlisi ukwenza iimicroservices. Oku kuquka ukubhala imiyalelo eneenkcukacha kwiNxulumano. Kodwa amacebo atshintshile kwaye ancediswa. Isiphumo kukuba i-bottleneck yavela ekuqaleni kohambo: kuthathe ixesha elininzi ukusungula ii-microservices, kwaye iingxaki zihlala zivela ngexesha lokudalwa kwazo.

Ekugqibeleni, sakhe into elula ye-CLI eyenza amanyathelo asisiseko xa usenza i-microservice. Ngapha koko, ithatha indawo yokuqala yegit push. Nantsi into ayenzayo kanye.

— Yila inkonzo ngokwethempleyithi — inyathelo nenyathelo, kwimo ye-“wizard”. Sinezifanekiso zeelwimi eziphambili zeprogram kwi-Avito backend: PHP, Golang kunye nePython.

- Umyalelo omnye ngexesha uhambisa indawo yophuhliso lwendawo kumatshini othile - iMinikube iqalisiwe, iitshathi zeHelm zenziwa ngokuzenzekelayo kwaye ziqaliswe kwi-kubernetes yendawo.

— Iqhagamshela uvimba weenkcukacha ofunekayo. Umphuhlisi akadingeki ukuba azi i-IP, ukungena kunye negama lokugqitha ukuze afumane ukufikelela kwisiseko sedatha ayifunayo - nokuba kusekhaya, kwiSigaba, okanye kwimveliso. Ngaphezu koko, i-database isetyenziswe ngokukhawuleza kwi-configuration yokunyamezela impazamo kunye nokulinganisa.

— Yenza indibano ephilayo ngokwayo. Masithi umphuhlisi ulungise into ethile kwi-microservice nge-IDE yakhe. Usetyenziso lubona utshintsho kwindlela yefayile kwaye, ngokusekwe kubo, yakha kwakhona isicelo (seGolang) kwaye iphinda iqale. Kwi-PHP, sithumela ngokulula isikhombisi ngaphakathi kwetyhubhu kwaye kukho ukulayishwa kwakhona bukhoma kufunyanwa "ngokuzenzekelayo".

-Yenza uvavanyo oluzenzekelayo. Ngendlela yezithuba, kodwa ilungele ukusetyenziswa.

• Ukusasazwa kweenkonzo ezincinci.

Ukuhambisa i-microservice ibikade ingumsebenzi onzima kuthi. Oku kulandelayo bekufuneka:

I. Dockerfile.

II. Qwalasela.
III. Itshathi yeHelm, yona ngokwayo inzima kwaye ibandakanya:

- iitshathi ngokwazo;
- iitemplates;
- amaxabiso athile athathela ingqalelo iindawo ezahlukeneyo.

Siyithathile intlungu ekusebenzeni kwakhona kwe-Kubernetes manifests ke ngoku ziveliswa ngokuzenzekelayo. Kodwa okona kubaluleke kakhulu, bakwenza lula ukuthunyelwa kumda. Ukususela ngoku sinayo i-Dockerfile, kwaye umphuhlisi ubhala yonke i-config kwifayile enye emfutshane ye-app.toml.

Yintoni esiyaziyo ngeemicroservices

Ewe, kwaye kwi-app.toml ngokwayo akukho nto yakwenza umzuzu. Sicacisa apho kwaye zingaphi iikopi zenkonzo yokunyusa (kwi-dev server, kwisiteji, kwimveliso), kwaye ibonise ukuxhomekeka kwayo. Qaphela ubungakanani bomgca = "encinci" kwibhlokhi [yenjini]. Lo ngumda oya kwabelwa inkonzo ngeKubernetes.

Emva koko, ngokusekwe kwi-config, zonke iitshathi ze-Helm eziyimfuneko zenziwe ngokuzenzekelayo kwaye uxhulumaniso kwi-database lwenziwa.

• Ukuqinisekiswa okusisiseko. Iitshekhi ezinjalo nazo ziyazenzekela.
Kufuneka ulandelele:
- ingaba ikhona iDockerfile;
- ingaba ikhona app.toml;
— ingaba akhona amaxwebhu akhoyo?
- ngaba ukuxhomekeka kulungelelwano?
— nokuba imigaqo yovuso isekiwe.
Ukuya kwinqanaba lokugqibela: umnini wenkonzo ngokwakhe unquma ukuba yeyiphi imveliso yeemetriki zokubeka iliso.

• Ukulungiswa kwamaxwebhu.
Iseyingxaki indawo. Kubonakala ngathi yeyona nto ibonakalayo, kodwa kwangaxeshanye nayo irekhodi "elihlala likhohliwe", kwaye ngoko ke ikhonkco elisengozini kwikhonkco.
Kuyimfuneko ukuba kubekho amaxwebhu kwimicroservice nganye. Ibandakanya ezi bloko zilandelayo.

I. Inkcazo emfutshane yenkonzo. Ngokwenyani izivakalisi ezimbalwa malunga nento eyenzayo kwaye kutheni ifuneka.

II. Ikhonkco lomzobo wezakhiwo. Kubalulekile ukuba ngokujonga ngokukhawuleza kuyo kulula ukuyiqonda, umzekelo, nokuba usebenzisa i-Redis kwi-caching okanye njengedatha yedatha ephambili kwimodi eqhubekayo. Kwi-Avito ngoku le ikhonkco kwi-Confluence.

III. Runbook. Isikhokelo esifutshane sokuqalisa inkonzo kunye nobunzima bokuphatha.

IV. FAQ, apho kuya kuba kuhle ukulindela iingxaki abalingane bakho abanokudibana nazo xa usebenza nenkonzo.

V. Inkcazo yesiphelo se-API. Ukuba ngequbuliso awukhange uchaze indawo ekuyiwa kuyo, oogxa babo abanee-microservices ezinxulumene nezakho ngokuqinisekileyo baya kuzihlawulela. Ngoku sisebenzisa iSwagger kwaye isisombululo sethu sibizwa ngokuba sifutshane kule nto.

VI. Iileyibhile. Okanye iziphawuli ezibonisa ukuba yeyiphi imveliso, ukusebenza, okanye ulwahlulo lwesakhiwo senkampani inkonzo ekuyo. Bakunceda ukuba uqonde ngokukhawuleza, umzekelo, ukuba ngaba usika umsebenzi owenziwe ngoogxa bakho kwiyunithi yeshishini elifanayo kwiveki ephelileyo.

VII. Umnini okanye abanini benkonzo. Kwiimeko ezininzi, yona-okanye yona-inokumiselwa ngokuzenzekelayo kusetyenziswa i-PaaS, kodwa ukuba ibe kwicala elikhuselekileyo, sifuna ukuba umphuhlisi azicacise ngesandla.

Ekugqibeleni, yinto efanelekileyo yokuphonononga amaxwebhu, afana nokuphononongwa kwekhowudi.

Ukuhlanganiswa okuqhubekayo

  • Ukulungisa iindawo zokugcina.
  • Ukudala umbhobho kwiTeamCity.
  • Ukumisela amalungelo.
  • Khangela abanini benkonzo. Kukho iskimu esixutyiweyo apha - ukumakisha ngesandla kunye ne-automation encinci evela kwi-PaaS. Iskimu esizenzekelayo esizenzekelayo asiphumeleli xa iinkonzo zigqithiselwa inkxaso kwelinye iqela lophuhliso okanye, umzekelo, ukuba umphuhlisi wenkonzo uyayeka.
  • Ukubhalisa inkonzo kwi-Atlas (jonga ngasentla). Ngabo bonke abanini bayo kunye nokuxhomekeka kwayo.
  • Ukujonga ukufuduka. Sijonga ukuba kukho naziphi na ezinokuba yingozi. Ngokomzekelo, kwelinye lazo itafile yokutshintsha okanye enye into enokuthi iphule ukuhambelana kwe-schema yedatha phakathi kweenguqulelo ezahlukeneyo zenkonzo. Emva koko ukufuduka akwenziwanga, kodwa kufakwe kwi-subscription - i-PaaS kufuneka ibonise umnini wenkonzo xa ikhuselekile ukuyisebenzisa.

Bhaka

Inqanaba elilandelayo kukupakisha iinkonzo ngaphambi kokuthunyelwa.

  • Ukwakha isicelo. Ngokweeklasikhi - kumfanekiso weDocker.
  • Isizukulwana seetshathi zeHelm zenkonzo ngokwayo kunye nezibonelelo ezinxulumeneyo. Kubandakanywa oovimba beenkcukacha kunye ne-cache. Zenziwa ngokuzenzekelayo ngokuhambelana ne-app.toml config eveliswe kwinqanaba le-CLI-push.
  • Ukwenza amatikiti ukuba abalawuli bavule amazibuko (xa kufuneka).
  • Ukuqhuba iimvavanyo zeyunithi nokubala ukugqunywa kwekhowudi. Ukuba ikhowudi yokhuseleko ingaphantsi komda ochaziweyo, ngoko ke inkonzo ayisayi kuhambela phambili - ukusasazwa. Ukuba kusemkhawulweni wokwamkeleka, ke inkonzo iya kunikwa i-coefficient "pessimizing": ke, ukuba akukho phuculo kwisalathisi ngokuhamba kwexesha, umphuhlisi uya kufumana isaziso sokuba akukho nkqubela phambili ngokweemvavanyo ( kwaye kukho into ekufuneka yenziwe ngayo).
  • Ukubalwa kwememori kunye nokunciphisa i-CPU. Sibhala ikakhulu iimicroservices eGolang kwaye siziqhube eKubernetes. Kungoko ubuqili obunye obunxulunyaniswa nokungaqhelekanga kolwimi lwesiGolang: ngokungagqibekanga, xa uqalwa, zonke iicores kumatshini zisetyenziswa, ukuba awucwangciswanga ukuguquguquka kweGOMAXPROCS, kwaye xa iinkonzo ezininzi ezinjalo zisungulwa kumatshini omnye, ziqala. ukukhuphisana ngezibonelelo, ukuphazamisana. Iigrafu ezingezantsi zibonisa ukuba ixesha lokwenziwa litshintsha njani ukuba uqhuba isicelo ngaphandle kwengxabano kunye nogqatso lwemo yezibonelelo. (Imithombo yeegrafu i apha).

Yintoni esiyaziyo ngeemicroservices

Ixesha lokwenziwa, ngaphantsi kungcono. Ubuninzi: 643ms, ubuncinane: 42ms. Ifoto iyacofa.

Yintoni esiyaziyo ngeemicroservices

Ixesha lotyando, ngaphantsi kungcono. Ubuninzi: 14091 ns, ubuncinane: 151 ns. Ifoto iyacofa.

Kwinqanaba lokulungiselela indibano, unokuseta oku kuguquguquka ngokucacileyo okanye ungasebenzisa ithala leencwadi automaxprocs kubafana bakwa-Uber.

Hambisa

• Ukuhlola iindibano. Ngaphambi kokuba uqalise ukuhambisa iindibano zenkonzo kwindawo ojolise kuyo, kufuneka ujonge oku kulandelayo:
- API endpoints.
- Ukuthotyelwa kwee-API endpoints iimpendulo kunye ne-schema.
— Ifomathi yelog.
- Ukuseta iiheader zezicelo kwinkonzo (ngoku oku kwenziwa yi-netramesh)
— Ukuseta ithokheni yomnini xa uthumela imiyalezo kwibhasi yomsitho. Oku kuyafuneka ukulandelela uqhagamshelo lweenkonzo kuyo yonke ibhasi. Ungathumela zombini idatha engabonakaliyo kwibhasi, enganyusi uxhulumaniso lweenkonzo (ezilungileyo), kunye nedatha yezoshishino eqinisa uxhulumaniso lweenkonzo (ezibi kakhulu!). Kwaye kwinqanaba xa olu xhulumaniso luba ngumcimbi, ukuqonda ukuba ngubani obhala kwaye ofunda ibhasi kunceda ukwahlula ngokufanelekileyo iinkonzo.

Azikho iindibano ezininzi kakhulu e-Avito okwangoku, kodwa ichibi labo liyanda. Okukhona izivumelwano ezinjalo zifumaneka ngendlela iqela elinokuthi liyiqonde kwaye liyiqonde, kulula ukugcina ukuhambelana phakathi kwee-microservices.

Iimvavanyo zokwenziwa

• Uvavanyo oluvaliweyo. Kule nto ngoku sisebenzisa umthombo ovulekileyo Hoverfly.io. Okokuqala, irekhoda umthwalo wangempela kwinkonzo, ngoko - nje kwi-loop evaliweyo - iyayixelisa.

• Uvavanyo loxinzelelo. Sizama ukuzisa zonke iinkonzo ekusebenzeni kakuhle. Kwaye zonke iinguqulelo zenkonzo nganye kufuneka zixhomekeke kuvavanyo lomthwalo - ngale ndlela sinokuqonda ukusebenza kwangoku kwenkonzo kunye nokwahlukana kunye neenguqulelo zangaphambili zenkonzo efanayo. Ukuba, emva kokuhlaziywa kwenkonzo, ukusebenza kwayo kwehla ngamaxesha kunye nesiqingatha, oku kuyimpawu ecacileyo kubanikazi bayo: kufuneka umbe kwikhowudi kwaye ulungise imeko.
Sisebenzisa idatha eqokelelweyo, umzekelo, ukuphumeza ngokuchanekileyo i-auto scaling kwaye, ekugqibeleni, ukuqonda ngokubanzi ukuba i-scalable service.

Ngexesha lokuvavanywa komthwalo, sijonga ukuba ukusetyenziswa kobutyebi kuyahlangabezana nemida emiselweyo. Kwaye sigxininisa ikakhulu kwizinto ezibaxiweyo.

a) Sijonga umthwalo opheleleyo.
- Incinci kakhulu - into enokwenzeka ukuba ayisebenzi kwaphela ukuba umthwalo wehla ngokukhawuleza amaxesha amaninzi.
-Kukhulu kakhulu - usetyenziso luyafuneka.

b) Sijonga i-cutoff ngokwe-RPS.
Apha sijonga umahluko phakathi kwenguqulelo yangoku kunye neyokuqala kunye nenani elipheleleyo. Ngokomzekelo, ukuba inkonzo ivelisa i-100 rps, ngoko ingabhalwanga kakuhle, okanye le yinto ekhethekileyo, kodwa kuyo nayiphi na imeko, esi sizathu sokujonga inkonzo ngokusondeleyo.
Ukuba, ngokuchaseneyo, zininzi kakhulu ii-RPS, ngoko ke mhlawumbi kukho uhlobo oluthile lwempazamo kwaye ezinye zeziphelo ziyekile ukwenza umthwalo wokuhlawula, kwaye enye iqhutywa ngokulula. return true;

Iimvavanyo zaseCanary

Emva kokuba siphumelele iimvavanyo zokwenziwa, sivavanya i-microservice kwinani elincinci labasebenzisi. Siqala ngononophelo, ngesabelo esincinci sabaphulaphuli ekujoliswe kubo - ngaphantsi kwe-0,1%. Ngeli nqanaba, kubaluleke kakhulu ukuba ii-metrics ezichanekileyo zobugcisa kunye nemveliso zibandakanyiwe esweni ukuze zibonise ingxaki kwinkonzo ngokukhawuleza. Ixesha elincinci lovavanyo lwe-canary yimizuzu emi-5, eyona nto iphambili ziiyure ezi-2. Kwiinkonzo ezinzima, sibeka ixesha ngesandla.
Makhe sihlalutye:
— iimetrics ezijolise kulwimi, ngakumbi, abasebenzi bephp-fpm;
- iimpazamo kwiSentry;
- iimeko zokuphendula;
- ixesha lokuphendula, ngqo kunye nomndilili;
- ukubambezeleka;
— izinto ezinxaxhileyo, zisetyenzwe kwaye aziphathwa;
- iimetriki zemveliso.

Cofa uvavanyo

Uvavanyo lokucudisa lukwabizwa ngokuba luvavanyo "lokucudisa". Igama lobuchule laziswa kwiNetflix. Ingundoqo yalo kukuba okokuqala sigcwalisa umzekelo omnye kunye ne-traffic yangempela ukuya kwindawo yokungaphumeleli kwaye ngoko ubeka umda wayo. Emva koko songeza omnye umzekelo kwaye silayishe esi sibini - kwakhona ukuya phezulu; sibona isilingi kunye nedelta kunye "nokucudisa" kokuqala. Kwaye ngoko sidibanisa umzekelo omnye ngexesha kwaye sibale iphethini yotshintsho.
Uvavanyo lwedatha “ngokucudisa” lukwaqukuqela kwiziko ledatha leemetrics eziqhelekileyo, apho sinokutyebisa iziphumo zomthwalo owenziweyo ngazo, okanye sitshintshe “i-synthetics” ngazo.

Imveliso

• Ukukala. Xa sikhupha inkonzo kwimveliso, sibeka iliso kwindlela elinganisa ngayo. Kumava ethu, ukubeka iliso kuphela izikhombisi ze-CPU akusebenzi. Ukulinganisa okuzenzekelayo kunye nebhentshi ye-RPS kwindlela yayo ecocekileyo isebenza, kodwa kuphela kwiinkonzo ezithile, ezinjengokusasazwa kwe-intanethi. Ke sijonga kuqala kwiimetrics zemveliso ezikhethekileyo.

Ngenxa yoko, xa silinganisa sihlalutya:
-Izikhombisi ze-CPU kunye ne-RAM,
- inani lezicelo emgceni,
- ixesha lokuphendula,
- Uqikelelo olusekwe kwidatha yembali eqokelelweyo.

Xa ulinganisa inkonzo, kubalulekile ukubeka esweni ukuxhomekeka kwayo ukuze singayilinganisi inkonzo yokuqala kwikhonkco, kwaye abo bafikelela kuyo bahluleka phantsi komthwalo. Ukuseka umthwalo owamkelekileyo kuyo yonke iqula leenkonzo, sijonga idatha yembali yenkonzo exhomekeke "ekufutshane" (ngokusekwe kwindibaniselwano ye-CPU kunye nezalathi ze-RAM, ezidityaniswe ne-app-specific metrics) kwaye sizithelekise nedatha yembali. yenkonzo yokuqalisa, njalo njalo kulo lonke "ikhonkco lokuxhomekeka" ", ukusuka phezulu ukuya ezantsi.

INkonzo

Emva kokuba i-microservice ifakwe ekusebenzeni, sinokuqhoboshela izinto ezibangela kuyo.

Nazi iimeko eziqhelekileyo apho iziphene zenzeka khona.
- Ukufuduka okunokuba yingozi kuchongiwe.
— Uhlaziyo lokhuseleko lukhutshiwe.
- Inkonzo ngokwayo ayizange ihlaziywe ixesha elide.
— Umthwalo kwinkonzo wehlile ngokuphawulekayo okanye ezinye zeemetrics zemveliso zingaphandle koluhlu oluqhelekileyo.
— Inkonzo ayisazanelisi iimfuno zeqonga elitsha.

Ezinye zezinto ezibangela uxanduva lokuzinza kokusebenza, ezinye - njengomsebenzi wokugcinwa kwenkqubo - umzekelo, enye inkonzo ayizange isetyenziswe ixesha elide kwaye umfanekiso wayo wesiseko uyekile ukugqithisa ukhuseleko.

Dashboard

Ngamafutshane, ideshibhodi yiphaneli yokulawula yePaaS yethu yonke.

  • Inqaku elilodwa lolwazi malunga nenkonzo, kunye nedatha kwi-coverage yayo yokuvavanya, inani lemifanekiso yalo, inani leekopi zokuvelisa, iinguqulelo, njl.
  • Isixhobo sokuhluza idatha ngeenkonzo kunye neelebhile (iziphawuli zokuba zeyunithi yeshishini, ukusebenza kwemveliso, njl.njl.)
  • Isixhobo sokudityaniswa nezixhobo zeziseko zophuhliso zokulandela umkhondo, ukugawulwa, kunye nokubeka iliso.
  • Indawo enye yoxwebhu lwenkonzo.
  • Indawo enye yokujonga yonke imisitho kuzo zonke iinkonzo.

Yintoni esiyaziyo ngeemicroservices
Yintoni esiyaziyo ngeemicroservices
Yintoni esiyaziyo ngeemicroservices
Yintoni esiyaziyo ngeemicroservices

Iyonke

Ngaphambi kokwazisa i-PaaS, umphuhlisi omtsha unokuchitha iiveki ezininzi eqonda zonke izixhobo eziyimfuneko ekusunguleni i-microservice kwimveliso: I-Kubernetes, i-Helm, iimpawu zethu zangaphakathi ze-TeamCity, ukuseta uqhagamshelo kugcino lwedatha kunye ne-cache ngendlela yokunyamezela impazamo, njl. kuthatha iiyure ezimbalwa ukufunda ukuqalisa ngokukhawuleza kwaye wenze inkonzo ngokwayo.

Ndinike ingxelo malunga nesi sihloko se-HighLoad ++ 2018, unokubukela видео и intetho.

umkhondo bonus kwabo bafunda ukuya ekupheleni

Thina kwi-Avito siququzelela uqeqesho lwangaphakathi lweentsuku ezintathu kubaphuhlisi abavela UChris Richardson, ingcali kwi-architecture microservice. Singathanda ukunika ithuba lokuthatha inxaxheba kuyo komnye wabafundi besi sithuba. kuyinto Inkqubo yoqeqesho ithunyelwe.

Uqeqesho luya kwenzeka ngo-Agasti 5 ukuya kwi-7 eMoscow. Ezi ziintsuku zokusebenza eziya kuxatyiswa ngokupheleleyo. Isidlo sasemini kunye noqeqesho luya kuba kwiofisi yethu, kwaye umthathi-nxaxheba okhethiweyo uya kuhlawula uhambo kunye nendawo yokuhlala ngokwakhe.

Ungafaka isicelo sokuthatha inxaxheba kule fomu kagoogle. Isuka kuwe - impendulo yombuzo wokuba kutheni kufuneka uye kuqeqesho kunye nolwazi malunga nendlela yokunxibelelana nawe. Phendula ngesiNgesi, kuba uChris uya kukhetha umthathi-nxaxheba oya kuzimasa ngokwakhe uqeqesho.
Siza kuvakalisa igama lomthathi-nxaxheba woqeqesho ekuhlaziyweni kwesi sithuba kunye nakwiinethiwekhi zentlalo Avito kubaphuhlisi (AvitoTech in Facebook, Vkontakte, Twitter) ungadlulanga umhla we-19 kaJulayi.

umthombo: www.habr.com

Yongeza izimvo