X'nafu dwar il-mikroservizzi

Bongu! Jisimni Vadim Madison, jien inmexxi l-iżvilupp tal-Pjattaforma tas-Sistema Avito. Intqal aktar minn darba kif aħna fil-kumpanija qed nimxu minn arkitettura monolitika għal waħda ta’ mikroservizzi. Wasal iż-żmien li naqsmu kif ittrasformajna l-infrastruttura tagħna biex niksbu l-aħjar mill-mikroservizzi u nevitaw lilna nfusna milli nitilfu fihom. Kif il-PaaS jgħinna hawn, kif issimplifikajna l-iskjerament u naqqasna l-ħolqien ta’ mikroservizz għal klikk waħda - kompli aqra. Mhux dak kollu li nikteb hawn taħt huwa implimentat bis-sħiħ f'Avito, xi wħud minnu huma kif niżviluppaw il-pjattaforma tagħna.

(U fl-aħħar ta 'dan l-artikolu, ser nitkellem dwar l-opportunità li nattendi seminar ta' tlett ijiem mill-espert tal-arkitettura tal-mikroservizz Chris Richardson).

X'nafu dwar il-mikroservizzi

Kif wasalna għall-mikroservizzi

Avito huwa wieħed mill-akbar siti klassifikati fid-dinja aktar minn 15-il miljun reklam ġdid huma ppubblikati fuqu; Il-backend tagħna jaċċetta aktar minn 20 elf talba kull sekonda. Bħalissa għandna diversi mijiet ta' mikroservizzi.

Ilna nibnu arkitettura ta' mikroservizz għal bosta snin issa. Kif eżattament - il-kollegi tagħna fid-dettall qal fis-sezzjoni tagħna f’RIT++ 2017. Fil-CodeFest 2017 (ara. video), Sergey Orlov u Mikhail Prokopchuk spjegaw fid-dettall għaliex kellna bżonn it-tranżizzjoni għal mikroservizzi u x'rwol kellu Kubernetes hawn. Ukoll, issa qed nagħmlu minn kollox biex innaqqsu l-ispejjeż tal-iskala li huma inerenti f'arkitettura bħal din.

Inizjalment, aħna ma ħloqniex ekosistema li tgħinna b'mod komprensiv niżviluppaw u nniedu mikroservizzi. Huma sempliċement ġabru soluzzjonijiet sensibbli ta 'sors miftuħ, nedewhom fid-dar u stiednu lill-iżviluppatur biex jittrattahom. Bħala riżultat, huwa mar għal tużżana postijiet (dashboards, servizzi interni), wara li sar aktar b'saħħtu fix-xewqa tiegħu li jaqta 'kodiċi bil-mod antik, f'monolith. Il-kulur aħdar fid-dijagrammi hawn taħt jindika x'jagħmel l-iżviluppatur b'xi mod jew ieħor b'idejh, u l-kulur isfar jindika awtomazzjoni.

X'nafu dwar il-mikroservizzi

Issa fl-utilità PaaS CLI, jinħoloq servizz ġdid bi kmand wieħed, u database ġdida hija miżjuda ma 'tnejn oħra u skjerata fl-Istadju.

X'nafu dwar il-mikroservizzi

Kif tegħleb l-era tal-"frammentazzjoni tal-mikroservizz"

B'arkitettura monolitika, għal raġunijiet ta 'konsistenza tal-bidliet fil-prodott, l-iżviluppaturi kienu sfurzati biex insemmu dak li kien qed jiġri mal-ġirien tagħhom. Meta taħdem fuq l-arkitettura l-ġdida, il-kuntesti tas-servizz ma jibqgħux jiddependu minn xulxin.

Barra minn hekk, biex arkitettura ta’ mikroservizz tkun effettiva, jeħtieġ li jiġu stabbiliti ħafna proċessi, jiġifieri:

