Microservices - le pléascadh combinatorial de leaganacha

Dia duit, Habr! Cuirim i láthair d'aird aistriúchán an údair ar an alt Microservices - Pléascadh Comhcheangailte Leaganacha.
Microservices - le pléascadh combinatorial de leaganacha
Ag am nuair a bhíonn an domhan TF ag bogadh de réir a chéile i dtreo microservices agus uirlisí cosúil le Kubernetes, níl ach fadhb amháin ag éirí níos suntasaí. An fhadhb seo - pléascadh combinatorial leaganacha microservice. Fós féin, creideann an pobal TF go bhfuil an staid reatha i bhfad níos fearr ná "ifreann spleáchais" ghlúin teicneolaíochta roimhe seo. Mar sin féin, is fadhb an-chasta é micreasheirbhísí a leagan. Cruthúnas amháin ar seo is féidir a bheith ina ailt mar "Tabhair dom mo monolith ar ais".

Mura dtuigeann tú an fhadhb leis an téacs seo a léamh, lig dom a mhíniú. Ligean le rá go bhfuil do tháirge comhdhéanta de 10 micreasheirbhísí. Anois, déanaimis glacadh leis go scaoiltear 1 leagan nua do gach ceann de na micreasheirbhísí seo. Ach leagan 1 - tá súil agam gur féidir linn go léir a aontú gur fíric an-fhánach agus neamhshuntasach é seo. Anois, áfach, déanaimis breathnú eile ar ár dtáirge. Gan ach leagan nua amháin de gach comhpháirt, tá 2^10 - nó 1024 athróg againn anois faoin gcaoi ar féidir ár dtáirge a chomhdhéanamh.

Má tá aon mhíthuiscint ann fós, lig dom an mata a bhriseadh síos. Mar sin tá 10 micriseirbhís againn, gach ceann ag fáil nuashonrú amháin. Is é sin, faigheann muid 2 leagan féideartha do gach microservice (sean nó nua). Anois, le haghaidh gach ceann de na comhpháirteanna táirge, is féidir linn ceachtar den dá leagan seo a úsáid. Go matamaiticiúil, is ionann é agus dá mbeadh uimhir dhénártha 10 ndigit againn. Mar shampla, déanaimis a rá gurb é 1 an leagan nua, agus is é 0 an seanleagan - ansin is féidir iomalartú féideartha amháin a chur in iúl mar 1001000000 - áit a ndéantar an 1ú agus an 4ú comhpháirteanna a nuashonrú, agus nach bhfuil na cinn eile go léir. Ón matamaitic tá a fhios againn gur féidir le luachanna 10^2 nó 10 a bheith ag uimhir dhénártha 1024 ndigit. Is é sin le rá go bhfuil scála na huimhreach a bhfuilimid ag déileáil leo deimhnithe againn.

Leanaimis lenár réasúnaíocht a thuilleadh - cad a tharlóidh má tá 100 microservices againn agus 10 leagan féideartha ag gach ceann acu? Éiríonn an scéal ar fad míthaitneamhach - tá 10^100 iomalartú againn anois - is líon mór é sin. Mar sin féin, is fearr liom an cás seo a lipéadú ar an mbealach seo, mar anois nílimid ag dul i bhfolach taobh thiar de fhocail mar “kubernetes” a thuilleadh, ach ag tabhairt aghaidh ar an bhfadhb mar atá sé.

Cén fáth a bhfuil an oiread sin spéise agam san fhadhb seo? Go páirteach toisc, tar éis dúinn a bheith ag obair i saol NLP agus AI roimhe seo, phléamar an fhadhb a bhaineann le pléascadh combinatorial go leor thart ar 5-6 bliana ó shin. Ní raibh focail aonair againn ach in ionad leaganacha, agus in ionad táirgí bhí abairtí agus ailt againn. Agus cé go bhfuil fadhbanna NLP agus AI gan réiteach den chuid is mó, ní mór a admháil go bhfuil dul chun cinn suntasach déanta le blianta beaga anuas. (is é mo thuairim go bhféadfaí dul chun cinn a dhéanamhоBheadh ​​sé níos fearr dá dtabharfadh daoine sa tionscal beagán níos lú airde ar mheaisínfhoghlaim agus beagán níos mó ar theicnící eile - ach tá sé seo lasmuigh den ábhar cheana féin).

Fillfimid ar domhan DevOps agus microservices. Tá fadhb ollmhór romhainn, ag déanamh masquerading mar eilifint sa Kunstkamera - mar is é an rud a chloisim go minic ná “tóg ach kubernetes agus Helm, agus beidh gach rud go breá!” Ach ní hea, ní bheidh gach rud go breá má fhágtar gach rud mar atá. Ina theannta sin, ní cosúil go bhfuil réiteach anailíseach ar an bhfadhb seo inghlactha mar gheall ar a chastacht. Mar atá i NLP, ba cheart dúinn dul i ngleic leis an bhfadhb seo ar dtús trí raon feidhme an chuardaigh a chaolú - sa chás seo, trí dheireadh a chur le iomalartaithe atá as dáta.

