Inona no fantatsika momba ny microservices

Salama! Vadim Madison no anarako, mitarika ny fampandrosoana ny Avito System Platform aho. Ny fomba fifindrantsika ao amin'ny orinasa avy amin'ny maritrano monolithic mankany amin'ny microservice dia efa voalaza imbetsaka. Fotoana izao hifampizarana ny fomba nanovantsika ny fotodrafitrasa mba hahazoana tombony betsaka amin'ny microservices fa tsy ho very ao anatin'izany. Ahoana no anampian'ny PaaS antsika eto, ny fomba nanatsorana ny fanaparitahana ary nampihena ny famoronana microservice amin'ny tsindry iray - vakio. Tsy izay rehetra soratako etsy ambany no ampiharina tanteraka ao amin'ny Avito, anisan'izany ny fampivelarana ny sehatra misy antsika.

(Ary amin'ny faran'ity lahatsoratra ity dia hiresaka momba ny fahafahana miditra amin'ny seminera telo andro avy amin'ny manam-pahaizana momba ny maritrano microservice, Chris Richardson aho).

Inona no fantatsika momba ny microservices

Ahoana no nahatongavanay tamin'ny microservices

Avito dia iray amin'ireo dokambarotra lehibe indrindra eran-tany, mamoaka doka vaovao maherin'ny 15 tapitrisa isan'andro. Ny backend anay dia manaiky fangatahana mihoatra ny 20 arivo isan-tsegondra. Ankehitriny dia manana microservice an-jatony izahay.

Nanangana maritrano microservice izahay nandritra ny herintaona mahery. Ahoana marina - ireo mpiara-miasa aminay amin'ny antsipiriany nilaza ao amin'ny fizaranay ao amin'ny RIT++ 2017. Ao amin'ny CodeFest 2017 (jereo Π²ΠΈΠ΄Π΅ΠΎ), Sergey Orlov sy Mikhail Prokopchuk dia nanazava tamin'ny antsipiriany ny antony nilanantsika ny tetezamita ho amin'ny microservices sy ny anjara asan'ny Kubernetes teto. Eny, manao ny zava-drehetra izahay izao mba hampihenana ny vidin'ny scaling izay misy amin'ny maritrano toy izany.

Tany am-boalohany dia tsy namorona tontolo iainana izay hanampy anay amin'ny fampivoarana sy fandefasana serivisy micro izahay. Vao avy nanangona vahaolana open source marani-tsaina izy ireo, nandefa azy ireo tao an-trano ary nanolotra ny mpamorona hiatrika azy ireo. Vokatr'izany dia nandeha tany amin'ny toerana am-polony izy (dashboard, serivisy anatiny), ary avy eo dia nanamafy ny faniriany hanapaka ny code amin'ny fomba taloha, amin'ny monolith. Ny loko maitso amin'ny kisary etsy ambany dia manondro izay ataon'ny mpamorona amin'ny fomba iray na amin'ny tanany manokana, ny loko mavo dia manondro ny automation.

Inona no fantatsika momba ny microservices

Ankehitriny, ao amin'ny PaaS CLI utility, ekipa iray no mamorona serivisy vaovao, ary roa hafa manampy angona vaovao ary mametraka izany amin'ny Stage.

Inona no fantatsika momba ny microservices

Ahoana ny fomba handresena ny vanim-potoanan'ny "fizarana microservice"

Miaraka amin'ny maritrano monolithic, noho ny tsy fitovian'ny fiovana eo amin'ny vokatra, ny mpamorona dia voatery hamantatra ny zava-mitranga amin'ny mpiara-belona aminy. Rehefa miasa amin'ny maritrano vaovao dia tsy mifampiankina intsony ny tontolon'ny serivisy.

Ankoatra izany, mba hahomby ny maritrano microservice dia ilaina ny mametraka dingana maro, izany hoe:

β€’ logging;
β€’ mangataka tracing (Jaeger);
β€’ famoriam-bola (Sentry);
β€’ sata, hafatra, hetsika avy amin'ny Kubernetes (Fikarakarana ny Stream Stream);
β€’ fetran'ny hazakazaka / fiatoana (azo ampiasaina ny Hystrix);
β€’ fanaraha-maso ny fifandraisana amin'ny serivisy (mampiasa Netramesh izahay);
β€’ fanaraha-maso (Grafana);
β€’ fivoriambe (TeamCity);
β€’ fifandraisana sy fampahafantarana (Slack, mailaka);
β€’ fanaraha-maso ny asa; (Jira)
β€’ fanomanana ny antontan-taratasy.

Mba hahazoana antoka fa tsy very ny fahamendrehana ny rafitra ary mijanona ho mahomby rehefa mizana, dia nieritreritra indray izahay ny fandaminana ny microservices ao Avito.

Ahoana ny fitantanana ny microservices

Avito dia manampy amin'ny fanatanterahana "politikan'ny antoko" tokana amin'ireo serivisy madinika maro:

  • fizarana ny fotodrafitrasa ho sosona;
  • ny foto-kevitry ny Platform ho serivisy (PaaS);
  • manara-maso izay rehetra mitranga amin'ny microservices.

Ny haavon'ny abstraction amin'ny fotodrafitrasa dia misy sosona telo. Andeha ho any ambony ka hatrany ambany.

A. Top - serivisy harato. Tamin'ny voalohany dia nanandrana ny Istio izahay, saingy hita fa mampiasa loharanon-karena be loatra, izay lafo loatra amin'ny boky misy anay. Noho izany, ny zokiny injeniera ao amin'ny Architecture ekipa Alexander Lukyanchenko namolavola ny vahaolana - Netramesh (misy amin'ny Open Source), izay ampiasaintsika amin'ny famokarana amin'izao fotoana izao ary mandany loharanon-karena im-betsaka noho ny Istio (fa tsy manao izay rehetra azon'i Istio rehareha).
B. Medium - Kubernetes. Amin'izany, mametraka sy miasa microservices izahay.
C. Ambany - miboridana metaly. Tsy mampiasa rahona sy zavatra toa an'i OpenStack izahay, fa mipetraka amin'ny metaly miboridana tanteraka.

Ny sosona rehetra dia mitambatra PaaS. Ary ity sehatra ity indray dia misy fizarana telo.

I. Generators, mitantana amin'ny alalan'ny CLI utility. Izy no manampy ny mpamorona hamorona microservice amin'ny fomba tsara sy amin'ny ezaka kely indrindra.

II. Consolidated collector miaraka amin'ny fifehezana ny fitaovana rehetra amin'ny alΓ lan'ny dashboard mahazatra.

III. fitahirizana. Mifandray amin'ny mpandrindra izay mametraka ho azy ireo trigger ho an'ny hetsika misy dikany. Noho ny rafitra toy izany dia tsy misy na dia iray aza tsy ampy satria misy olona nanadino nametraka asa tao Jira. Mampiasa fitaovana anatiny antsoina hoe Atlas izahay hanaovana izany.

Inona no fantatsika momba ny microservices

Ny fampiharana ny microservices ao Avito dia atao ihany koa araka ny drafitra tokana, izay manamora ny fanaraha-maso azy ireo isaky ny dingana fampandrosoana sy famoahana.

Ny fomba fiasan'ny fantsona fampivoarana microservice mahazatra

Amin'ny ankapobeny, toy izao ny rojo famoronana microservice:

CLI-push β†’ Continuous Integration β†’ Bake β†’ Deploy β†’ Artificial tests β†’ Canary tests β†’ Squeeze Testing β†’ Production β†’ Maintenance.

Andeha hojerentsika amin'ity filaharana ity.

CLI-tosika

β€’ Mamorona serivisy micro.
Niady mafy nandritra ny fotoana ela izahay mba hampianarana ny mpamorona tsirairay ny fomba fanaovana microservice. Ao anatin'izany ny torolΓ lana amin'ny antsipiriany nanoratra ao amin'ny Confluence. Niova anefa ireo tetika ary nampiana. Ny vokatr'izany - ny bottleneck dia niforona tany am-piandohan'ny dia: mila fotoana bebe kokoa ny fandefasana microservices noho ny navela, ary mbola misy olana matetika rehefa namorona azy ireo.

Tamin'ny farany dia nanangana fitaovana CLI tsotra izahay izay manara-maso ny dingana fototra amin'ny famoronana microservice. Raha ny marina dia manolo ny git push voalohany. Izao indrindra no ataony.

- Mamorona serivisy araka ny maodely - tsikelikely, amin'ny fomba "wizard". Manana mΓ΄dely ho an'ny fiteny fandaharana lehibe ao amin'ny Avito backend: PHP, Golang ary Python.

- Ny baiko iray amin'ny fotoana iray dia mametraka tontolo iray ho an'ny fampandrosoana eo an-toerana amin'ny milina manokana - Mitsangana ny Minikube, ny sarin'ny Helm dia avoaka ho azy ary mandeha amin'ny kubernetes eo an-toerana.

- Mampifandray ny angon-drakitra ilaina. Ny mpamorona dia tsy mila mahafantatra ny IP, ny fidirana ary ny tenimiafina mba hahazoana fidirana amin'ny angon-drakitra ilainy - farafaharatsiny eo an-toerana, farafaharatsiny amin'ny Stage, farafaharatsiny amin'ny famokarana. Ambonin'izany, ny angon-drakitra dia apetraka avy hatrany amin'ny fikirakirana mahazaka fahadisoana sy miaraka amin'ny fifandanjana.

- Manao fivoriambe mivantana izy io. Aoka hatao hoe nanitsy zavatra tao amin'ny microservice ny developer tamin'ny alΓ lan'ny IDE-ny. Mahita fiovana eo amin'ny rafitry ny rakitra ilay fitaovana ary, miorina amin'izy ireo, dia manangana indray ny fampiharana (ho an'i Golang) ary manomboka indray. Ho an'ny PHP, dia alefanay fotsiny ny lahatahiry ao anaty cube ary eo no ahazoana "automatique" ny famerenana mivantana.