• il-qtugħ tas-siġar;
• titlob traċċar (Jaeger);
• aggregazzjoni ta' żbalji (Sentry);
• status, messaġġi, avvenimenti minn Kubernetes (Event Stream Processing);
• limitu tat-tellieqa / circuit breaker (tista' tuża Hystrix);
• kontroll tal-konnettività tas-servizz (nużaw Netramesh);
• monitoraġġ (Grafana);
• assemblaġġ (TeamCity);
• komunikazzjoni u notifika (Slack, email);
• traċċar tal-kompiti; (Jira)
• tħejjija ta' dokumentazzjoni.

Biex niżguraw li s-sistema ma titlifx l-integrità tagħha u tibqa’ effettiva hekk kif tiskala, ħsibna mill-ġdid fl-organizzazzjoni tal-mikroservizzi f’Avito.

Kif nimmaniġġjaw il-mikroservizzi

Dan li ġej jgħin biex tiġi implimentata "politika tal-partit" unifikata fost ħafna mikroservizzi Avito:

  • il-qsim tal-infrastruttura f'saffi;
  • Kunċett ta' Pjattaforma bħala Servizz (PaaS);
  • tissorvelja dak kollu li jiġri bil-mikroservizzi.

Is-saffi tal-astrazzjoni tal-infrastruttura jinkludu tliet saffi. Ejja mmorru minn fuq għal isfel.

A. Fuq - malji tas-servizz. Għall-ewwel ippruvajna Istio, iżda rriżulta li juża wisq riżorsi, li jiswa wisq għall-volumi tagħna. Għalhekk, inġinier anzjan fit-tim tal-arkitettura Alexander Lukyanchenko żviluppa s-soluzzjoni tiegħu stess - Netramesh (disponibbli f’Open Source), li bħalissa nużaw fil-produzzjoni u li tikkonsma bosta drabi inqas riżorsi minn Istio (iżda ma tagħmilx dak kollu li jista’ jiftaħar bih Istio).
B. Medju - Kubernetes. Aħna niskjeraw u noperaw mikroservizzi fuqha.
C. Qiegħ - metall vojt. Aħna ma nużawx sħab jew affarijiet bħal OpenStack, iżda niddependu kompletament fuq il-metall vojt.

Is-saffi kollha huma kkombinati minn PaaS. U din il-pjattaforma, min-naħa tagħha, tikkonsisti fi tliet partijiet.

I. Ġeneraturi, ikkontrollat ​​permezz ta' utilità CLI. Hija hi li tgħin lill-iżviluppatur joħloq mikroservizz bil-mod it-tajjeb u bi sforz minimu.

II. Kollettur konsolidat b'kontroll tal-għodda kollha permezz ta' dashboard komuni.

III. Ħażna. Jgħaqqad ma 'schedulers li awtomatikament jistabbilixxu triggers għal azzjonijiet sinifikanti. Bis-saħħa ta’ sistema bħal din, ebda biċċa xogħol waħda ma tintilef sempliċement għax xi ħadd nesa li jwaqqaf biċċa xogħol f’Jira. Għal dan nużaw għodda interna msejħa Atlas.

X'nafu dwar il-mikroservizzi

L-implimentazzjoni tal-mikroservizzi f'Avito titwettaq ukoll skont skema waħda, li tissimplifika l-kontroll fuqhom f'kull stadju ta 'żvilupp u rilaxx.

Kif jaħdem pipeline standard ta' żvilupp ta' mikroservizzi?

B'mod ġenerali, il-katina tal-ħolqien tal-mikroservizzi tidher bħal din:

CLI-push → Integrazzjoni Kontinwa → Bake → Skjerament → Testijiet artifiċjali → Testijiet Kanarji → Ittestjar ta 'Squeeze → Produzzjoni → Manutenzjoni.

Ejja ngħaddu minnha eżattament f'din l-ordni.

CLI-push

• Il-ħolqien ta' mikroservizz.
Tħabtu għal żmien twil biex ngħallmu lil kull żviluppatur kif jagħmel il-mikroservizzi. Dan kien jinkludi l-kitba ta' struzzjonijiet dettaljati f'Confluence. Iżda l-iskemi nbidlu u ġew issupplimentati. Ir-riżultat huwa li deher ostakolu fil-bidu tal-vjaġġ: ħa ħafna aktar ħin biex inniedu mikroservizzi, u xorta waħda ħafna drabi nqalgħu problemi waqt il-ħolqien tagħhom.

Fl-aħħar, bnejna utilità CLI sempliċi li awtomatizza l-passi bażiċi meta noħolqu mikroservizz. Fil-fatt, tissostitwixxi l-ewwel git push. Hawn x'tagħmel eżattament.

— Joħloq servizz skont mudell — pass pass, fil-modalità “wizard”. Għandna mudelli għal-lingwi ewlenin ta 'programmar fil-backend ta' Avito: PHP, Golang u Python.

- Kmand wieħed kull darba juża ambjent għall-iżvilupp lokali fuq magna speċifika - Minikube huwa mniedi, Helm charts huma ġġenerati awtomatikament u mnedija f'kubernetes lokali.

— Tqabbad id-database meħtieġa. L-iżviluppatur m'għandux għalfejn ikun jaf l-IP, il-login u l-password biex jikseb aċċess għad-database li għandu bżonn - kemm jekk tkun lokalment, fl-Istadju, jew fil-produzzjoni. Barra minn hekk, id-database hija skjerata immedjatament f'konfigurazzjoni tolleranti għall-ħsarat u b'bilanċ.

— Huwa jwettaq assemblaġġ ħaj huwa stess. Ejja ngħidu li żviluppatur ikkoreġa xi ħaġa f'mikroservizz permezz tal-IDE tiegħu. L-utilità tara bidliet fis-sistema tal-fajls u, abbażi tagħhom, tibni mill-ġdid l-applikazzjoni (għal Golang) u terġa 'tibda. Għall-PHP, aħna sempliċement nibgħatu d-direttorju ġewwa l-kubu u hemm live-reload jinkiseb "awtomatikament".

— Jiġġenera awtotests. Fil-forma ta 'vojt, iżda pjuttost adattat għall-użu.

• Skjerament ta' mikroservizz.

L-iskjerament ta’ mikroservizz qabel kien ikun daqsxejn ta’ xogħol għalina. Dawn li ġejjin kienu meħtieġa:

I. Dockerfile.

II. Konfigurazzjoni.
III. Tabella tat-tmun, li hija stess hija ingombranti u tinkludi:

— iċ-ċarts infushom;
— mudelli;
— valuri speċifiċi li jqisu ambjenti differenti.

Neħħejna l-uġigħ tal-manifesti ta' Kubernetes mill-ġdid sabiex issa jiġu ġġenerati awtomatikament. Iżda l-aktar importanti, huma ssimplifikaw l-iskjerament sal-limitu. Minn issa 'l quddiem għandna Dockerfile, u l-iżviluppatur jikteb il-konfigurazzjoni kollha f'fajl app.toml wieħed qasir.

X'nafu dwar il-mikroservizzi

Iva, u f'app.toml innifsu hemm xi ħaġa x'tagħmel għal minuta. Aħna nispeċifikaw fejn u kemm-il kopji tas-servizz niġbru (fuq is-server tad-dev, fuq l-istadju, fil-produzzjoni), u nindikaw id-dipendenzi tiegħu. Avviż id-daqs tal-linja = "żgħir" fil-blokka [magna]. Dan huwa l-limitu li se jiġi allokat għas-servizz permezz ta 'Kubernetes.

Imbagħad, ibbażat fuq il-konfigurazzjoni, iċ-ċarts Helm kollha meħtieġa huma ġġenerati awtomatikament u jinħolqu konnessjonijiet mad-databases.

• Validazzjoni bażika. Tali verifiki huma wkoll awtomatizzati.
Ħtieġa li ssegwi:
— hemm Dockerfile;
— hemm app.toml;
— hemm dokumentazzjoni disponibbli?
— id-dipendenza hija fl-ordni?
— jekk ġewx stabbiliti regoli ta' twissija.
Sal-aħħar punt: is-sid tas-servizz innifsu jiddetermina liema metriċi tal-prodott għandu jimmonitorja.

• Tħejjija ta' dokumentazzjoni.
Għadha żona problematika. Jidher li huwa l-aktar ovvju, iżda fl-istess ħin huwa wkoll rekord "spiss minsi", u għalhekk ħolqa vulnerabbli fil-katina.
Huwa meħtieġ li jkun hemm dokumentazzjoni għal kull mikroservizz. Jinkludi l-blokki li ġejjin.

I. Deskrizzjoni qasira tas-servizz. Litteralment ftit sentenzi dwar x'tagħmel u għaliex hija meħtieġa.

II. Link tad-dijagramma tal-arkitettura. Huwa importanti li b'daqqa t'għajn lejha jkun faċli li tifhem, pereżempju, jekk qed tuża Redis għall-caching jew bħala l-maħżen tad-dejta prinċipali f'mod persistenti. F'Avito għalissa din hija link għal Confluence.

III. Runbook. Gwida qasira dwar il-bidu tas-servizz u l-intricacies tal-immaniġġjar tiegħu.

IV. FAQ, fejn ikun tajjeb li tantiċipa l-problemi li l-kollegi tiegħek jistgħu jiltaqgħu magħhom meta jaħdmu mas-servizz.

V. Deskrizzjoni ta' endpoints għall-API. Jekk f'daqqa waħda ma speċifikajtx id-destinazzjonijiet, il-kollegi li l-mikroservizzi tagħhom huma relatati ma' tiegħek kważi ċertament iħallsu għaliha. Issa nużaw Swagger u s-soluzzjoni tagħna msejħa fil-qosor għal dan.

VI. Tikketti. Jew markaturi li juru liema prodott, funzjonalità, jew diviżjoni strutturali tal-kumpanija jappartjeni s-servizz. Jgħinuk tifhem malajr, pereżempju, jekk tkunx qed tnaqqas il-funzjonalità li l-kollegi tiegħek ħarġu għall-istess unità tan-negozju ġimgħa ilu.

VII. Sid jew sidien tas-servizz. Fil-biċċa l-kbira tal-każijiet, dan - jew minnhom - jista 'jiġi ddeterminat awtomatikament bl-użu ta' PaaS, iżda biex inkunu fuq in-naħa sigura, neħtieġu li l-iżviluppatur jispeċifikahom manwalment.

Fl-aħħarnett, hija prattika tajba li tirrevedi d-dokumentazzjoni, simili għar-reviżjoni tal-kodiċi.

Integrazzjoni kontinwa

  • Tħejjija ta' repożitorji.
  • Ħolqien ta 'pipeline f'TeamCity.
  • Drittijiet ta' twaqqif.
  • Fittex għas-sidien tas-servizz. Hemm skema ibrida hawn - immarkar manwali u awtomazzjoni minima minn PaaS. Skema kompletament awtomatika tfalli meta s-servizzi jiġu trasferiti għall-appoġġ lil tim ta' żvilupp ieħor jew, pereżempju, jekk l-iżviluppatur tas-servizz jieqaf.
  • Reġistrazzjoni ta' servizz fl-Atlas (ara hawn fuq). Bis-sidien u d-dipendenzi kollha tagħha.
  • Iċċekkjar tal-migrazzjoni. Aħna niċċekkjaw jekk xi wieħed minnhom huwiex potenzjalment perikoluż. Pereżempju, f'waħda minnhom titfaċċa tabella ta 'tibdil jew xi ħaġa oħra li tista' tkisser il-kompatibilità tal-iskema tad-dejta bejn verżjonijiet differenti tas-servizz. Imbagħad il-migrazzjoni ma titwettaqx, iżda titqiegħed f'abbonament - il-PaaS għandu jindika lis-sid tas-servizz meta jkun sikur li jużah.

Aħmi

L-istadju li jmiss huwa s-servizzi tal-ippakkjar qabel l-iskjerament.

  • Bini tal-applikazzjoni. Skond il-klassiċi - f'immaġni Docker.
  • Ġenerazzjoni ta' charts Helm għas-servizz innifsu u riżorsi relatati. Inkluż għal databases u cache. Dawn jinħolqu awtomatikament skont il-konfigurazzjoni app.toml li ġiet iġġenerata fl-istadju CLI-push.
  • Ħolqien ta' biljetti għall-amministraturi biex jiftħu l-portijiet (meta meħtieġ).
  • It-tmexxija ta 'testijiet ta' l-unità u l-kalkolu tal-kopertura tal-kodiċi. Jekk il-kopertura tal-kodiċi hija taħt il-limitu speċifikat, allura x'aktarx is-servizz mhux se jmur aktar - għall-iskjerament. Jekk ikun f'xifer aċċettabbli, allura s-servizz jiġi assenjat koeffiċjent "pessimizzanti": imbagħad, jekk ma jkun hemm l-ebda titjib fl-indikatur maż-żmien, l-iżviluppatur jirċievi notifika li m'hemm l-ebda progress f'termini ta 'testijiet ( u trid issir xi ħaġa dwarha).
  • Kontabilità għal limitazzjonijiet tal-memorja u tas-CPU. Aħna prinċipalment niktbu mikroservizzi f'Golang u nħaddmuhom f'Kubernetes. Għalhekk sottili waħda assoċjata mal-partikolarità tal-lingwa Golang: b'mod awtomatiku, meta tibda, jintużaw il-qlub kollha fuq il-magna, jekk ma tissettjax b'mod espliċitu l-varjabbli GOMAXPROCS, u meta diversi servizzi bħal dawn jiġu mnedija fuq l-istess magna, jibdew li jikkompetu għar-riżorsi, jinterferixxu ma 'xulxin. Il-graffs hawn taħt juru kif jinbidel il-ħin tal-eżekuzzjoni jekk tħaddem l-applikazzjoni mingħajr kontenzjoni u fil-modalità tellieqa għar-riżorsi. (Is-sorsi tal-grafiċi huma hawn).

X'nafu dwar il-mikroservizzi

Ħin ta 'eżekuzzjoni, inqas huwa aħjar. Massimu: 643ms, minimu: 42ms. Ir-ritratt jista' jiġi kklikkjat.

X'nafu dwar il-mikroservizzi

Ħin għall-kirurġija, inqas huwa aħjar. Massimu: 14091 ns, minimu: 151 ns. Ir-ritratt jista' jiġi kklikkjat.

Fl-istadju tal-preparazzjoni tal-assemblaġġ, tista 'tissettja din il-varjabbli b'mod espliċitu jew tista' tuża l-librerija awtomaxprocs mill-ġuvini minn Uber.

Skjerament

• Iċċekkjar tal-konvenzjonijiet. Qabel ma tibda tagħti assemblaġġi tas-servizz lill-ambjenti intiżi tiegħek, trid tiċċekkja dan li ġej:
- Punti finali tal-API.
— Konformità tat-tweġibiet tal-endpoints tal-API mal-iskema.
— Format ta’ log.
— L-issettjar ta’ headers għal talbiet lis-servizz (bħalissa dan isir minn netramesh)
— L-issettjar tat-token tas-sid meta tibgħat messaġġi lill-bus tal-avveniment. Dan huwa meħtieġ biex tiġi rintraċċata l-konnettività tas-servizzi madwar ix-xarabank. Tista 'tibgħat kemm dejta idempotenti lix-xarabank, li ma żżidx il-konnettività tas-servizzi (li hija tajba), kif ukoll dejta tan-negozju li ssaħħaħ il-konnettività tas-servizzi (li hija ħażina ħafna!). U fil-punt meta din il-konnettività ssir kwistjoni, il-fehim min jikteb u jaqra l-karozza tal-linja jgħin biex is-servizzi jiġu separati sew.

Għad m'hemmx ħafna konvenzjonijiet f'Avito, iżda l-grupp tagħhom qed jespandi. Aktar ma dawn il-ftehimiet ikunu disponibbli f'forma li t-tim jista' jifhem u jifhem, iktar ikun faċli li tinżamm il-konsistenza bejn il-mikroservizzi.

Testijiet sintetiċi

• Ittestjar b'ċirku magħluq. Għal dan issa qed nużaw sors miftuħ Hoverfly.io. L-ewwel, jirreġistra t-tagħbija reali fuq is-servizz, imbagħad - biss f'ċirku magħluq - jimitaha.

• Ittestjar tal-istress. Nippruvaw inġibu s-servizzi kollha għall-aħjar prestazzjoni. U l-verżjonijiet kollha ta 'kull servizz għandhom ikunu soġġetti għal ittestjar tat-tagħbija - b'dan il-mod nistgħu nifhmu l-prestazzjoni attwali tas-servizz u d-differenza mal-verżjonijiet preċedenti tal-istess servizz. Jekk, wara aġġornament tas-servizz, il-prestazzjoni tagħha naqset b'darba u nofs, dan huwa sinjal ċar għas-sidien tiegħu: għandek bżonn tħaffer fil-kodiċi u tikkoreġi s-sitwazzjoni.
Aħna nużaw id-dejta miġbura, pereżempju, biex nimplimentaw b'mod korrett l-iskalar awtomatiku u, fl-aħħar, ġeneralment nifhmu kemm is-servizz huwa skalabbli.

Waqt l-ittestjar tat-tagħbija, aħna niċċekkjaw jekk il-konsum tar-riżorsi jilħaqx il-limiti stabbiliti. U aħna niffukaw primarjament fuq estremi.

a) Inħarsu lejn it-tagħbija totali.
- Żgħir wisq - x'aktarx xi ħaġa ma taħdimx xejn jekk it-tagħbija f'daqqa tinżel diversi drabi.
- Kbir wisq - ottimizzazzjoni meħtieġa.

