Dè tha fios againn mu dheidhinn microservices

Halò! Is e m ’ainm Vadim Madison, tha mi a’ stiùireadh leasachadh Àrd-ùrlar Siostam Avito. Chaidh a ràdh barrachd air aon uair mar a tha sinne sa chompanaidh a’ gluasad bho ailtireachd monolithic gu fear microservices. Tha an t-àm ann a bhith a’ roinn mar a dh’ atharraich sinn ar bun-structar gus a’ chuid as fheàrr fhaighinn à meanbh-sheirbheisean agus gus casg a chuir oirnn fhìn a dhol air chall annta. Mar a tha PaaS gar cuideachadh an seo, mar a rinn sinn simplidh air cleachdadh agus a lughdaich sinn cruthachadh meanbh-sheirbheis gu aon bhriogadh - leugh air adhart. Chan eil a h-uile dad a sgrìobhas mi mu dheidhinn gu h-ìosal air a làn bhuileachadh ann an Avito, is e cuid dheth mar a leasaicheas sinn an àrd-ùrlar againn.

(Agus aig deireadh an artaigil seo, bruidhnidh mi mun chothrom a bhith an làthair aig co-labhairt trì latha bhon eòlaiche ailtireachd microservice Chris Richardson).

Dè tha fios againn mu dheidhinn microservices

Mar a thàinig sinn gu microservices

Is e Avito aon de na làraich seòrsaichte as motha san t-saoghal; tha còrr air 15 millean sanas ùr air am foillseachadh air gach latha. Tha an cùl-taic againn a’ gabhail ri còrr air 20 mìle iarrtas gach diog. Tha grunn cheudan microservices againn an-dràsta.

Tha sinn air a bhith a’ togail ailtireachd microservice airson grunn bhliadhnaichean a-nis. Dè cho dìreach - ar co-obraichean gu mionaideach dh ’innis aig an roinn againn aig RIT++ 2017. Aig CodeFest 2017 (faic. видео), Mhìnich Sergey Orlov agus Mikhail Prokopchuk gu mionaideach carson a bha feum againn air a’ ghluasad gu microservices agus dè a’ phàirt a bh’ aig Kubernetes an seo. Uill, a-nis tha sinn a’ dèanamh a h-uile càil gus na cosgaisean sgèileachaidh a tha dualach do dh’ ailtireachd mar sin a lughdachadh.

An toiseach, cha do chruthaich sinn eag-shiostam a chuidicheadh ​​​​gu coileanta sinn le bhith a’ leasachadh agus a’ cur air bhog microservices. Chruinnich iad dìreach fuasglaidhean stòr fosgailte ciallach, chuir iad air bhog iad aig an taigh agus thug iad cuireadh don leasaiche dèiligeadh riutha. Mar thoradh air an sin, chaidh e gu dusan àite (dashboards, seirbheisean a-staigh), às deidh sin dh'fhàs e na bu làidire na mhiann a bhith a 'gearradh còd san t-seann dòigh, ann am monolith. Tha an dath uaine anns na diagraman gu h-ìosal a 'sealltainn na tha an leasaiche a' dèanamh aon dòigh no dòigh eile le a làmhan fhèin, agus tha an dath buidhe a 'comharrachadh fèin-ghluasad.

Dè tha fios againn mu dheidhinn microservices

A-nis ann an goireas PaaS CLI, tha seirbheis ùr air a chruthachadh le aon àithne, agus tha stòr-dàta ùr air a chur ris le dhà eile agus air a chuir gu Ìre.

Dè tha fios againn mu dheidhinn microservices

Mar a gheibh thu thairis air an àm "sgaradh meanbh-sheirbheis"

Le ailtireachd monolithic, air sgàth cunbhalachd atharrachaidhean anns an toradh, thàinig air luchd-leasachaidh faighinn a-mach dè a bha a ’dol leis na nàbaidhean aca. Nuair a bhios tu ag obair air an ailtireachd ùr, chan eil co-theacsan seirbheis an urra ri chèile tuilleadh.

A bharrachd air an sin, airson ailtireachd microservice a bhith èifeachdach, feumar mòran phròiseasan a stèidheachadh, is iad sin:

• logadh;
• lorg lorg (Jaeger);
• mearachd cruinneachadh (Sentry);
• inbhean, teachdaireachdan, tachartasan bho Kubernetes (Pròiseas Sruth Tachartas);
• crìoch rèis / inneal-cuairteachaidh (faodaidh tu Hystrix a chleachdadh);
• smachd air ceangal seirbheis (bidh sinn a' cleachdadh Netramesh);
• sgrùdadh (Grafana);
• co-chruinneachadh (TeamCity);
• conaltradh agus fios (Slack, post-dealain);
• tracadh ghnìomhan; (Jira)
• ullachadh sgrìobhainnean.

Gus dèanamh cinnteach nach caill an siostam a ionracas agus gum fuirich e èifeachdach mar a bhios e a’ sgèile, rinn sinn ath-bheachdachadh air eagrachadh microservices ann an Avito.

Mar a stiùireas sinn microservices

Tha an cuideachadh a leanas gus “poileasaidh pàrtaidh” aonaichte a chuir an gnìomh am measg mòran de mhicro-sheirbheisean Avito:

  • bun-structair a roinn ann an sreathan;
  • Bun-bheachd Àrd-ùrlar mar Sheirbheis (PaaS);
  • cumail sùil air a h-uile càil a thachras le microservices.

Tha sreathan tarraing bun-structair a’ toirt a-steach trì sreathan. Rachamaid bho mhullach gu bonn.

A. Top - mogal seirbheis. An toiseach dh'fheuch sinn Istio, ach thionndaidh e a-mach gu bheil e a 'cleachdadh cus ghoireasan, a tha ro dhaor airson ar leabhraichean. Mar sin, leasaich àrd-innleadair anns an sgioba ailtireachd Alexander Lukyanchenko am fuasgladh aige fhèin - netramesh (ri fhaighinn ann an Open Source), a bhios sinn a’ cleachdadh an-dràsta ann an cinneasachadh agus a bhios ag ithe grunn thursan nas lugha de ghoireasan na Istio (ach nach dèan a h-uile càil a dh’ fhaodas Istio a dhèanamh).
B. Meadhanach - Kubernetes. Bidh sinn a’ cleachdadh agus ag obrachadh microservices air.
C. Bun - meatailt lom. Cha bhith sinn a’ cleachdadh sgòthan no rudan mar OpenStack, ach tha sinn gu tur an urra ri meatailt lom.

Tha na sreathan uile air an cur còmhla le PaaS. Agus tha an àrd-ùrlar seo, ann an tionndadh, air a dhèanamh suas de thrì pàirtean.

I. Gineadairean, air a riaghladh tro ghoireas CLI. Is i ise a chuidicheas an leasaiche gus microservice a chruthachadh san dòigh cheart agus leis an oidhirp as lugha.

II. Neach-cruinneachaidh cruinn le smachd air a h-uile inneal tro deas-bhòrd cumanta.

III. Stòradh. A’ ceangal ri luchd-clàraidh a bhios gu fèin-ghluasadach a’ suidheachadh brosnachaidhean airson gnìomhan cudromach. Taing dha leithid de shiostam, chan eil aon ghnìomh air a chall dìreach air sgàth gun do dhìochuimhnich cuideigin gnìomh a chuir air dòigh ann an Jira. Bidh sinn a’ cleachdadh inneal a-staigh ris an canar Atlas airson seo.

Dè tha fios againn mu dheidhinn microservices

Tha buileachadh microservices ann an Avito cuideachd air a dhèanamh a rèir aon sgeama, a bhios a ’sìmpleachadh smachd orra aig gach ìre de leasachadh agus sgaoileadh.

Ciamar a tha loidhne-phìoban leasachaidh microservice àbhaisteach ag obair?

San fharsaingeachd, tha an t-sreath cruthachaidh microservice a 'coimhead mar seo:

CLI-putadh → Amalachadh leantainneach → Bèicearachd → Cleachd → Deuchainnean fuadain → Deuchainnean canary → Deuchainn brùthadh → Dèanamh → Cumail suas.

Rachamaid troimhe gu dìreach san òrdugh seo.

CLI-putadh

• Cruthachadh microservice.
Bha sinn a’ strì airson ùine mhòr a bhith a’ teagasg do gach leasaiche mar a dhèanadh iad meanbh-sheirbheisean. Ghabh seo a-steach sgrìobhadh stiùireadh mionaideach ann an Confluence. Ach dh'atharraich na sgeamaichean agus chaidh cur ris. Mar thoradh air an sin, nochd cnap-starra aig toiseach an turais: thug e tòrr a bharrachd ùine airson microservices a chuir air bhog, agus bha duilgheadasan fhathast ag èirigh nuair a chaidh an cruthachadh.

Aig a’ cheann thall, thog sinn goireas CLI sìmplidh a nì fèin-ghluasad air na ceumannan bunaiteach nuair a chruthaicheas sinn microservice. Gu dearbh, tha e a 'dol an àite a' chiad phut git. Seo dìreach na tha i a’ dèanamh.

- A’ cruthachadh seirbheis a rèir teamplaid - ceum air cheum, ann am modh “draoidh”. Tha teamplaidean againn airson na prìomh chànanan prògramaidh ann an backend Avito: PHP, Golang agus Python.

- Bidh aon àithne aig aon àm a’ cleachdadh àrainneachd airson leasachadh ionadail air inneal sònraichte - thèid Minikube a chuir air bhog, bidh clàran Helm air an gineadh gu fèin-ghluasadach agus air an cur air bhog ann an kubernetes ionadail.

- A’ ceangal an stòr-dàta a tha a dhìth. Chan fheum an leasaiche eòlas fhaighinn air an IP, logadh a-steach agus facal-faire gus faighinn chun stòr-dàta a dh’ fheumas e - biodh e gu h-ionadail, aig Ìre, no ann an riochdachadh. A bharrachd air an sin, tha an stòr-dàta air a chuir gu feum sa bhad ann an rèiteachadh fulangach ri lochdan agus le cothromachadh.

- Bidh e a’ coileanadh co-chruinneachadh beò fhèin. Canaidh sinn gun do cheartaich leasaiche rudeigin ann am microservice tron ​​​​IDE aige. Bidh an goireas a’ faicinn atharrachaidhean san t-siostam faidhle agus, stèidhichte orra, ag ath-thogail an tagraidh (airson Golang) agus ag ath-thòiseachadh. Airson PHP, bidh sinn dìreach a ’cur air adhart an eòlaire taobh a-staigh a’ chiùb agus an sin gheibhear ath-luchdachadh beò “gu fèin-ghluasadach”.

- A’ cruthachadh fèin-dheuchainnean. Ann an cruth beàrnan, ach gu math freagarrach airson a chleachdadh.

• Cleachdadh microservice.

B’ e obair chruaidh a bh’ ann dhuinn a bhith a’ cleachdadh meanbh-sheirbheis. Bha feum air na leanas:

I. Dockerfile.

II. Config.
III. Clàr Helm, a tha fhèin duilich agus a 'toirt a-steach:

- na clàran fhèin;
- teamplaidean;
- luachan sònraichte a’ toirt aire do dhiofar àrainneachdan.

Tha sinn air am pian a thoirt a-mach à ath-obrachadh Kubernetes manifests gus am bi iad a-nis air an gineadh gu fèin-ghluasadach. Ach nas cudromaiche, rinn iad nas sìmplidhe an cleachdadh chun ìre as ìsle. Bho seo a-mach tha Dockerfile againn, agus bidh an leasaiche a’ sgrìobhadh an rèiteachadh gu lèir ann an aon fhaidhle app.toml goirid.

Dè tha fios againn mu dheidhinn microservices

Tha, agus ann an app.toml fhèin chan eil dad ri dhèanamh airson mionaid. Bidh sinn a’ sònrachadh càite agus cia mheud leth-bhreac den t-seirbheis a thogas sinn (air an t-seirbheisiche dev, air an àrd-ùrlar, ann an cinneasachadh), agus a’ comharrachadh a eisimeileachd. Mothaich an loidhne size = "beag" sa bhloc [einnsean]. Is e seo a’ chrìoch a thèid a thoirt don t-seirbheis tro Kubernetes.

An uairsin, stèidhichte air an rèiteachadh, thèid na clàran Helm riatanach uile a chruthachadh gu fèin-ghluasadach agus thèid ceanglaichean ris na stòran-dàta a chruthachadh.

• Dearbhadh bunaiteach. Tha sgrùdaidhean mar seo cuideachd fèin-ghluasadach.
Tha feum air tracadh:
— a bheil Dockerfile ann;
— a bheil app.toml;
- a bheil sgrìobhainnean rim faighinn?
- a bheil an eisimeileachd ann an òrdugh?
- a bheil riaghailtean rabhaidh air an suidheachadh.
Chun a 'phuing mu dheireadh: bidh sealbhadair na seirbheis fhèin a' dearbhadh dè na slatan-tomhais toraidh airson sùil a chumail.

• Ag ullachadh sgrìobhainnean.
Tha e fhathast na raon trioblaid. Tha e coltach gur e seo an rud as fhollaisiche, ach aig an aon àm tha e cuideachd na chlàr “gu tric air a dhìochuimhneachadh”, agus mar sin ceangal so-leònte san t-sreath.
Tha e riatanach gu bheil sgrìobhainnean ann airson gach microservice. Tha e a’ toirt a-steach na blocaichean a leanas.

I. Tuairisgeul goirid air an t-seirbhis. Gu litearra beagan sheantansan mu na bhios e a’ dèanamh agus carson a tha feum air.

II. Ceangal sgeama na h-ailtireachd. Tha e cudromach gum bi e furasta a thuigsinn le sùil sgiobalta air, mar eisimpleir, a bheil thu a’ cleachdadh Redis airson tasgadh no mar phrìomh stòr dàta ann am modh leantainneach. Ann an Avito airson a-nis tha seo na cheangal ri Confluence.

III. Leabhar-ruith. Iùl goirid mu bhith a’ tòiseachadh na seirbheis agus cho iom-fhillte ‘s a tha e a bhith ga làimhseachadh.

IV. Ceistean Cumanta, far am biodh e math a bhith a’ dùileachadh na duilgheadasan a dh’ fhaodadh a bhith aig do cho-obraichean nuair a bhios tu ag obair leis an t-seirbheis.

V. Tuairisgeul air puingean crìochnachaidh airson an API. Mura do shònraich thu na cinn-uidhe gu h-obann, bidh co-obraichean aig a bheil na microservices co-cheangailte riut fhèin gu cinnteach a’ pàigheadh ​​air a shon. A-nis bidh sinn a’ cleachdadh Swagger agus ar fuasgladh ris an canar goirid airson seo.

VI. Bileagan. No comharran a sheallas dè an toradh, gnìomh, no roinn structarail den chompanaidh leis am buin an t-seirbheis. Cuidichidh iad thu le bhith a’ tuigsinn gu sgiobalta, mar eisimpleir, a bheil thu a’ gearradh comas-gnìomh a chuir do cho-obraichean a-mach airson an aon aonad gnìomhachais o chionn seachdain.

VII. Sealbhadair no luchd-seilbh na seirbheis. Anns a’ mhòr-chuid de chùisean, faodar - no iadsan - a dhearbhadh gu fèin-ghluasadach le bhith a’ cleachdadh PaaS, ach airson a bhith air an taobh shàbhailte, feumaidh sinn an leasaiche an sònrachadh le làimh.

Mu dheireadh, tha e na chleachdadh math ath-sgrùdadh a dhèanamh air sgrìobhainnean, coltach ri ath-sgrùdadh còd.

Integreachadh leantainneach

  • Ag ullachadh stòran.
  • A’ cruthachadh loidhne-phìoban ann an TeamCity.
  • A 'suidheachadh chòraichean.
  • Lorg airson luchd-seilbh seirbheis. Tha sgeama tar-chinealach an seo - comharrachadh làimhe agus glè bheag de fèin-ghluasad bho PaaS. Bidh sgeama làn fèin-ghluasadach a’ fàiligeadh nuair a thèid seirbheisean a ghluasad airson taic gu sgioba leasachaidh eile no, mar eisimpleir, ma sguireas leasaiche na seirbheis.
  • Clàradh seirbheis ann an Atlas (faic gu h-àrd). Leis a h-uile sealbhadair agus eisimeileachd.
  • A’ sgrùdadh imrich. Nì sinn sgrùdadh a bheil gin dhiubh a dh’ fhaodadh a bhith cunnartach. Mar eisimpleir, ann an aon dhiubh nochdaidh clàr alter no rudeigin eile a dh’ fhaodadh co-chòrdalachd an sgeama dàta a bhriseadh eadar diofar dhreachan den t-seirbheis. An uairsin chan eil an imrich air a dhèanamh, ach air a chuir ann an ballrachd - feumaidh am PaaS sealbhadair na seirbheis a chomharrachadh nuair a tha e sàbhailte a chleachdadh.

Bèicear

Is e an ath ìre seirbheisean pacaidh mus tèid an cleachdadh.

  • A 'togail an iarrtais. A rèir nan clasaigeach - ann an ìomhaigh Docker.
  • Gineadh clàran Helm airson na seirbheis fhèin agus goireasan co-cheangailte. A’ gabhail a-steach airson stòran-dàta agus tasgadan. Bidh iad air an cruthachadh gu fèin-ghluasadach a rèir an config app.toml a chaidh a chruthachadh aig ìre CLI-push.
  • A’ cruthachadh thiogaidean airson rianairean gus puirt fhosgladh (nuair a bhios feum air).
  • A 'ruith deuchainnean aonad agus a' cunntadh còmhdach còd. Ma tha còmhdach a 'chòd nas ìsle na an ìre shònraichte, is coltaiche nach tèid an t-seirbheis nas fhaide - gu cleachdadh. Ma tha e faisg air làimh, thèid co-èifeachd “pessimizing” a thoirt don t-seirbheis: an uairsin, mura h-eil leasachadh air a’ chomharra thar ùine, gheibh an leasaiche fios nach eil adhartas sam bith ann a thaobh deuchainnean ( agus feumar rudeigin a dhèanamh mu dheidhinn).
  • A 'cunntadh airson cuimhne agus crìochan CPU. Bidh sinn gu ìre mhòr a’ sgrìobhadh microservices ann an Golang agus gan ruith ann an Kubernetes. Mar sin aon subtlety co-cheangailte ri sònraichteachd a’ chànain Golang: gu bunaiteach, nuair a thòisicheas tu, thathas a’ cleachdadh a h-uile cores air an inneal, mura suidhich thu an caochladair GOMAXPROCS gu soilleir, agus nuair a thèid grunn sheirbheisean mar sin a chuir air bhog air an aon inneal, tòisichidh iad. gus farpais airson goireasan, a 'cur bacadh air a chèile. Tha na grafaichean gu h-ìosal a’ sealltainn mar a dh’atharraicheas an ùine cur-an-gnìomh ma ruitheas tu an aplacaid gun aimhreit agus anns a’ mhodh rèis airson goireasan. (Tha stòran ghrafaichean an seo).

Dè tha fios againn mu dheidhinn microservices

Ùine cur gu bàs, tha nas lugha nas fheàrr. As àirde tron: 643ms, as ìsle: 42ms. Faodar cliogadh air an dealbh.

Dè tha fios againn mu dheidhinn microservices

Tha an ùine airson obair-lannsa, nas lugha nas fheàrr. As àirde tron: 14091 ns, as ìsle: 151 ns. Faodar cliogadh air an dealbh.

Aig ìre ullachaidh an t-seanaidh, faodaidh tu an caochladair seo a shuidheachadh gu soilleir no faodaidh tu an leabharlann a chleachdadh automax procs bho na balaich à Uber.

Sgaoileadh

• A' sgrùdadh ghnàthasan. Mus tòisich thu a’ lìbhrigeadh co-chruinneachaidhean seirbheis don àrainneachd a tha san amharc agad, feumaidh tu sgrùdadh a dhèanamh air na leanas:
- puingean crìochnachaidh API.
- Gèilleadh ri freagairtean crìochnachaidh API leis an sgeama.
- Cruth log.
- Suidhich cinn-cinn airson iarrtasan don t-seirbheis (an-dràsta tha seo ga dhèanamh le netramesh)
- A’ suidheachadh comharra an t-sealbhadair nuair a chuireas tu teachdaireachdan gu bus an tachartais. Tha feum air seo gus sùil a chumail air ceanglaichean nan seirbheisean tarsainn a’ bhus. Faodaidh tu an dà chuid dàta idempotent a chuir chun bhus, nach eil a’ meudachadh ceangal sheirbheisean (a tha math), agus dàta gnìomhachais a neartaicheas ceangal sheirbheisean (a tha gu math dona!). Agus aig an ìre nuair a thig an ceangal seo gu bhith na dhuilgheadas, bidh tuigse air cò a bhios a’ sgrìobhadh agus a’ leughadh a’ bhus a’ cuideachadh le bhith a’ sgaradh sheirbheisean gu ceart.

Chan eil mòran ghnàthasan ann an Avito fhathast, ach tha an amar aca a’ leudachadh. Mar as motha a bhios aontaidhean mar sin rim faighinn ann an cruth a thuigeas agus a thuigeas an sgioba, is ann as fhasa a bhios e cunbhalachd a chumail eadar microservices.

Deuchainnean synthetach

• Deuchainn lùb dùinte. Airson seo tha sinn a-nis a’ cleachdadh open source Hoverfly.io. An toiseach, bidh e a’ clàradh an fhìor luchd air an t-seirbheis, an uairsin - dìreach ann an lùb dùinte - bidh e ga atharrais.

• Deuchainn Stress. Bidh sinn a’ feuchainn ris a h-uile seirbheis a thoirt gu coileanadh as fheàrr. Agus feumaidh a h-uile dreach de gach seirbheis a bhith fo ùmhlachd deuchainn luchd - mar seo tuigidh sinn coileanadh gnàthach na seirbheis agus an eadar-dhealachadh le dreachan roimhe den aon sheirbheis. Ma tha, às deidh ùrachadh seirbheis, gun do thuit a choileanadh aon uair gu leth, tha seo na chomharradh soilleir don luchd-seilbh aige: feumaidh tu a dhol a-steach don chòd agus an suidheachadh a cheartachadh.
Bidh sinn a’ cleachdadh an dàta a chaidh a chruinneachadh, mar eisimpleir, gus sgèileadh chàraichean a chuir an gnìomh gu ceart agus, aig a’ cheann thall, mar as trice a’ tuigsinn cho so-ruigsinn sa tha an t-seirbheis.

Rè deuchainn luchdan, nì sinn sgrùdadh a bheil caitheamh ghoireasan a’ coinneachadh ris na crìochan stèidhichte. Agus bidh sinn a’ cuimseachadh gu sònraichte air crìochan.

a) Bheir sinn sùil air an luchd iomlan.
- Ro bheag - is coltaiche nach obraich rudeigin idir ma thuiteas an luchd gu h-obann grunn thursan.
- Ro mhòr - tha feum air optimization.

