Micrsheirbhísí: Tá tábhacht le méid, fiú má tá Kubernetes agat

19 Meán Fómhair i Moscó tharla sé an chéad chruinniú téamach HUG (Grúpa Úsáideoirí Highload++), a bhí tiomnaithe do mhicrisheirbhísí. Bhí cur i láthair “Operating Microservices: Size Matters, Even If You Have Kubernetes”, inar roinneamar taithí fhairsing Flant ar thionscadail a oibriú le hailtireacht microservice. Ar an gcéad dul síos, beidh sé úsáideach do gach forbróir atá ag smaoineamh ar an gcur chuige seo a úsáid ina dtionscadal reatha nó sa todhchaí.

Micrsheirbhísí: Tá tábhacht le méid, fiú má tá Kubernetes agat

Ag tabhairt isteach físeán den tuarascáil (50 nóiméad, i bhfad níos faisnéiseach ná an t-alt), chomh maith leis an bpríomhshliocht as i bhfoirm téacs.

NB: Tá físeán agus cur i láthair ar fáil freisin ag deireadh an phoist seo.

Réamhrá

De ghnáth bíonn tús le scéal maith, príomhphlota agus rún. Tá an tuarascáil seo níos cosúla le réamhrá, agus is tragóideach an tuarascáil sin. Tá sé tábhachtach a thabhairt faoi deara freisin go dtugann sé dearcadh ón taobh amuigh ar mhicrisheirbhísí. saothrú.

Tosóidh mé leis an ngraf seo, a bhfuil an t-údar ann (i 2015) Bhí Máirtín Fowler:

Micrsheirbhísí: Tá tábhacht le méid, fiú má tá Kubernetes agat

Léiríonn sé conas, i gcás iarratais monolithic a shroicheann luach áirithe, go dtosaíonn táirgiúlacht ag meath. Tá micreasheirbhísí difriúil sa mhéid is go bhfuil an táirgiúlacht tosaigh leo níos ísle, ach de réir mar a mhéadaíonn castacht, níl an díghrádú san éifeachtúlacht chomh suntasach dóibh.

Cuirfidh mé leis an ngraf seo i gcás Kubernetes a úsáid:

Micrsheirbhísí: Tá tábhacht le méid, fiú má tá Kubernetes agat

Cén fáth a bhfuil feidhmchlár le microservices níos fearr? Toisc go gcuireann ailtireacht den sórt sin ceanglais thromchúiseacha ar aghaidh don ailtireacht, atá clúdaithe go foirfe ag cumais Kubernetes. Ar an láimh eile, beidh cuid den fheidhmiúlacht seo úsáideach le haghaidh monolith, go háirithe toisc nach bhfuil an monolith tipiciúil inniu go díreach mar monolith (beidh sonraí níos déanaí sa tuarascáil).

Mar a fheiceann tú, níl an graf deiridh (nuair a bhíonn iarratais monolithic agus microservice araon sa bhonneagar le Kubernetes) an-difriúil ón gceann bunaidh. Next beidh muid ag caint faoi iarratais a oibrítear ag baint úsáide as Kubernetes.

Micrsheirbhísí úsáideacha agus díobhálacha

Agus seo é an príomh-smaoineamh:

Micrsheirbhísí: Tá tábhacht le méid, fiú má tá Kubernetes agat

Cad é sin gnáth ailtireacht microservice? Ba cheart go dtabharfadh sé fíorbhuntáistí duit, ag cur le d’éifeachtúlacht oibre. Má théann muid ar ais go dtí an graf, seo é:

Micrsheirbhísí: Tá tábhacht le méid, fiú má tá Kubernetes agat

Má ghlaonn tú uirthi úsáideach, ansin ar an taobh eile den ghraf beidh dochrach micreasheirbhísí (cur isteach ar an obair):

Micrsheirbhísí: Tá tábhacht le méid, fiú má tá Kubernetes agat

