Kedu ihe anyị maara gbasara microservices

Nnọọ! Aha m bụ Vadim Madison, m na-eduga mmepe nke Avito System Platform. Ekwuwo ihe karịrị otu ugboro ka anyị na ụlọ ọrụ si na-esi na ụlọ ọrụ monolithic na-aga na microservices. Oge erugo ịkọrọ otu anyị siri gbanwee akụrụngwa anyị iji nweta ihe kacha mma na microservices wee gbochie anyị ịla n'iyi na ha. Kedu ka PaaS si enyere anyị aka ebe a, otu anyị siri mee ka ntinye dị mfe ma belata mmepụta nke microservice na otu pịa - gụọ na. Ọ bụghị ihe niile m na-ede banyere n'okpuru ka emejuputa atumatu na Avito, ụfọdụ n'ime ya bụ otú anyị si emepụta ikpo okwu anyị.

(Na njedebe nke isiokwu a, m ga-ekwu maka ohere ịga nzukọ ọmụmụ ihe ụbọchị atọ site n'aka ọkachamara microservice architecture Chris Richardson).

Kedu ihe anyị maara gbasara microservices

Otu anyị siri bịa na microservices

Avito bụ otu n'ime ndị kasị ibu nkewa saịtị na ụwa; Azụ azụ anyị na-anabata arịrịọ karịrị puku iri abụọ kwa nkeji. Anyị nwere ọtụtụ narị microservices ugbu a.

Anyị na-ewu ụlọ ọrụ microservice kemgbe ọtụtụ afọ ugbu a. Kedu kpọmkwem - ndị ọrụ ibe anyị n'ụzọ zuru ezu gwara na ngalaba anyị na RIT ++ 2017. Na CodeFest 2017 (lee. видео), Sergey Orlov na Mikhail Prokopchuk kọwara n'ụzọ zuru ezu ihe mere anyị ji dị mkpa mgbanwe na microservices na ọrụ Kubernetes rụrụ ebe a. Ọ dị mma, ugbu a, anyị na-eme ihe niile iji belata ọnụ ahịa ọnụ ahịa dị n'ime ụlọ dị otú ahụ.

Na mbụ, anyị emepụtaghị ihe gburugburu ebe obibi nke ga-enyere anyị aka n'ụzọ zuru ezu ịzụlite na ịmalite microservices. Ha chịkọtara ihe ngwọta ezi uche dị na ya mepere emepe, wepụta ha n'ụlọ wee kpọọ onye nrụpụta ka o mesoo ha. N'ihi ya, ọ gara ebe iri na abụọ (dashboards, esịtidem ọrụ), mgbe nke ahụ gasịrị, ọ bịara sie ike n'ọchịchọ ya ịkpụ koodu ụzọ ochie, na monolith. Agba ndụ ndụ na eserese dị n'okpuru na-egosi ihe onye nrụpụta na-eji aka ya mee otu ụzọ ma ọ bụ ọzọ, na agba odo na-egosi akpaaka.

Kedu ihe anyị maara gbasara microservices

Ugbu a na ngwa PaaS CLI, a na-emepụta ọrụ ọhụrụ site na otu iwu, a na-agbakwunye nchekwa data ọhụrụ na abụọ ma tinye ya na Stage.

Kedu ihe anyị maara gbasara microservices

Otu esi emeri oge nke "microservice fragmentation"

Site na ihe owuwu monolithic, n'ihi mgbanwe mgbanwe na ngwaahịa ahụ, a manyere ndị mmepe ịchọpụta ihe na-eme na ndị agbata obi ha. Mgbe ị na-arụ ọrụ na ụlọ ọhụrụ ahụ, ọnọdụ ọrụ anaghị adaberekwa na ibe ya.

Na mgbakwunye, maka ụlọ ọrụ microservice ka ọ dị irè, ọ dị mkpa ka e guzobe ọtụtụ usoro, ya bụ:

• osisi;
• ịrịọ arịrịọ (Jaeger);
• nchịkọta njehie (Sentry);
• statuses, ozi, ihe omume sitere na Kubernetes (Mmemme Stream Processing);
• ịgba ọsọ / mgbawa sekit (ị nwere ike iji Hystrix);
• njikwa njikọ ọrụ (anyị na-eji Netramesh);
• nlekota oru (Grafana);
• mgbakọ (TeamCity);
• nkwukọrịta na ngosi (Slack, email);
• nlekota oru; (Jira)
• nkwadebe nke akwụkwọ.

Iji hụ na usoro ahụ agaghị akwụsị iguzosi ike n'ezi ihe ya ma nọgide na-arụ ọrụ ka ọ na-atụba, anyị na-atụgharị uche na nhazi nke microservices na Avito.

Otu anyị si ejikwa microservices

Enyemaka ndị a iji mejuputa “atụmatụ otu” dị n'otu n'etiti ọtụtụ microservices Avito:

  • na-ekewa akụrụngwa n'ime ọkwa;
  • Platform dị ka ọrụ (PaaS) echiche;
  • nyochaa ihe niile na-eme na microservices.

N'ígwé abstraction akụrụngwa gụnyere akwa atọ. Ka anyị si n'elu ruo na ala.

A. Top - ntupu ọrụ. Na mbụ anyị gbalịrị Istio, ma ọ bịara bụrụ na ọ na-eji ọtụtụ ihe onwunwe eme ihe, nke dị oke ọnụ maka mpịakọta anyị. Ya mere, agadi engineer na architecture otu Alexander Lukyanchenko mepụtara onwe ya ngwọta - Netramesh (dị na Open Source), nke anyị na-eji ugbu a na mmepụta na nke na-eri ọtụtụ ugboro obere ego karịa Istio (ma ọ naghị eme ihe niile Istio nwere ike ịnya isi).
B. Ọkara - Kubernetes. Anyị na-ebuga ma na-arụ ọrụ microservice na ya.
C. N'okpuru - igwe efu. Anyị anaghị eji igwe ojii ma ọ bụ ihe dị ka OpenStack, mana dabere kpamkpam na igwe efu.

PaaS jikọtara ọkwa niile. Na ikpo okwu a, n'aka nke ya, nwere akụkụ atọ.

I. Ndị na-emepụta ihe, na-achịkwa site na ngwa CLI. Ọ bụ ya na-enyere onye nrụpụta aka ịmepụta microservice n'ụzọ ziri ezi yana obere mbọ.

II. Ọkọkọta ọnụ jiri njikwa ngwaọrụ niile site na dashboard nkịtị.

III. Nchekwa. Na-ejikọta ya na ndị na-ahazi nhazi nke na-edobe mkpali na-akpaghị aka maka omume dị mkpa. N'ihi usoro dị otú ahụ, ọ dịghị otu ọrụ na-efunahụ naanị n'ihi na mmadụ chefuru ịtọ otu ọrụ na Jira. Anyị na-eji ngwa ime ime akpọrọ Atlas maka nke a.

Kedu ihe anyị maara gbasara microservices

A na-arụkwa mmejuputa microservices na Avito dị ka otu atụmatụ si dị, nke na-eme ka ịchịkwa ha dị mfe na ọkwa ọ bụla nke mmepe na ntọhapụ.

Kedu ka pipeline mmepe ọkọlọtọ microservice si arụ ọrụ?

Na mkpokọta, yinye okike microservice dị ka nke a:

CLI-push → Njikọ na-aga n'ihu → Ime → Nyefee → Nnwale artificial → Canary tests → squeeze Testing → Production → Mmezi.

Ka anyị gabiga ya kpọmkwem n'usoro a.

CLI-kwaa

• Ịmepụta microservice.
Anyị gbalịsiri ike ruo ogologo oge ịkụziri onye nrụpụta ọ bụla otu esi eme microservices. Nke a gụnyere ide ntuziaka zuru ezu na Confluence. Ma atụmatụ ahụ gbanwere ma gbakwunyere ya. Ihe si na ya pụta bụ na mkpọnwụ pụtara na mmalite nke njem ahụ: ọ na-ewe oge ka ukwuu iji malite ọrụ microservices, ma nsogbu na-ebilite mgbe a na-eke ha.

N'ikpeazụ, anyị wuru ngwa CLI dị mfe nke na-eme ka usoro ndị dị mkpa mgbe ị na-emepụta microservice. N'ezie, ọ na-anọchi nke mbụ git push. Nke a bụ ihe ọ na-eme kpọmkwem.

- Na-emepụta ọrụ dịka ndebiri - nzọụkwụ site na nzọụkwụ, na ọnọdụ "ọkachamara". Anyị nwere ndebiri maka asụsụ mmemme bụ isi na azụ azụ Avito: PHP, Golang na Python.

- Otu iwu n'otu oge na-ebuga gburugburu maka mmepe mpaghara na otu igwe - Minikube na-arụ ọrụ, a na-emepụta chaatị Helm na-akpaghị aka na kubernetes mpaghara.

- Jikọọ nchekwa data achọrọ. Ọ dịghị mkpa ka onye mmepụta mara IP, nbanye na paswọọdụ iji nweta ohere nchekwa data ọ chọrọ - ma ọ bụrụ na mpaghara, na Stage, ma ọ bụ na mmepụta. Ọzọkwa, a na-etinye nchekwa data ozugbo na nhazi mmejọ na-emezigharị.

- Ọ rụrụ mgbakọ ndụ n'onwe ya. Ka anyị kwuo na onye nrụpụta doziri ihe na microservice site na IDE ya. Ngwa ahụ na-ahụ mgbanwe na sistemụ faịlụ yana, dabere na ha, wughachi ngwa ahụ (maka Golang) wee malitegharịa. Maka PHP, anyị na-ebuga akwụkwọ ndekọ aha n'ime cube ahụ wee nwetaghachi nbudata "na-akpaghị aka".

- Na-emepụta autotests. N'ụdị oghere, ma dị mma maka ojiji.

• Nbunye Microservice.

Ịkwanye microservice bụbu ihe na-esiri anyị ike. Ihe ndị a chọrọ:

I. Dockerfile.

II. Nhazi
III. Chaatị Helm, nke n'onwe ya dị njọ ma gụnyere:

- chaatị ndị ahụ n'onwe ha;
- ndebiri;
- ụkpụrụ dị iche iche na-eburu n'uche gburugburu dị iche iche.

Anyị ewepụla ihe mgbu site na imegharị Kubernetes ka a na-emepụta ha na-akpaghị aka. Mana nke kachasị mkpa, ha mere ka ntinye ọrụ dị mfe ruo oke. Site ugbu a gaa n'ihu, anyị nwere Dockerfile, onye nrụpụta na-edekwa nhazi niile n'otu faịlụ ngwa ngwa.toml dị mkpụmkpụ.

Kedu ihe anyị maara gbasara microservices

Ee, na na app.toml n'onwe ya ọ nweghị ihe ị ga-eme maka otu nkeji. Anyị na-akọwapụta ebe na ole mbipụta nke ọrụ a ga-ebuli (na dev server, na staging, na mmepụta), na-egosi na ọ dabere. Rịba ama nha ahịrị = "obere" na ngọngọ [engine]. Nke a bụ oke nke a ga-ekenye maka ọrụ site na Kubernetes.

Mgbe ahụ, dabere na nhazi ahụ, a na-emepụta chaatị Helm niile dị mkpa na-akpaghị aka ma mepụta njikọ na ọdụ data.

• nkwado ndabere. Ụdị nlele ndị dị otú ahụ na-akpakwa akpa.
Mkpa soro:
- enwere Dockerfile;
- enwere app.toml;
- enwere akwụkwọ dị?
- ọ bụ ịdabere n'usoro?
- ma edobere iwu njikere.
Ruo n'ókè ikpeazụ: onye nwe ọrụ ahụ n'onwe ya na-ekpebi ụdị metric ngwaahịa iji nyochaa.

• Nkwadebe nke akwụkwọ.
Ebe nsogbu ka dịkwa. O yiri ka ọ bụ ihe doro anya, ma n'otu oge ahụ ọ bụkwa ihe ndekọ "na-echefukarị", ya mere njikọ na-adịghị ike na agbụ.
Ọ dị mkpa na enwere akwụkwọ maka microservice ọ bụla. Ọ gụnyere ihe mgbochi ndị a.

I. Nkọwa dị nkenke nke ọrụ ahụ. N'ezie ahịrịokwu ole na ole gbasara ihe ọ na-eme na ihe mere o ji dị mkpa.

II. Njikọ eserese eserese. Ọ dị mkpa na site na ileba anya ngwa ngwa na ya ọ dị mfe nghọta, dịka ọmụmaatụ, ma ị na-eji Redis maka caching ma ọ bụ dị ka isi ụlọ ahịa data na ọnọdụ na-adịgide adịgide. Na Avito ugbu a nke a bụ njikọ na Confluence.

III. Akwụkwọ ịgba ọsọ. Ntuziaka dị mkpirikpi maka ịmalite ọrụ na mgbagwoju anya nke ijikwa ya.

IV. FAQ, ebe ọ ga-adị mma ịtụ anya nsogbu ndị ọrụ ibe gị nwere ike izute mgbe ị na-arụ ọrụ na ọrụ ahụ.

V. Nkọwapụta njedebe maka API. Ọ bụrụ na ị kọwapụtaghị ebe ị na-aga na mberede, ndị ọrụ ibe ha nwere microservices na nke gị ga-akwụrịrị ụgwọ maka ya. Ugbu a, anyị na-eji Swagger na ngwọta anyị a na-akpọ nkenke maka nke a.

VI. Akara aha. Ma ọ bụ ihe nrịbama na-egosi ngwaahịa, ọrụ, ma ọ bụ ngalaba nhazi nke ụlọ ọrụ ahụ bụ nke ya. Ha na-enyere gị aka ịghọta ngwa ngwa, dịka ọmụmaatụ, ma ị na-ebelata ọrụ nke ndị ọrụ ibe gị wepụtara maka otu ngalaba azụmahịa otu izu gara aga.

VII. Onye nwe ma ọ bụ ndị nwe ọrụ ahụ. N'ọtụtụ ọnọdụ, enwere ike ikpebi ya - ma ọ bụ ha - iji PaaS na-akpaghị aka, mana ka ọ nọrọ n'akụkụ nchekwa, anyị chọrọ onye nrụpụta ka o jiri aka ya depụta ha.

N'ikpeazụ, ọ bụ omume dị mma iji nyochaa akwụkwọ, dị ka nyochaa koodu.

Ịnọgide na-aga n'ihu

  • Na-akwado ebe nchekwa.
  • Ịmepụta pipeline na TeamCity.
  • Ikike ịtọ ntọala.
  • Chọọ ndị nwe ọrụ. Enwere atụmatụ ngwakọ ebe a - akara aka na obere akpaaka sitere na PaaS. Atụmatụ akpaaka zuru oke na-ada mgbe ebufere ọrụ maka nkwado ndị otu mmepe ọzọ ma ọ bụ, dịka ọmụmaatụ, ọ bụrụ na onye nrụpụta ọrụ kwụsịrị.
  • Ịdenye aha ọrụ na Atlas (lee n'elu). Na ndị nwe ya niile na ndị dabere.
  • Na-enyocha mbugharị. Anyị na-enyocha ma nke ọ bụla n'ime ha nwere ike ịdị ize ndụ. Dịka ọmụmaatụ, n'otu n'ime ha tebụl mgbanwe ma ọ bụ ihe ọzọ na-apụta nke nwere ike imebi ndakọrịta nke atụmatụ data n'etiti ụdị ọrụ dị iche iche. Mgbe ahụ, a naghị eme njem ahụ, mana etinye ya na ndenye aha - PaaS ga-egosi onye nwe ọrụ mgbe ọ dị mma iji ya.

Ime

Usoro ọzọ bụ ọrụ nkwakọ ngwaahịa tupu ebunye ya.

  • Iwuli ngwa. Dị ka oge ochie - na ihe oyiyi Docker.
  • Ọgbọ nke eserese Helm maka ọrụ ahụ n'onwe ya yana akụrụngwa ndị metụtara ya. Gụnyere maka ọdụ data na cache. A na-emepụta ha na-akpaghị aka dịka ngwa ngwa app.toml nke emepụtara na ọkwa CLI-push.
  • Ịmepụta tiketi maka ndị admins imepe ọdụ ụgbọ mmiri (mgbe achọrọ).
  • Nnwale otu na-agbakọ na ịgbakọ mkpuchi koodu. Ọ bụrụ na mkpuchi koodu dị n'okpuru ebe a kapịrị ọnụ, mgbe ahụ ọ ga-abụ na ọrụ ahụ agaghị aga n'ihu - ibuga. Ọ bụrụ na ọ dị na njedebe nke ịnakwere, mgbe ahụ, a ga-ekenye ọrụ ahụ ọnụ ọgụgụ "pessimizing": mgbe ahụ, ọ bụrụ na ọ dịghị ọganihu na egosi na oge, onye mmepụta ga-enweta ọkwa na ọ dịghị ọganihu na usoro nke ule ( na ihe kwesiri ka eme ya).
  • Akaụntụ maka ebe nchekwa na oke CPU. Anyị na-edekarị microservices na Golang ma na-agba ya na Kubernetes. N'ihi ya, otu ụzọ aghụghọ jikọtara ya na ọdịdị dị iche iche nke asụsụ Golang: na ndabara, mgbe ịmalite, a na-eji cores niile dị na igwe ahụ, ma ọ bụrụ na ị naghị edozi GOMAXPROCS n'ụzọ doro anya, na mgbe arụ ọrụ dị otú ahụ n'otu igwe, ha na-amalite. ịsọ mpi maka ihe onwunwe, na-etinye aka na ibe ya. Eserese ndị dị n'okpuru na-egosi otú oge igbu oge si agbanwe ma ọ bụrụ na ị na-agba ọsọ ngwa n'enweghị esemokwu yana n'ọsọ maka ọnọdụ akụrụngwa. (Isi mmalite nke eserese bụ ebe a).

Kedu ihe anyị maara gbasara microservices

Oge igbu oge, obere ka mma. Kacha: 643ms, kacha nta: 42ms. Enwere ike ịpị foto a.

Kedu ihe anyị maara gbasara microservices

Oge ịwa ahụ, obere ka mma. Kacha: 14091 ns, kacha nta: 151 ns. Enwere ike ịpị foto a.

N'oge nkwadebe mgbakọ, ị nwere ike ịtọ mgbanwe a n'ụzọ doro anya ma ọ bụ ị nwere ike iji ụlọ akwụkwọ automaxprocs site na ụmụ okorobịa si Uber.

Nyefee

• Nyochaa mgbakọ. Tupu ịmalite ibuga mgbakọ ọrụ na gburugburu ebe ị chọrọ, ịkwesịrị ịlele ihe ndị a:
- API njedebe.
- Nrube isi nke API njedebe na atụmatụ ahụ.
- Usoro ndekọ.
- Ịtọlite ​​nkụnye eji isi mee maka arịrịọ maka ọrụ (ugbu a bụ netramesh na-eme ya)
- Ịtọ ntọala onye nwe mgbe ị na-eziga ozi na ụgbọ ala mmemme. Nke a dị mkpa iji soro njikọ nke ọrụ n'ofe ụgbọ ala. Ị nwere ike izipu ma idempotent data na ụgbọ ala, nke na-adịghị eme ka njikọ nke ọrụ (nke dị mma), na azụmahịa data na-ewusi njikọ nke ọrụ (nke dị nnọọ njọ!). Na mgbe njikọta a ghọrọ ihe esemokwu, ịghọta onye na-ede ma na-agụ ụgbọ ala na-enyere aka ikewapụ ọrụ nke ọma.

Enwebeghị ọtụtụ mgbakọ na Avito, mana ọdọ mmiri ha na-agbasawanye. Ka nkwekọrịta dị otú ahụ dị n'ụdị nke ndị otu ahụ nwere ike ịghọta ma ghọta, ọ na-adị mfe karị ịnọgide na-enwe nkwekọ n'etiti microservices.

Nnwale sịntetik

• Nnwale loop mechiri emechi. Maka nke a, anyị na-eji isi mmalite mepere emepe ugbu a Hoverfly.io. Nke mbụ, ọ na-edekọ ezigbo ibu na ọrụ ahụ, mgbe ahụ - naanị n'ime oghere mechiri emechi - ọ na-eṅomi ya.

• Nnwale nrụgide. Anyị na-agbalị iweta ọrụ niile na arụmọrụ kacha mma. Na nsụgharị niile nke ọrụ ọ bụla ga-adị n'okpuru ule nnwale - n'ụzọ dị otú a, anyị nwere ike ịghọta arụmọrụ nke ọrụ ugbu a na ọdịiche dị na nsụgharị mbụ nke otu ọrụ ahụ. Ọ bụrụ na, mgbe mmelite ọrụ gasịrị, arụmọrụ ya dara otu ugboro na ọkara, nke a bụ akara ngosi doro anya maka ndị nwe ya: ịkwesịrị igwu n'ime koodu ahụ ma dozie ọnọdụ ahụ.
Anyị na-eji data anakọtara, dịka ọmụmaatụ, iji mejuputa ntule akpaaka nke ọma na, n'ikpeazụ, na-aghọta n'ozuzu ka ọrụ ahụ si dị ike.

N'oge ule ibu, anyị na-elele ma oriri akụrụngwa na-ezute oke edobere. Anyị na-elekwasịkwa anya na imebiga ihe ókè.

a) Anyị na-ele anya na mkpokọta ibu.
- Obere obere - o yikarịrị ka ihe anaghị arụ ọrụ ma ọ bụrụ na ibu ahụ daa na mberede ọtụtụ ugboro.
- Oke oke - njikarịcha achọrọ.

b) Anyị na-ele cutoff dị ka RPS si kwuo.
N'ebe a, anyị na-eleba anya na ọdịiche dị n'etiti ụdị dị ugbu a na nke gara aga na ọnụ ọgụgụ zuru ezu. Dịka ọmụmaatụ, ọ bụrụ na ọrụ na-emepụta 100 rps, mgbe ahụ, edeghị ya nke ọma, ma ọ bụ nke a bụ nkọwa ya, ma n'ọnọdụ ọ bụla, nke a bụ ihe mere ị ga-eji lelee ọrụ ahụ anya.
Ọ bụrụ na, n'ụzọ megidere nke ahụ, enwere ọtụtụ RPS, mgbe ahụ ikekwe enwere ụdị ahụhụ na ụfọdụ njedebe akwụsịla ịrụ ọrụ ịkwụ ụgwọ, mana nke ọzọ na-akpalite. return true;