b) Inħarsu lejn il-cutoff skont RPS.
Hawnhekk inħarsu lejn id-differenza bejn il-verżjoni attwali u dik preċedenti u l-kwantità totali. Pereżempju, jekk servizz jipproduċi 100 rps, allura huwa jew miktub ħażin, jew din hija l-ispeċifiċità tiegħu, iżda fi kwalunkwe każ, din hija raġuni biex tħares lejn is-servizz mill-qrib ħafna.
Jekk, għall-kuntrarju, hemm wisq RPS, allura forsi hemm xi tip ta 'bug u xi wħud mill-endpoints waqfu jeżegwixxu t-tagħbija, u xi waħda oħra hija sempliċement attivata return true;

Testijiet tal-Kanarji

Wara li ngħaddu mit-testijiet sintetiċi, nittestjaw il-mikroservizz fuq numru żgħir ta 'utenti. Nibdew bir-reqqa, b'sehem żgħir tal-udjenza maħsuba tas-servizz - inqas minn 0,1%. F'dan l-istadju, huwa importanti ħafna li l-metriċi tekniċi u tal-prodott korretti jiġu inklużi fil-monitoraġġ sabiex juru l-problema fis-servizz malajr kemm jista 'jkun. Il-ħin minimu għal test tal-kanarji huwa ta '5 minuti, dak ewlieni huwa ta' sagħtejn. Għal servizzi kumplessi, aħna nissettjaw il-ħin manwalment.
Ejja nanalizzaw:
— metriċi speċifiċi għal-lingwa, b'mod partikolari, ħaddiema php-fpm;
— żbalji f'Sentry;
— l-istatus tar-rispons;
— ħin tar-rispons, eżatt u medju;
— latenza;
— eċċezzjonijiet, ipproċessati u mhux immaniġġjati;
— metriċi tal-prodott.