Ag filleadh ar an “príomh-smaoineamh”: ​​ar cheart muinín a bheith agam as mo thaithí ar chor ar bith? Ó thús na bliana seo tá mé ag breathnú 85 tionscadal. Ní microservices iad go léir (bhí ailtireacht den sórt sin ag thart ar thrian go leath acu), ach tá sé seo fós ina líon mór. Is féidir linne (cuideachta Flant) mar sheachfhoinsitheoirí raon leathan feidhmchlár a fhorbairt i gcuideachtaí beaga (le 5 fhorbróir) agus i gcinn mhóra (~500 forbróir). Buntáiste breise é go bhfeicimid na feidhmchláir seo beo agus ag forbairt thar na blianta.

Cén fáth microservices?

Chun an cheist faoi na buntáistí a bhaineann le microservices tá freagra an-sonrach ó Martin Fowler a luadh cheana:

  1. teorainneacha soiléire modúlachta;
  2. imscaradh neamhspleách;
  3. teicneolaíochtaí a roghnú saor in aisce,.

Labhair mé go leor le hailtirí bogearraí agus le forbróirí agus d'fhiafraigh mé cén fáth a bhfuil micreasheirbhísí de dhíth orthu. Agus rinne mé mo liosta dá n-ionchais. Seo an méid a tharla:

Micrsheirbhísí: Tá tábhacht le méid, fiú má tá Kubernetes agat

Má dhéanaimid cur síos ar chuid de na pointí “i mothaithe,” ansin:

  • teorainneacha soiléire na modúil: anseo tá monolith uafásach againn, agus anois socrófar gach rud go néata i stórtha Git, ina bhfuil gach rud "ar na seilfeanna", níl an te agus an bog measctha;
  • neamhspleáchas imlonnaithe: beimid in ann seirbhísí a rolladh amach go neamhspleách ionas go n-imeoidh an fhorbairt níos tapúla (gnéithe nua a fhoilsiú ag an am céanna);
  • neamhspleáchas forbartha: is féidir linn an micriseirbhís seo a thabhairt d'fhoireann/forbróir amháin, agus an tseirbhís sin d'fhoireann eile, agus is féidir linn forbairt níos tapúla a dhéanamh dá bharr;
  • боiontaofacht níos mó: má tharlaíonn díghrádú páirteach (titeann microservice amháin as 20), ansin ní stopfaidh ach cnaipe amháin ag obair, agus leanfaidh an córas ina iomláine ag feidhmiú.

Ailtireacht tipiciúil (díobhálach) microservice

Chun a mhíniú cén fáth nach bhfuil an réaltacht mar a mbeimid ag súil leis, cuirfidh mé i láthair comhchoiteann íomhá d'ailtireacht micriseirbhíse bunaithe ar thaithí ó go leor tionscadal éagsúil.

Sampla a bheadh ​​ann ná siopa teibí ar líne atá chun dul san iomaíocht le Amazon nó le OZON ar a laghad. Breathnaíonn a ailtireacht microservice mar seo:

Micrsheirbhísí: Tá tábhacht le méid, fiú má tá Kubernetes agat

Ar chúiseanna éagsúla, scríobhtar na micreasheirbhísí seo ar ardáin éagsúla:

Micrsheirbhísí: Tá tábhacht le méid, fiú má tá Kubernetes agat

Ós rud é go gcaithfidh neamhspleáchas a bheith ag gach micreasheirbhís, tá a mbunachar sonraí agus a dtaisce féin ag teastáil ó go leor acu. Seo a leanas an ailtireacht deiridh:

Micrsheirbhísí: Tá tábhacht le méid, fiú má tá Kubernetes agat

Cad iad na hiarmhairtí atá aige?

Tá sé seo ag Fowler freisin tá alt ann — faoin “íocaíocht” as micrisheirbhísí a úsáid:

Micrsheirbhísí: Tá tábhacht le méid, fiú má tá Kubernetes agat

Agus beidh orainn a fheiceáil má comhlíonadh ár n-ionchais.

Teorainneacha soiléire modúil...

Ach cé mhéad micriseirbhís a chaithfidh muid a dheisiú i ndáiríre?chun an t-athrú a rolladh amach? An féidir linn a dhéanamh amach fiú conas a oibríonn gach rud gan rianaitheoir dáilte (tar éis an tsaoil, próiseáiltear aon iarratas ag leath de na micreasheirbhísí)?