- Mamorona autotest. Amin'ny endrika banga, fa tena azo ampiasaina.

β€’ Mametraka microservice.

Somary mandreraka kely ny fametrahana microservice miaraka aminay. Tsy maintsy ilaina:

I. Dockerfile.

II. Config.
III. Helm-chart, izay manahirana ny tenany ary misy:

- ny tabilao mihitsy;
- modely;
- soatoavina manokana amin'ny fiheverana ny tontolo iainana samihafa.

Nesorinay ny fanaintainany tamin'ny famerenana indray ny fanehoana Kubernetes ary izao dia namboarina ho azy ireo. Fa ny tena zava-dehibe dia nanatsotra ny fametrahana hatramin'ny fetra izahay. Manomboka izao dia manana Dockerfile izahay, ary ny mpamorona dia manoratra ny config manontolo ao anaty rakitra app.toml fohy.

Inona no fantatsika momba ny microservices

Eny, ary ao amin'ny app.toml mihitsy, misy raharaha iray minitra izao. Manoro hevitra izahay hoe firy ny dika mitovy amin'ny serivisy atsangana (amin'ny dev-server, amin'ny fampisehoana, amin'ny famokarana), manondro ny fiankinany. Mariho ny haben'ny tsipika = "kely" ao amin'ny sakana [motera]. Io no fetra hatokana ho an'ny serivisy amin'ny alΓ lan'ny Kubernetes.

Fanampin'izay, miorina amin'ny config, ny Helm-charts ilaina rehetra dia amboarina ho azy ary ny fifandraisana amin'ny angon-drakitra dia noforonina.

β€’ Fanamarinana fototra. Ny fisavana toy izany koa dia mandeha ho azy.
Mila arahina:
- misy Dockerfile ve;
- misy ve ny app.toml;
- Misy antontan-taratasy ve?
- na araka ny fiankinan-doha;
- raha napetraka ny fitsipika fanairana.
Hatramin'ny teboka farany: ny tompon'ny serivisy mihitsy no mamaritra ny mari-pamantarana vokatra hojerena.

β€’ Fanomanana ny antontan-taratasy.
Mbola faritra misy olana. Toa ny tena miharihary, fa miaraka amin'izay koa ny rakitsoratra "matetika adino", ary noho izany ny vulnerable rohy ao amin'ny rojo.
Ilaina ny antontan-taratasy ho an'ny microservice tsirairay. Anisan'izany ireto sakana manaraka ireto.

I. Famaritana fohy momba ny fanompoana. Andian-teny vitsivitsy momba ny ataony sy ny anton'izany.

II. Rohy mankany amin'ny kisary architecture. Zava-dehibe ny hoe amin'ny indray mipi-maso dia mora azo, ohatra, na mampiasa Redis ho an'ny caching ianao na amin'ny maha-fitehirizana data lehibe amin'ny fomba maharitra. Ao Avito, amin'izao fotoana izao, rohy mankany amin'ny Confluence.

III. runbook. TorolΓ lana fohy amin'ny fandefasana ny serivisy sy ny hafetsena amin'ny fikarakarana azy.

IV. FAQ, izay mety tsara raha andrasana ny olana mety hitranga amin'ny mpiara-miasa aminao rehefa miasa amin'ny serivisy.

V. Famariparitana ny teboka faran'ny API. Raha tampoka tsy nambara ny toerana halehanao ianao, dia azo antoka fa handoa izany ireo mpiara-miasa izay manana microservices mifandray amin'ny anao. Amin'izao fotoana izao dia mampiasa Swagger ho an'izany sy ny vahaolana antsoina hoe fohy.

VI. etikety. Na marika mampiseho izay vokatra, fiasa, fizarazarana ara-drafitra ny orinasa misy ny serivisy. Manampy amin'ny fahazoana haingana izy ireo, ohatra, raha hitanao ny fampiasa izay navoakan'ny mpiara-miasa aminao ho an'ny vondron'orinasa mitovy herinandro lasa izay.

VII. Tompon'ny serivisy na tompony. Amin'ny ankamaroan'ny tranga, izany - na izy ireo - dia azo faritana ho azy amin'ny fampiasana PaaS, fa ho an'ny fiantohana, dia takianay ny mpamorona mba hamaritra azy ireo amin'ny tanana ihany koa.

Farany, fomba fanao tsara ny manao famerenana antontan-taratasy, mitovy amin'ny famerenana code.

Fanamboarana tsy tapaka

  • Manomana repository.
  • Mamorona fantsona ao amin'ny TeamCity.
  • Fanomezana zo.
  • Mitadiava tompona serivisy. Ity misy rafitra hybrid - marika amin'ny tanana ary automation kely indrindra avy amin'ny PaaS. Tsy nahomby ilay tetika mandeha ho azy tanteraka rehefa afindra hanohana amin'ny ekipa fampandrosoana hafa ny serivisy na, ohatra, raha miala ny mpamorona serivisy.
  • Ny fisoratana anarana amin'ny serivisy amin'ny Atlas (jereo etsy ambony). Miaraka amin'ny tompony sy ny miankina aminy rehetra.
  • Fanamarinana ny fifindra-monina. Manamarina izahay raha misy ny mety hampidi-doza amin'izy ireo. Ohatra, ao amin'ny iray amin'izy ireo, misy latabatra alter mipoitra na zavatra hafa izay mety handrava ny fifanarahana ny rafitra data eo amin'ny dikan-teny samihafa amin'ny serivisy. Avy eo dia tsy vita ny fifindra-monina, fa apetraka amin'ny famandrihana - Tokony hanambara ny tompon'ny serivisy ny PaaS rehefa azo antoka ny fampiharana azy.

koa manendasa

Ny dingana manaraka dia ny serivisy fonosana alohan'ny fandefasana.

  • Fivoriambe fampiharana. Araka ny mahazatra - amin'ny sary Docker.
  • Famoronana tabilao Helm ho an'ny serivisy sy loharano mifandraika amin'izany. Anisan'izany ny angon-drakitra sy ny cache. Izy ireo dia noforonina ho azy mifanaraka amin'ny app.toml config izay novokarina tamin'ny dingana CLI-push.
  • Mamorona tapakila ho an'ny admin hanokatra seranana (rehefa ilaina).
  • Mandeha fitsapana vondrona sy kajy ny fandrakofana kaody. Raha ambany noho ny sandan'ny tokonam-baravarana ny fandrakofana kaody, dia azo inoana fa tsy handeha lavitra ny serivisy - mankany amin'ny fametrahana. Raha eo amin'ny sisin'ny azo ekena izany, dia homena coefficient "pessimizing" ny serivisy: avy eo, raha tsy misy fanatsarana ny mari-pamantarana rehefa mandeha ny fotoana, dia hahazo fampandrenesana ny mpamorona fa tsy misy fandrosoana amin'ny resaka fitsapana ( ary misy zavatra tokony hatao momba izany).
  • Kaonty ho an'ny fahatsiarovana sy ny fetran'ny CPU. Amin'ny ankapobeny, manoratra serivisy micro amin'ny Golang izahay ary mandeha amin'ny Kubernetes. Noho izany, hafetsifetsena iray mifandray amin'ny endri-javatra amin'ny fiteny Golang: amin'ny alΓ lan'ny default, ny cores rehetra amin'ny milina dia ampiasaina amin'ny fanombohana, raha tsy mametraka mazava ny fari-piadidiana GOMAXPROCS ianao, ary rehefa misy serivisy maro toy izany dia atomboka amin'ny milina iray ihany, dia manomboka izy ireo. hifaninana amin'ny loharanon-karena, mifanditra. Ny kisary etsy ambany dia mampiseho ny fiovan'ny fotoana famonoana raha toa ka mandeha tsy misy fifandirana sy amin'ny hazakazaka loharanon-karena ny fampiharana. (Ny loharanon'ny tabilao dia eto).