Agħfas Ittestjar

L-Ittestjar tal-Agħfas jissejjaħ ukoll ittestjar ta '"għasir". L-isem tat-teknika ġie introdott f'Netflix. L-essenza tagħha hija li l-ewwel nimlew istanza waħda bi traffiku reali sal-punt tal-falliment u b'hekk nistabbilixxu l-limitu tagħha. Imbagħad inżidu eżempju ieħor u tagħbija dan il-par - għal darb'oħra sal-massimu; naraw il-limitu u d-delta tagħhom bl-ewwel "għafas". U għalhekk aħna ngħaqqdu każ wieħed kull darba u nikkalkulaw il-mudell tal-bidliet.
Id-dejta tat-test permezz ta '"għasir" tmur ukoll f'database ta' metriċi komuni, fejn aħna jew jarrikkixxu r-riżultati tat-tagħbija artifiċjali magħhom, jew saħansitra nissostitwixxu "sintetiċi" magħhom.

Produzzjoni

• Skala. Meta noħorġu servizz għall-produzzjoni, nissorveljaw kif tiskala. Fl-esperjenza tagħna, il-monitoraġġ tal-indikaturi tas-CPU biss huwa ineffettiv. L-iskala awtomatika bil-benchmarking RPS fil-forma pura tagħha taħdem, iżda biss għal ċerti servizzi, bħal streaming onlajn. Allura nħarsu l-ewwel lejn il-metriċi tal-prodott speċifiċi għall-applikazzjoni.