Ceann de na rudaí a d’fhéadfadh cabhrú ná rud a scríobh mé anuraidh faoin ngá atá le híosmhéid difríochta a choinneáil idir leaganacha a phostáiltear do chliaint. Tá sé tábhachtach a thabhairt faoi deara freisin go gcuidíonn próiseas dea-dheartha CI/CD go mór le héagsúlachtaí a laghdú. Mar sin féin, níl an staid reatha maidir le CI/CD maith go leor chun fadhb an iomlaoide a réiteach gan uirlisí breise do chuntasaíocht agus rianú comhpháirteanna.

Is é an rud a theastaíonn uainn ná córas turgnamh ag an gcéim chomhtháthaithe, áit ar féidir linn an fachtóir riosca do gach comhpháirt a chinneadh, agus freisin próiseas uathoibrithe a bheith againn chun comhpháirteanna agus tástáil éagsúla a nuashonrú gan idirghabháil oibreora - féachaint cad a oibríonn agus cad nach bhfuil.

D’fhéadfadh cuma mar seo a bheith ar chóras turgnamh den sórt sin:

  1. Scríobhann forbróirí tástálacha (is céim ríthábhachtach í seo - mar ar shlí eile níl aon chritéar meastóireachta againn - tá sé cosúil le sonraí lipéadaithe sa mheaisínfhoghlaim).
  2. Faigheann gach comhpháirt (tionscadal) a chóras CI féin - tá an próiseas seo forbartha go maith anois, agus tá an cheist maidir le córas CI a chruthú le haghaidh comhpháirt amháin réitithe den chuid is mó.
  3. Bailíonn an “córas comhtháthaithe cliste” torthaí na gcóras CI éagsúla agus cuireann sé tionscadail chomhpháirt le chéile sa táirge deiridh, reáchtálann sé tástáil agus ar deireadh ríomhann sé an cosán is giorra chun feidhmiúlacht an táirge inmhianaithe a fháil bunaithe ar chomhpháirteanna agus fachtóirí riosca atá ann cheana féin. Mura féidir nuashonrú a dhéanamh, cuireann an córas seo forbróirí ar an eolas faoi na comhpháirteanna atá ann cheana féin agus cé acu díobh is cúis leis an earráid. Arís eile, tá an córas tástála ríthábhachtach anseo - ós rud é go n-úsáideann an córas lánpháirtithe tástálacha mar chritéar meastóireachta.
  4. Córas CD, a fhaigheann sonraí ansin ón gCóras Comhtháthaithe Cliste agus a dhéanann an nuashonrú go díreach. Críochnaíonn an chéim seo an timthriall.

Mar achoimre, dar liomsa, ceann de na fadhbanna is mó atá ann anois ná an easpa “Córas Comhtháthaithe Cliste” a nascfadh na comhpháirteanna éagsúla isteach i dtáirge agus a ligfeadh duit a rianú conas a chuirtear an táirge ina iomláine le chéile. Beidh suim agam i smaointe an phobail ar seo (spoiler - tá mé ag obair ar thionscadal faoi láthair Reliza, ar féidir a bheith ina chóras lánpháirtithe cliste den sórt sin).

Rud deireanach amháin ba mhaith liom a lua ná, dar liom, nach bhfuil monolith inghlactha le haghaidh aon tionscadal fiú meánmhéid. Maidir liom féin, tá amhras mór faoi iarrachtaí chun am cur chun feidhme agus cáilíocht na forbartha a bhrostú trí fhilleadh ar an monolith. Ar an gcéad dul síos, tá fadhb den chineál céanna ag monolith maidir le comhpháirteanna a bhainistiú - i measc na leabharlanna éagsúla a chuimsíonn sé, áfach, níl sé seo go léir chomh suntasach agus léiríonn sé é féin go príomha san am a chaitheann forbróirí. Is é iarmhairt na faidhbe monolith an dodhéanta fíorúil athruithe a dhéanamh ar an gcód - agus luas forbartha thar a bheith mall.

Feabhsaíonn microservices an scéal, ach ansin tá fadhb an phléascadh combinatorial os comhair na hailtireachta microservice ag an gcéim chomhtháthaithe. Sea, go ginearálta, bhogamar an fhadhb chéanna ón gcéim forbartha go dtí an chéim chomhtháthaithe. Mar sin féin, i mo thuairim, tá an cur chuige microservices fós mar thoradh ar thorthaí níos fearr, agus foirne a bhaint amach torthaí níos tapúla (is dócha go príomha mar gheall ar an laghdú ar mhéid an aonaid forbartha - nó méid bhaisc). Mar sin féin, níl an próiseas feabhsaithe go leor fós ag bogadh ó monolith go microservices - is fadhb ollmhór é an pléascadh combinatorial de leaganacha microservice, agus tá go leor féidearthachtaí againn chun an cás a fheabhsú agus muid ag réiteach.

Foinse: will.com

Add a comment