Inona no fantatsika momba ny microservices

Ny fotoana famonoana, ny kely dia tsara kokoa. Maximum: 643ms, kely indrindra: 42ms. Ny sary dia azo kitihina.

Inona no fantatsika momba ny microservices

Fotoana fandidiana, kely kokoa no tsara kokoa. Maximum: 14091 ns, ambany indrindra: 151 ns. Ny sary dia azo kitihina.

Amin'ny dingana fanomanana ny fivoriambe dia azonao atao ny mametraka an'io faribolana io mazava na azonao ampiasaina ny tranomboky automatxprocs avy amin'ireo lehilahy ao amin'ny Uber.

miisa

β€’ Fanamarinana fivoriambe. Alohan'ny hanombohanao manatitra fananganana serivisy ho an'ny tontolo tadiavinao dia mila manamarina ireto manaraka ireto ianao:
- Toerana fiafaran'ny API.
- Fifandraisana amin'ny valin-kafatra API amin'ny tetika.
- Fomba firaketana.
- Mametraka lohapejy ho an'ny fangatahana amin'ny serivisy (izao dia ataon'ny netramesh)
- Fametrahana ny mari-pamantarana tompony rehefa mandefa hafatra amin'ny fiara fitateram-bahoaka (bus hetsika). Ilaina izany mba hanaraha-maso ny fifandraisan'ny serivisy amin'ny alΓ lan'ny fiara fitateram-bahoaka. Azonao atao ny mandefa ny angona idempotent amin'ny fiara fitateram-bahoaka izay tsy mampitombo ny fifandraisan'ny serivisy (izay tsara), ary ny angon-drakitra momba ny fandraharahana izay manatsara ny fifandraisan'ny serivisy (izay tena ratsy!). Ary amin'izao fotoana izao rehefa lasa olana ity fifandraisana ity, ny fahatakarana hoe iza no manoratra sy mamaky ny fiara fitateram-bahoaka dia manampy amin'ny fanasarahana tsara ny serivisy.

Hatreto dia tsy dia misy fivoriambe firy ao Avito, nefa miitatra ny dobo misy azy. Arakaraka ny fifanarahana toy izany amin'ny endrika azo takarina sy mety ho an'ny ekipa, no mora kokoa ny mitazona ny tsy fitoviana eo amin'ny microservices.

Teti-panafody

β€’ Fitsapana tady mihidy. Ho an'izany dia mampiasa loharano misokatra isika izao hoverfly.io. Voalohany, mirakitra ny tena enta-mavesatra eo amin'ny serivisy izy, avy eo - ao anaty loop mihidy fotsiny - dia maka tahaka.

β€’ Fitsapana adin-tsaina. Miezaka mitondra ny tolotra rehetra ho amin'ny fahombiazana tsara indrindra izahay. Ary ny dikan-teny rehetra amin'ny serivisy tsirairay dia tokony iharan'ny fitsapana enta-mavesatra - mba hahatakarantsika ny fahombiazan'ny serivisy ankehitriny sy ny fahasamihafana amin'ny dikan-teny teo aloha amin'ny serivisy mitovy. Raha, aorian'ny fanavaozana ny serivisy, dia nihena in-droa sy tapany ny zava-bitany, dia famantarana mazava ho an'ny tompony izany: mila mandavaka ny code ianao ary manitsy ny toe-javatra.
Manomboka amin'ny angon-drakitra voaangona izahay, ohatra, mba hampiharana tsara ny fanerena fiara ary, amin'ny farany, hahatakatra amin'ny ankapobeny ny maha-scalable ny serivisy.

Mandritra ny fitiliana enta-mavesatra, dia manamarina raha mahafeno ny fetra napetraka ny fanjifana loharanon-karena. Ary mifantoka indrindra amin'ny extremes izahay.

a) Mijery ny enta-mavesatra rehetra isika.
- Kely loatra - azo inoana fa misy zavatra tsy mandeha mihitsy raha midina tampoka imbetsaka ny entana.
- Lehibe loatra - ilaina ny fanatsarana.