Nnwale Canary

Mgbe anyị gafere ule sịntetik, anyị na-anwale microservice na ọnụ ọgụgụ dị nta nke ndị ọrụ. Anyị na-amalite nke ọma, na-eji obere òkè nke ndị echere ọrụ ahụ - ihe na-erughị 0,1%. N'oge a, ọ dị ezigbo mkpa na a na-etinye metric teknụzụ ziri ezi na ngwaahịa na nlekota ka ha gosi nsogbu ahụ na ọrụ ngwa ngwa o kwere mee. Oge kacha nta maka ule canary bụ nkeji 5, nke bụ isi bụ awa 2. Maka ọrụ dị mgbagwoju anya, anyị na-eji aka anyị na-ewepụta oge.
Ka anyị nyochaa:
- metrik akọwapụtara asụsụ, ọkachasị, ndị ọrụ php-fpm;
- njehie na Sentry;
- nzaghachi statuses;
- oge nzaghachi, kpọmkwem na nkezi;
- latency;
- ewepụrụ, hazie na enweghị njikwa;
- ngwaahịa metrik.

Nnwale afanye

A na-akpọkwa ule squeeze ule ule “squeezing”. E webatara aha usoro ahụ na Netflix. Ihe kacha mkpa bụ na anyị ga-ebu ụzọ mejupụta otu ihe atụ na ezigbo okporo ụzọ ruo n'ókè nke ọdịda wee si otú a debe oke ya. Mgbe ahụ, anyị na-agbakwunye ihe atụ ọzọ ma buo ụzọ a - ọzọ na nke kachasị; anyị na-ahụ n'uko ha na delta na mbụ "mpikota onu". Ya mere, anyị na-ejikọta otu ihe atụ n'otu oge ma gbakọọ usoro mgbanwe.
Nyochaa data site na “ịpịpịa” na-abanyekwa na nchekwa data metrik nkịtị, ebe anyị na-eji ha na-eme ka nsonaazụ arụ arụrụ arụ, ma ọ bụ jiri ha dochie “synthetics”.