b) Bidh sinn a’ coimhead air an gearradh a rèir RPS.
An seo bheir sinn sùil air an eadar-dhealachadh eadar an dreach làithreach agus an tè roimhe agus an àireamh iomlan. Mar eisimpleir, ma tha seirbheis a 'toirt a-mach 100 rps, tha e an dàrna cuid air a sgrìobhadh gu dona, no is e seo a shònrachadh, ach co-dhiù, tha seo na adhbhar airson coimhead gu dlùth ris an t-seirbheis.
Ma tha, air an làimh eile, gu bheil cus RPS ann, is dòcha gu bheil bug de sheòrsa air choreigin ann agus gu bheil cuid de na puingean crìochnachaidh air stad a chuir air an uallach pàighidh, ach tha fear eile dìreach air a phiobrachadh return true;

Deuchainnean Canary

Às deidh dhuinn a dhol seachad air na deuchainnean synthetigeach, bidh sinn a’ dèanamh deuchainn air a ’mhicroservice air àireamh bheag de luchd-cleachdaidh. Bidh sinn a’ tòiseachadh gu faiceallach, le cuibhreann beag den luchd-èisteachd a tha san amharc aig an t-seirbheis - nas lugha na 0,1%. Aig an ìre seo, tha e glè chudromach gu bheil na tomhasan teicnigeach agus toraidh ceart air an toirt a-steach don sgrùdadh gus an seall iad an duilgheadas san t-seirbheis cho luath ‘s a ghabhas. Is e 5 mionaidean an ùine as lugha airson deuchainn canary, is e am prìomh fhear 2 uair. Airson seirbheisean iom-fhillte, bidh sinn a 'suidheachadh an ùine le làimh.
Dèanamaid anailis:
- meatrach cànain sònraichte, gu sònraichte, luchd-obrach php-fpm;
- mearachdan ann an Sentry;
- suidheachadh freagairt;
- ùine freagairt, ceart agus cuibheasach;
- latency;
- eisgeachdan, air an giullachd agus gun làimhseachadh;
- slatan-tomhais toraidh.