Bħala riżultat, meta niskala aħna nanalizzaw:
- Indikaturi tas-CPU u RAM,
— in-numru ta’ talbiet fil-kju,
— ħin tar-rispons,
— tbassir ibbażat fuq data storika akkumulata.

Meta niskala servizz, huwa importanti wkoll li tissorvelja d-dipendenzi tiegħu sabiex ma nslux l-ewwel servizz fil-katina, u dawk li jaċċessa jfallu taħt tagħbija. Biex nistabbilixxu tagħbija aċċettabbli għall-grupp kollu ta 'servizzi, inħarsu lejn id-dejta storika tas-servizz dipendenti "l-eqreb" (ibbażat fuq kombinazzjoni ta' indikaturi CPU u RAM, flimkien ma 'metriċi speċifiċi għall-app) u nqabbluhom mad-dejta storika tas-servizz ta 'inizjalizzazzjoni, u l-bqija matul il-"katina ta' dipendenza" ", minn fuq għal isfel.

Servizz

Wara li l-mikroservizz jitħaddem, nistgħu nwaħħallu triggers.

Hawn huma sitwazzjonijiet tipiċi li fihom iseħħu triggers.
— Migrazzjonijiet potenzjalment perikolużi misjuba.
— Ġew rilaxxati aġġornamenti tas-sigurtà.
— Is-servizz innifsu ilu ma ġiex aġġornat.
— It-tagħbija fuq is-servizz naqset b'mod notevoli jew xi wħud mill-metriċi tal-prodott tiegħu huma barra mill-firxa normali.
— Is-servizz m'għadux jissodisfa r-rekwiżiti l-ġodda tal-pjattaforma.