Tá patrún ann"cnap mór de shalachar“, agus anseo d'éirigh sé as cnapán dáilte salachar. Chun é seo a dhearbhú, seo neasléiriú ar conas a théann iarratais:

Micrsheirbhísí: Tá tábhacht le méid, fiú má tá Kubernetes agat

Neamhspleáchas imscaradh...

Go teicniúil, tá sé bainte amach: is féidir linn gach microservice a rolladh amach ar leithligh. Ach go praiticiúil ní mór duit a chur san áireamh go rolladh sé amach i gcónaí go leor micreasheirbhísí, agus ní mór dúinn a chur san áireamh ord a gcur i bhfeidhm. Ar bhealach maith, go ginearálta ní mór dúinn a thástáil i gciorcad ar leith cibé an bhfuil muid ag rolladh amach an scaoileadh san ord ceart.

Saor in aisce an teicneolaíocht a roghnú. .

Tá sí. Cuimhnigh go dteorainneacha saoirse go minic le aindlí. Tá sé an-tábhachtach anseo gan teicneolaíochtaí a roghnú chun “imirt” leo.

Neamhspleáchas na forbartha...

Conas lúb tástála a dhéanamh don fheidhmchlár iomlán (leis an oiread sin comhpháirteanna)? Ach ní mór duit é a choinneáil cothrom le dáta fós. Gach seo mar thoradh ar an bhfíric go líon iarbhír na gciorcad tástála, ar féidir linn a áireamh i bprionsabal, casadh amach a bheith íosta.

Cad é faoi seo go léir a imscaradh go háitiúil?

Scálú ar leith...

Sea, ach tá sé teoranta i réimse an DBMS a úsáidtear. Sa sampla ailtireachta a thugtar, ní bheidh fadhbanna ag Cassandra, ach beidh MySQL agus PostgreSQL.

Боiontaofacht níos fearr...

Ní hamháin go bhfuil teip microservice amháin i ndáiríre go minic ag briseadh feidhmiú ceart an chórais ar fad, ach tá fadhb nua ann freisin: Tá sé an-deacair gach microservice locht-fhulangach a dhéanamh. Toisc go n-úsáideann microservices teicneolaíochtaí éagsúla (memcache, Redis, etc.), le haghaidh gach ní mór duit smaoineamh ar gach rud agus é a chur i bhfeidhm, rud is féidir, ar ndóigh, ach a éilíonn acmhainní ollmhóra.

Intomhaisteacht luchtaithe...

Tá sé seo fíor-mhaith.

“Éileúlacht” na micrisheirbhísí...

Ní hamháin go bhfuil ollmhór againn líonra lastuas (Tá iarratais ar DNS ag méadú, etc.), ach freisin mar gheall ar an iliomad focheisteanna a thosaigh muid sonraí a mhacasamhlú (caches stórais), rud a d'eascair méid suntasach stórála.

Agus seo é an toradh ar ár n-ionchais a chomhlíonadh:

Micrsheirbhísí: Tá tábhacht le méid, fiú má tá Kubernetes agat

Ach ní hé sin go léir!

Mar:

  • Is dócha go mbeidh bus teachtaireachta de dhíth orainn.
  • Conas cúltaca comhsheasmhach a dhéanamh ag an am ceart? An t-aon cheann fíor Is é an rogha trácht a mhúchadh le haghaidh seo. Ach conas é seo a dhéanamh i dtáirgeadh?
  • Má táimid ag caint faoi thacaíocht a thabhairt do roinnt réigiún, is tasc an-dian ar shaothar é inbhuanaitheacht a eagrú i ngach ceann acu.
  • Éiríonn an fhadhb maidir le hathruithe láraithe a dhéanamh. Mar shampla, más gá dúinn an leagan PHP a nuashonrú, beidh orainn gealltanas a thabhairt do gach stór (agus tá mórán díobh ann).
  • Is easpónantúil é an fás ar chastacht oibriúcháin.

Cad atá le déanamh leis seo go léir?

Tosaigh le hiarratas monolithic. Taithí Fowler говорит gur thosaigh beagnach gach iarratas microservice rathúil mar monolith a tháinig chun bheith ró-mhór agus a bhí briste ansin. Ag an am céanna, bhí fadhbanna tromchúiseacha ag beagnach gach córas a tógadh mar mhicrosheirbhísí ón tús luath nó mall.