Mmepụta

• Ịkwalite. Mgbe anyị wepụrụ ọrụ maka mmepụta, anyị na-enyocha ka ọ na-agbakọ. Na ahụmịhe anyị, nlekota naanị ihe ngosi CPU adịghị arụ ọrụ. Ntugharị akpaaka na RPS benchmarking n'ụdị ya dị ọcha na-arụ ọrụ, mana ọ bụ naanị maka ụfọdụ ọrụ, dị ka nkwanye ntanetị. Yabụ na anyị ga-ebu ụzọ leba anya na metrik ngwaahịa akọwapụtara ngwa.

N'ihi nke a, mgbe ị na-atụgharị, anyị na-enyocha:
- CPU na RAM egosi,
- ọnụ ọgụgụ nke arịrịọ na kwụ n'ahịrị,
- oge nzaghachi,
- amụma dabere na chịkọbara data akụkọ ihe mere eme.

Mgbe ị na-atụgharị ọrụ, ọ dịkwa mkpa iji nyochaa ndabere ya ka anyị ghara ibu ọrụ mbụ na agbụ ahụ, na ndị ọ na-enweta na-ada n'okpuru ibu. Iji guzobe ibu a na-anakwere maka ọdọ mmiri niile nke ọrụ, anyị na-elele data akụkọ ihe mere eme nke ọrụ dabere na "kachasị nso" (dabere na nchikota nke CPU na RAM, yana ngwa-metrics akọwapụtara) wee jiri ya tụnyere data akụkọ ihe mere eme. nke ọrụ mmalite, na ihe ndị ọzọ n'ime oge niile "agbụ ndabere" ", site n'elu ruo na ala.