Xi wħud mill-kawżi huma responsabbli għall-istabbiltà tal-operat, xi wħud - bħala funzjoni tal-manutenzjoni tas-sistema - per eżempju, xi servizz ma ġiex skjerat għal żmien twil u l-immaġni bażi tagħha ma baqgħetx tgħaddi mill-kontrolli tas-sigurtà.

Daxxbord

Fil-qosor, id-dashboard huwa l-pannell tal-kontroll tal-PaaS kollu tagħna.

  • Punt uniku ta 'informazzjoni dwar is-servizz, b'dejta dwar il-kopertura tat-test tiegħu, in-numru ta' stampi tiegħu, in-numru ta 'kopji ta' produzzjoni, verżjonijiet, eċċ.
  • Għodda għall-iffiltrar tad-dejta skont is-servizzi u t-tikketti (markaturi tal-appartenenza għal unitajiet tan-negozju, funzjonalità tal-prodott, eċċ.)
  • Għodda għall-integrazzjoni ma 'għodod infrastrutturali għat-traċċar, il-qtugħ, u l-monitoraġġ.
  • Dokumentazzjoni ta' punt wieħed ta' servizz.
  • Perspettiva waħda tal-avvenimenti kollha fis-servizzi.

X'nafu dwar il-mikroservizzi
X'nafu dwar il-mikroservizzi
X'nafu dwar il-mikroservizzi
X'nafu dwar il-mikroservizzi