Smaoineamh luachmhar eile is ea, le go n-éireoidh le tionscadal a bhfuil ailtireacht micreasheirbhíse aige, ní mór go mbeadh a fhios agat go han-mhaith agus réimse ábhair, agus conas micriseirbhísí a dhéanamh. Agus is é an bealach is fearr chun réimse ábhar a fhoghlaim ná monolith a dhéanamh.

Ach cad má táimid sa chás seo cheana féin?

Is é an chéad chéim chun fadhb ar bith a réiteach ná aontú leis agus a thuiscint gur fadhb í, nach bhfuil muid ag iarraidh a bheith ag fulaingt níos mó.

Más rud é, i gcás monolith rófhásta (nuair nach bhfuil an deis againn acmhainní breise a cheannach dó), gearrthaimid é, ansin sa chás seo tagann an scéal eile amach: nuair nach gcabhraíonn micreasheirbhísí iomarcacha a thuilleadh, ach cuireann siad bac ar - gearrtha amach farasbarr agus a mhéadú!

Mar shampla, don íomhá comhchoiteann a pléadh thuas ...

Faigh réidh leis na micreasheirbhísí is amhrasaí:

Micrsheirbhísí: Tá tábhacht le méid, fiú má tá Kubernetes agat

Comhcheangail na micriseirbhísí go léir atá freagrach as giniúint aghaidheanna:

Micrsheirbhísí: Tá tábhacht le méid, fiú má tá Kubernetes agat

... isteach i micriseirbhís amháin, scríofa i dteanga/creat amháin (nua-aimseartha agus gnáth, mar a cheapann tú féin):

Micrsheirbhísí: Tá tábhacht le méid, fiú má tá Kubernetes agat

Beidh ORM amháin (DBMS amháin) aige agus cúpla feidhmchlár ar dtús:

Micrsheirbhísí: Tá tábhacht le méid, fiú má tá Kubernetes agat

... ach go ginearálta is féidir leat i bhfad níos mó a aistriú ansin, ag fáil an toradh seo a leanas:

Micrsheirbhísí: Tá tábhacht le méid, fiú má tá Kubernetes agat

Thairis sin, i Kubernetes ritheann muid seo go léir i gcásanna ar leith, rud a chiallaíonn gur féidir linn fós an t-ualach a thomhas agus iad a scála ar leithligh.

Chun achoimre a dhéanamh

Féach ar an bpictiúr níos mó. Go minic, tagann na fadhbanna seo go léir le micreasheirbhísí chun cinn toisc gur ghlac duine éigin a gcuid cúraimí, ach go raibh sé ag iarraidh “imirt le micreasheirbhísí”.

Sa fhocal "micreasheirbhísí" tá an chuid "micrea" iomarcach.. Tá siad "micrea" ach amháin toisc go bhfuil siad níos lú ná monolith ollmhór. Ach ná bí ag smaoineamh orthu mar rud beag.

Agus le smaoineamh deiridh, fillfimid ar an gcairt bhunaidh:

Micrsheirbhísí: Tá tábhacht le méid, fiú má tá Kubernetes agat

Nóta scríofa air (barr ar dheis) boils síos ar an bhfíric go bíonn scileanna na foirne a dhéanann do thionscadal i gcónaí bunscoile — beidh ról lárnach acu i do rogha idir micreasheirbhísí agus monailit. Mura bhfuil go leor scileanna ag an bhfoireann, ach tosaíonn sé ag déanamh microservices, is cinnte go mbeidh an scéal marfach.

Físeáin agus sleamhnáin

Físeán ón óráid (~50 nóiméad; ar an drochuair, ní chuireann sé mothúcháin iomadúla na gcuairteoirí in iúl, rud a chinn giúmar na tuairisce den chuid is mó, ach sin mar atá sé):

Cur i láthair na tuarascála:

PS

Tuarascálacha eile ar ár mblag:

B’fhéidir go mbeadh suim agat sna foilseacháin seo a leanas freisin:

Foinse: will.com

Add a comment