Ọrụ

Mgbe etinyere microservice n'ọrụ, anyị nwere ike itinye ihe mkpali na ya.

Nke a bụ ọnọdụ a na-ahụkarị nke mkpalite na-eme.
- Achọpụtara ọpụpụ nwere ike ịdị ize ndụ.
- A tọhapụrụ mmelite nchekwa.
- Emelitebeghị ọrụ ahụ n'onwe ya ogologo oge.
- Ibu ọrụ ahụ agbadala nke ọma ma ọ bụ ụfọdụ metrik ngwaahịa ya apụọla n'usoro.
— Ọrụ agaghịkwa ezute ọhụrụ ikpo okwu chọrọ.

Ụfọdụ n'ime ihe ndị na-akpali akpali na-ahụ maka nkwụsi ike nke ọrụ, ụfọdụ - dị ka ọrụ nke nhazi usoro - dịka ọmụmaatụ, ụfọdụ ọrụ adịghị arụ ọrụ ogologo oge na ihe oyiyi isi ya akwụsịla ịgafe nlele nchekwa.

Dashboard

Na nkenke, dashboard bụ njikwa njikwa nke PaaS anyị niile.

  • Otu ihe ọmụma banyere ọrụ ahụ, yana data na mkpuchi ule ya, ọnụ ọgụgụ nke ihe oyiyi ya, ọnụ ọgụgụ nke mmepụta ihe, nsụgharị, wdg.
  • Ngwá ọrụ maka nzacha data site na ọrụ na akara (akara akara nke akụkụ azụmahịa, ọrụ ngwaahịa, wdg)
  • Ngwa mgbakwunye nwere akụrụngwa akụrụngwa maka ịchụ, ndekọ na nleba anya.
  • Otu ebe akwụkwọ ọrụ.
  • Otu echiche nke mmemme niile n'ofe ọrụ.