Deuchainn Squeeze

Canar deuchainn “brùthadh” ri Deuchainn Squeeze cuideachd. Chaidh ainm an innleachd a thoirt a-steach do Netflix. Is e an fhìrinn gum bi sinn an-toiseach a’ lìonadh aon eisimpleir le fìor thrafaig chun ìre fàiligeadh agus mar sin a’ suidheachadh a chrìoch. An uairsin cuiridh sinn eisimpleir eile ris agus luchdaich sinn am paidhir seo - a-rithist chun ìre as àirde; chì sinn am mullach agus an delta leis a’ chiad “squeeze”. Agus mar sin bidh sinn a’ ceangal aon eisimpleir aig an aon àm agus a’ tomhas pàtran nan atharrachaidhean.
Bidh dàta deuchainn tro “brùthadh” cuideachd a’ sruthadh a-steach do stòr-dàta meatrach cumanta, far am bi sinn an dàrna cuid a’ beairteachadh toraidhean luchdan fuadain leotha, no eadhon a’ cur “synthetics” nan àite.

Riochdachadh

• Sgèileadh. Nuair a chuireas sinn seirbheis a-mach gu cinneasachadh, bidh sinn a’ cumail sùil air mar a bhios e a’ sgèile. Anns an eòlas againn, chan eil e èifeachdach ach sùil a chumail air comharran CPU. Bidh sgèileadh fèin-ghluasadach le slat-tomhais RPS na fhìor chruth ag obair, ach dìreach airson cuid de sheirbheisean, leithid sruthadh air-loidhne. Mar sin bidh sinn a’ coimhead an-toiseach air meatrach toraidh a tha sònraichte don tagradh.