b) Jereo ny fanapahana RPS.
Eto isika dia mijery ny fahasamihafana misy eo amin'ny dikan-teny ankehitriny sy ny teo aloha ary ny totalin'ny isa. Ohatra, raha manome 100 rps ny serivisy, dia na ratsy ny fanoratana azy, na izany no tena izy, fa na ahoana na ahoana, izany no antony tokony hijerena akaiky ny serivisy.
Raha, mifanohitra amin'izany, be loatra ny RPS, dia mety hisy karazana bug ary ny sasany amin'ireo teboka farany dia nijanona tsy nanatanteraka ny enta-mavesatra, fa ny sasany fotsiny. return true;

Fitsapana canary

Rehefa vita ny fitsapana synthetic, dia mitantana ny microservice amin'ny mpampiasa vitsivitsy izahay. Manomboka amim-pitandremana isika, miaraka amin'ny ampahany kely amin'ny mpihaino kendrena amin'ny serivisy - latsaky ny 0,1%. Amin'ity dingana ity dia tena zava-dehibe ny fampidirana ny metrika ara-teknika sy vokatra marina amin'ny fanaraha-maso mba hampisehoana haingana ny olana amin'ny serivisy. Ny fotoana fitsapana canary kely indrindra dia 5 minitra, ny lehibe indrindra dia 2 ora. Ho an'ny serivisy sarotra, apetraho amin'ny fomba manual ny fotoana.
Manadihady izahay:
- metrika manokana amin'ny fiteny, indrindra ny mpiasa php-fpm;
- fahadisoana ao amin'ny Sentry;
- sata valiny;
- fotoana famaliana (fotoana famaliana), marina sy antonony;
- latency;
- maningana, voakarakara sy tsy voakarakara;
- metrika vokatra.