Kedu ihe anyị maara gbasara microservices
Kedu ihe anyị maara gbasara microservices
Kedu ihe anyị maara gbasara microservices
Kedu ihe anyị maara gbasara microservices

Ọnụ

Tupu iwebata PaaS, onye nrụpụta ọhụrụ nwere ike nọrọ ọtụtụ izu ịghọta ngwaọrụ niile dị mkpa iji malite microservice na mmepụta: Kubernetes, Helm, njirimara TeamCity anyị dị n'ime, melite njikọ na ọdụ data na cache n'ụzọ na-adịghị mma, wdg Ugbu a na-ewe awa ole na ole iji gụọ mmalite ngwa ngwa wee mepụta ọrụ ahụ n'onwe ya.

Enyere m akụkọ banyere isiokwu a maka HighLoad ++ 2018, ị nwere ike ile ya видео и ngosi.

Dashi track maka ndị na-agụ ruo ọgwụgwụ

Anyị na Avito na-ahazi ọzụzụ ime ụbọchị atọ maka ndị mmepe si Chris Richardson, ọkachamara na microservice architecture. Ọ ga-amasị anyị ịnye otu n'ime ndị na-agụ akwụkwọ ozi a ohere isonye na ya. ọ bụ Ebiputela mmemme ọzụzụ ahụ.

Ọzụzụ a ga-eme site na August 5 ruo 7 na Moscow. Ndị a bụ ụbọchị ọrụ ga-arụ ọrụ nke ọma. Nri ehihie na ọzụzụ ga-adị n'ọfịs anyị, onye a họọrọ ga-akwụ ụgwọ maka njem na ebe obibi n'onwe ya.

Ị nwere ike itinye akwụkwọ maka nsonye n'ụdị google a. Site n'aka gị - azịza nke ajụjụ mere ị ga-eji gaa ọzụzụ na ozi gbasara otu esi akpọtụrụ gị. Zaa na Bekee, n'ihi na Chris ga-ahọrọ onye so na ya ga-aga ọzụzụ n'onwe ya.
Anyị ga-akpọsa aha onye sonyere ọzụzụ na mmelite na post a yana na netwọkụ mmekọrịta Avito maka ndị mmepe (AvitoTech in Facebook, Вконтакте, Twitter) agaghị emecha na Julaị 19.

isi: www.habr.com

Tinye a comment