Mar thoradh air an sin, nuair a bhios sinn a’ sgèileadh bidh sinn a’ sgrùdadh:
- Comharran CPU agus RAM,
- an àireamh de dh’iarrtasan anns a’ chiudha,
- ùine freagairt,
- ro-aithris stèidhichte air dàta eachdraidheil cruinnichte.

Nuair a bhios sinn a’ sgèileadh seirbheis, tha e cudromach cuideachd sùil a chumail air na h-eisimeileachd aige gus nach bi sinn a’ sgèile a’ chiad sheirbheis san t-sreath, agus nach bi an fheadhainn a gheibh e a’ fàilligeadh fo luchd. Gus luchd iomchaidh a stèidheachadh airson an cruinneachadh iomlan de sheirbheisean, bidh sinn a’ coimhead air dàta eachdraidheil na seirbheis eisimeileach “as fhaisge” (stèidhichte air measgachadh de chomharran CPU agus RAM, còmhla ri slatan-tomhais sònraichte app) agus gan coimeas ris an dàta eachdraidheil. den t-seirbheis tòiseachaidh, agus mar sin air adhart tron ​​​​"sreath eisimeileachd", ", bho mhullach gu bonn.

Seirbheis

Às deidh am microservice a chuir an gnìomh, is urrainn dhuinn innealan-brosnachaidh a cheangal ris.