Squeeze Testing

Ny fitiliana Squeeze dia antsoina koa hoe fitiliana "squeeze". Ny anaran'ny teknika dia nampidirina tao amin'ny Netflix. Ny votoatiny dia ny famenoana ohatra iray amin'ny fifamoivoizana tena izy mankany amin'ny toetry ny tsy fahombiazana ary mametraka ny fetrany. Avy eo dia manampy ohatra iray hafa isika ary mameno ity mpivady ity - indray amin'ny ambony indrindra; Hitantsika ny valindrihana sy ny delta amin'ny famoretana voalohany. Ary noho izany dia mampifandray ohatra iray isaky ny dingana isika ary kajy ny lamina amin'ny fanovana.
Ny angon-drakitra momba ny fitsapana amin'ny alalan'ny "fanosihosena" dia mikoriana any amin'ny angon-drakitra iraisan'ny metrika, izay ampitomboantsika ny valin'ny entana artifisialy miaraka amin'izy ireo, na manolo ny "synthetics" amin'izy ireo.

Famokarana

β€’ Scaling. Mandeha ny serivisy mankany amin'ny famokarana, manara-maso ny fomba mizana. Mandritra izany fotoana izany, ny fanaraha-maso ny tondro CPU ihany, araka ny traikefantsika, dia tsy mahomby. Ny fanamafisam-peo mandeha ho azy miaraka amin'ny benchmarking RPS dia miasa amin'ny endriny madio indrindra, fa ho an'ny serivisy sasany ihany, toy ny streaming an-tserasera. Noho izany dia mijery voalohany indrindra ny metrika vokatra manokana amin'ny fampiharana.