B'kollox

Qabel ma jintroduċi PaaS, żviluppatur ġdid jista' jqatta' diversi ġimgħat jifhem l-għodda kollha meħtieġa biex iniedi mikroservizz fil-produzzjoni: Kubernetes, Helm, il-karatteristiċi interni tagħna ta' TeamCity, twaqqif ta' konnessjonijiet ma' databases u caches b'mod tolleranti għall-ħsarat, eċċ. jieħu ftit sigħat biex taqra l-quickstart u toħloq is-servizz innifsu.

Jien tajt rapport dwar dan is-suġġett għal HighLoad++ 2018, tista 'tarah video и preżentazzjoni.

Bonus track għal dawk li jaqraw sal-aħħar

Aħna ta 'Avito qed norganizzaw taħriġ intern ta' tlett ijiem għall-iżviluppaturi minn Chris Richardson, espert fl-arkitettura tal-mikroservizz. Nixtiequ nagħtu l-opportunità li tipparteċipa fiha lil wieħed mill-qarrejja ta’ din il-kariga. Hawnhekk Il-programm ta' taħriġ ġie ppubblikat.

It-taħriġ se jsir mill-5 sas-7 ta’ Awwissu f’Moska. Dawn huma ġranet tax-xogħol li se jkunu okkupati għal kollox. L-ikla u t-taħriġ se jkunu fl-uffiċċju tagħna, u l-parteċipant magħżul iħallas għall-ivvjaġġar u l-akkomodazzjoni hu stess.

Tista' tapplika għall-parteċipazzjoni f'din il-formola google. Minnek - it-tweġiba għall-mistoqsija għaliex għandek bżonn tattendi t-taħriġ u informazzjoni dwar kif tikkuntattjak. Tweġiba bl-Ingliż, għax Chris jagħżel il-parteċipant li jattendi t-taħriġ hu stess.
Se nħabbru l-isem tal-parteċipant tat-taħriġ f'aġġornament għal din il-kariga u fuq in-netwerks soċjali Avito għall-iżviluppaturi (AvitoTech f' Facebook, Vkontakte, Twitter) mhux aktar tard mid-19 ta’ Lulju.

Sors: www.habr.com

Żid kumment