Seo suidheachaidhean àbhaisteach far am bi luchd-brosnachaidh a’ tachairt.
- Chaidh imrich a dh’ fhaodadh a bhith cunnartach a lorg.
- Chaidh ùrachaidhean tèarainteachd fhoillseachadh.
- Cha deach an t-seirbheis fhèin ùrachadh airson ùine mhòr.
- Tha an luchd air an t-seirbheis air a dhol sìos gu mòr no tha cuid de na meatrach toraidh taobh a-muigh an raon àbhaisteach.
- Chan eil an t-seirbheis a’ coinneachadh ri riatanasan àrd-ùrlair ùra tuilleadh.

Tha uallach air cuid de luchd-brosnachaidh airson seasmhachd obrachaidh, cuid - mar dhleastanas cumail suas siostam - mar eisimpleir, cha deach cuid de sheirbheis a chleachdadh airson ùine mhòr agus tha an ìomhaigh bhunaiteach aige air sgur a dhol seachad air sgrùdaidhean tèarainteachd.

Deas-bhòrd

Ann an ùine ghoirid, is e an deas-bhòrd am pannal smachd den PaaS gu lèir againn.

  • Aon phuing fiosrachaidh mun t-seirbheis, le dàta air a chòmhdach deuchainn, an àireamh de dhealbhan, an àireamh de lethbhric riochdachaidh, dreachan, msaa.
  • Inneal airson dàta a shìoladh a rèir seirbheisean agus bileagan (comharran a bhuineas do dh'aonadan gnìomhachais, gnìomhachd toraidh, msaa.)
  • Inneal airson amalachadh le innealan bun-structair airson lorg, logadh agus sgrùdadh.
  • Sgrìobhainnean aon phuing seirbheis.
  • Aon shealladh air a h-uile tachartas thar sheirbheisean.

Dè tha fios againn mu dheidhinn microservices
Dè tha fios againn mu dheidhinn microservices
Dè tha fios againn mu dheidhinn microservices
Dè tha fios againn mu dheidhinn microservices

Iomlan

Mus tèid PaaS a thoirt a-steach, dh’ fhaodadh leasaiche ùr grunn sheachdainean a chaitheamh a’ tuigsinn na h-innealan uile a tha riatanach gus meanbh-sheirbheis a chuir air bhog ann an cinneasachadh: Kubernetes, Helm, na feartan TeamCity a-staigh againn, a’ stèidheachadh cheanglaichean ri stòran-dàta agus caches ann an dòigh fulangach ri lochdan, msaa. bheir e uair no dhà airson an quickstart a leughadh agus an t-seirbheis fhèin a chruthachadh.

Thug mi aithisg seachad air a’ chuspair seo airson HighLoad ++ 2018, faodaidh tu coimhead air видео и taisbeanadh.

Rian bònas dhaibhsan a leugh gu deireadh

Tha sinne aig Avito a’ cur trèanadh trì latha a-staigh air dòigh do luchd-leasachaidh bho Chris Richardson, eòlaiche ann an ailtireachd microservice. Bu mhath leinn an cothrom pàirt a ghabhail ann do fhear de luchd-leughaidh na dreuchd seo. tha e Tha am prògram trèanaidh air a phostadh.

Thèid an trèanadh a chumail bho 5 gu 7 Lùnastal ann am Moscow. Is e seo làithean obrach a bhios làn làn dhaoine. Bidh lòn agus trèanadh san oifis againn, agus pàighidh an com-pàirtiche taghte airson siubhal agus àite-fuirich e fhèin.

Faodaidh tu tagradh a dhèanamh airson com-pàirteachadh anns an fhoirm google seo. Bho thu - am freagairt don cheist carson a dh'fheumas tu a bhith an làthair aig an trèanadh agus fiosrachadh air mar a chuireas tu fios thugad. Freagair ann am Beurla, oir taghaidh Chris an neach a bhios an làthair aig an trèanadh e fhèin.
Ainmichidh sinn ainm a’ chom-pàirtiche trèanaidh ann an ùrachadh air an dreuchd seo agus air lìonraidhean sòisealta Avito airson luchd-leasachaidh (AvitoTech ann an Facebook, Vkontakte, Twitter) gun a bhith nas fhaide na 19 Iuchar.

Source: www.habr.com

Cuir beachd ann