Vokatr'izany, rehefa manao scaling isika dia mandinika:
- Tondro CPU sy RAM,
- ny isan'ny fangatahana amin'ny filaharana,
- fotoana mamaly,
- vinavina mifototra amin'ny angon-drakitra voaangona.

Rehefa scaling serivisy dia zava-dehibe ihany koa ny manara-maso ny fiankinan-dohany mba tsy hitrangan'ny fampitomboana ny serivisy voalohany ao amin'ny rojo, ary izay idirany dia latsaka ambany enta-mavesatra. Mba hametrahana enta-mavesatra azo ekena ho an'ny dobo serivisy iray manontolo, dia mijery ny angon-drakitra ara-tantara momba ny serivisy miankina amin'ny "akaiky indrindra" isika (amin'ny resaka CPU sy RAM, miaraka amin'ny metrika manokana amin'ny fampiharana) ary ampitahao amin'ny angona ara-tantaran'ny fanombohana ny serivisy, sy ny sisa amin'ny "rojo miankina" ", hatrany ambony ka hatrany ambany.

fanompoana

Aorian'ny fiasan'ny microservice dia afaka manantona ireo trigger eo aminy isika.

Ireto misy toe-javatra mahazatra izay miasa ny trigger.
- Hita ny fifindra-monina mety hampidi-doza.
- Navoaka ny fanavaozana fiarovana.
- Ny serivisy mihitsy no tsy nohavaozina hatry ny ela.
- Ny enta-mavesatra amin'ny serivisy dia nihena be na ny sasany amin'ireo metrika vokatra dia tsy mahazatra.
- Tsy mahafeno ny fepetra vaovaon'ny lampihazo intsony ny serivisy.

Ny sasany amin'ireo trigger dia tompon'andraikitra amin'ny fahamarinan'ny asa, ny sasany - ho toy ny rafitra fikojakojana ny rafitra - ohatra, ny serivisy sasany dia tsy napetraka nandritra ny fotoana ela ary ny sary fototra dia nitsahatra tsy nandalo fisavana fiarovana.

anaty fiara

Raha fintinina, ny dashboard dia ny tontonana fanaraha-maso ny PaaS manontolo.

  • Hevitra tokana momba ny serivisy, miaraka amin'ny angon-drakitra momba ny fandrakofam-panadinana, ny isan'ny sariny, ny isan'ny kopia famokarana, ny dikan-teny, sns.
  • Fitaovana fanivanana angon-drakitra amin'ny alΓ lan'ny serivisy sy marika (famantarana an'ny vondron'orinasa, fiasa vokatra, sns.)
  • Fitaovana fampidirana miaraka amin'ny fitaovana fotodrafitrasa ho an'ny trace, logging, fanaraha-maso.
  • Hevitra tokana amin'ny antontan-taratasy momba ny serivisy.
  • Fomba fijery tokana amin'ny hetsika rehetra amin'ny serivisy.

Inona no fantatsika momba ny microservices
Inona no fantatsika momba ny microservices
Inona no fantatsika momba ny microservices
Inona no fantatsika momba ny microservices

Π˜Ρ‚ΠΎΠ³ΠΎ

Talohan'ny fampidirana ny PaaS, mpandrindra vaovao iray dia afaka mandany herinandro maromaro amin'ny fahafantarana ny fitaovana rehetra ilaina amin'ny fandefasana microservice amin'ny famokarana: Kubernetes, Helm, ny endri-javatra ao anatiny ao amin'ny TeamCity, ny fametrahana fifandraisana amin'ny angon-drakitra sy ny cache amin'ny fomba mahazaka fahadisoana, sns. Amin'izao fotoana izao dia mila ora roa vao mamaky haingana sy manao ny serivisy.

Nanao tatitra momba ity lohahevitra ity aho ho an'ny HighLoad ++ 2018, hitanao Π²ΠΈΠ΄Π΅ΠΎ ΠΈ fampahafantarana.

Bonus track ho an'izay mamaky hatramin'ny farany

Izahay ato amin'ny Avito dia mikarakara fiofanana anatiny mandritra ny telo andro ho an'ny mpamorona avy amin'ny Chris Richardson, manam-pahaizana momba ny maritrano microservice. Te-hanome fahafahana handray anjara amin'izany ho an'ny iray amin'ireo mpamaky ity lahatsoratra ity izahay. izany navoaka ny programa fanofanana.

Ny 5 ka hatramin’ny 7 aogositra izao no hanatanterahana ny fiofanana any Moscou. Ireo no andro fiasana izay hipetrahana tanteraka. Ny sakafo antoandro sy ny fiofanana dia ho ao amin'ny biraonay, ary ny mpandray anjara voafidy no mandoa ny dia sy ny trano fonenana.

Afaka mangataka handray anjara ianao amin'ity endrika google ity. Avy aminao - ny valin'ny fanontaniana hoe nahoana ianao no mila manatrika ny fiofanana sy ny fampahalalana momba ny fomba hifandraisana aminao. Valio amin'ny teny anglisy, satria ny mpandray anjara tonga amin'ny fiofanana dia i Chris mihitsy no hifidy.
Ampahafantarinay ny anaran'ny mpandray anjara fanofanana miaraka amin'ny fanavaozana ity lahatsoratra ity sy amin'ny tambajotra sosialy Avito ho an'ny mpamorona (AvitoTech in Facebook, VKontakte, Twitter) tsy mihoatra ny 19 Jolay.

Source: www.habr.com

Add a comment