Conas a stop a bheith buartha agus tosú ag maireachtáil gan monolith

Conas a stop a bheith buartha agus tosú ag maireachtáil gan monolith

Is breá linn go léir scéalta. Is maith linn suí timpeall na tine agus labhairt faoi ár mbuanna, cathanna, nó go simplí ár dtaithí oibre.

Níl ann inniu ach lá den sórt sin. Agus fiú mura bhfuil tú ar an tine faoi láthair, tá scéal againn duit. An scéal mar a thosaigh muid ag obair le stóráil ar Tarantool.

Ar uairibh, bhí cúpla “monoliths” ag ár gcuideachta agus “uasteorainn” amháin do chách, a raibh na monoliths seo ag druidim go mall ach go cinnte, rud a chuir srian le eitilt ár gcuideachta, ár bhforbairt. Agus bhí tuiscint shoiléir ann: lá amháin buailfimid an uasteorainn seo go crua.

Is é an idé-eolaíocht atá i réim anois ná gach rud agus gach duine a scaradh, ó threalamh go loighic ghnó. Mar thoradh air sin, tá dhá DC againn, mar shampla, atá neamhspleách go praiticiúil ar leibhéal an líonra. Agus ansin bhí gach rud go hiomlán difriúil.

Sa lá atá inniu ann, tá go leor uirlisí agus uirlisí chun athruithe a dhéanamh i bhfoirm CI/CD, K8S, etc. San am “moniliteach”, ní raibh an oiread sin focal iasachta ag teastáil uainn. Ba leor an “stóráil” sa bhunachar sonraí a cheartú.

Ach tháinig an t-am ar aghaidh, agus cuireadh líon na n-iarratas ar aghaidh in éineacht leis, uaireanta ag lámhach RPS thar ár gcumas. Le hiontráil na dtíortha CIS isteach sa mhargadh, níor thit an t-ualach ar phróiseálaí bunachar sonraí an chéad monolith faoi bhun 90%, agus d'fhan RPS ag leibhéal 2400. Agus ní hamháin roghnóirí beaga a bhí iontu seo, ach ceisteanna móra le a. bunch seiceálacha agus JOINs a d'fhéadfadh beagnach leath de na sonraí a rith i gcoinne chúlra IO mór.

Nuair a thosaigh díolacháin lán-chuimsitheach Dé hAoine Dubh le feiceáil ar an ardán - agus bhí Wildberries ar cheann de na chéad chinn a choinnigh iad sa Rúis - d'éirigh an scéal go hiomlán brónach. Tar éis an tsaoil, méadaíonn an t-ualach ar laethanta den sórt sin trí huaire.
Ó, na “amanna monolithic” seo! Tá mé cinnte go bhfuil taithí agat ar rud éigin cosúil leis, agus fós ní féidir leat a thuiscint conas a d'fhéadfadh sé seo tarlú duit.

Cad is féidir leat a dhéanamh - tá faisean ina cuid dhílis den teicneolaíocht. Thart ar 5 bliana ó shin, bhí orainn athmhachnamh a dhéanamh ar cheann de na modhnuithe seo i bhfoirm suíomh atá ann cheana féin ar fhreastalaí .NET agus MS SQL, a stórálann go cúramach loighic an tsuímh féin. Choinnigh mé chomh cúramach é gur éirigh le sábhadh monolith den sórt sin a bheith ina phléisiúr fada agus nach raibh sé éasca ar chor ar bith.
Digression beag.

Ag imeachtaí éagsúla deirim: "mura bhfaca tú monolith, níor fhás tú!" Tá suim agam i do thuairim ar an ábhar seo, le do thoil scríobh é sna tuairimí.

A Fuaim Thunder

Fillfimid ar ár "tine chnámh". Chun ualach na feidhmiúlachta “monolithic” a dháileadh, shocraigh muid an córas a roinnt ina mhicrisheirbhísí bunaithe ar theicneolaíochtaí foinse oscailte. Toisc, ar a laghad, tá siad níos saoire de réir scála. Agus bhí tuiscint 100% againn go gcaithfimid scála (agus go leor). Tar éis an tsaoil, cheana féin ag an am sin bhíothas in ann dul isteach i margaí na dtíortha comharsanacha, agus thosaigh líon na gclárúchán, chomh maith le líon na n-orduithe, ag fás níos láidre fós.

Tar éis anailís a dhéanamh ar na chéad iarrthóirí ar imeacht ón monolith go microservices, thuig muid go dtagann 80% den scríbhneoireacht iontu ó chórais chúloifige, agus ag léamh ón oifig tosaigh. Ar an gcéad dul síos, bhain sé seo le cúpla fochóras tábhachtach dúinn - sonraí úsáideora agus córas chun costas deiridh earraí a ríomh bunaithe ar fhaisnéis faoi lascainí agus cúpóin breise do chustaiméirí.

Eangaithe. Anois tá sé scanrúil a shamhlú, ach i dteannta leis na fochórais thuasluaite, baineadh catalóga táirgí, cart siopadóireachta úsáideora, córas cuardaigh táirgí, córas scagtha le haghaidh catalóga táirgí, agus cineálacha éagsúla córas moltaí as ár monolith freisin. Chun gach ceann acu a oibriú, tá aicmí ar leith de chórais atá oiriúnaithe go cúng, ach uair amháin eile bhí cónaí orthu go léir in aon “teach”.

Bhí sé beartaithe againn láithreach sonraí faoinár gcliaint a aistriú chuig an gcóras bearrtha. Chun deireadh a chur le feidhmiúlacht chun costas deiridh na n-earraí a ríomh, bhí gá le hinscálaitheacht mhaith don léitheoireacht, toisc gur chruthaigh sé an t-ualach RPS ba mhó agus ba dheacair é a chur i bhfeidhm don bhunachar sonraí (tá go leor sonraí páirteach sa phróiseas ríofa).

Mar thoradh air sin, tháinig muid suas le scéim a oireann go maith le Tarantool.

Ag an am sin, chun micreasheirbhísí a oibriú, roghnaíodh scéimeanna chun oibriú le roinnt ionad sonraí ar mheaisíní fíorúla agus crua-earraí. Mar a léirítear sna figiúirí, cuireadh roghanna macasamhlú Tarantool i bhfeidhm i modhanna máistir-mháistir agus máistir-sclábhaí araon.

Conas a stop a bheith buartha agus tosú ag maireachtáil gan monolith
Ailtireacht. Rogha 1. Seirbhís úsáideora

Ag an am atá ann faoi láthair, tá 24 shards, gach ceann acu 2 chás (ceann do gach DC), go léir i mód máistir-mháistir.

Ar bharr an bhunachair shonraí tá feidhmchláir a fhaigheann rochtain ar mhacasamhlacha bunachar sonraí. Oibríonn feidhmchláir le Tarantool tríd ár leabharlann saincheaptha, a chuireann comhéadan tiománaí Tarantool Go i bhfeidhm. Feiceann sí na macasamhla go léir agus is féidir léi oibriú leis an máistir chun léamh agus scríobh. Go bunúsach, cuireann sé an tsamhail tacair macasamhail i bhfeidhm, a chuireann leis an loighic chun macasamhla a roghnú, atriail a dhéanamh, scoradán ciorcaid agus teorainn rátaí.

Sa chás seo, is féidir an beartas roghnúcháin macasamhail a chumrú i gcomhthéacs shards. Mar shampla, roundrobin.

Conas a stop a bheith buartha agus tosú ag maireachtáil gan monolith
Ailtireacht. Rogha 2. Seirbhís chun costas deiridh earraí a ríomh

Cúpla mí ó shin, chuaigh an chuid is mó de na hiarratais ar chostas deiridh na n-earraí a ríomh chuig seirbhís nua, a oibríonn, i bprionsabal, gan bunachair shonraí, ach tamall ó shin próiseáladh gach rud 100% ag seirbhís le Tarantool faoin gcochall.

Tá 4 mháistir sa bhunachar sonraí seirbhíse ina mbailíonn an sioncronóir sonraí, agus dáileann gach ceann de na máistrí macasamhlaithe sin sonraí ar mhacasamhla inléite amháin. Tá thart ar 15 macasamhail den sórt sin ag gach máistir.

Sa chéad scéim nó sa dara scéim, mura bhfuil DC amháin ar fáil, is féidir leis an bhfeidhmchlár sonraí a fháil sa dara scéim.

Is fiú a thabhairt faoi deara go bhfuil macasamhlú i Tarantool solúbtha go leor agus gur féidir é a chumrú ag am rite. I gcórais eile, tháinig deacrachtaí chun cinn. Mar shampla, chun na paraiméadair max_wal_senders agus max_replication_slots a athrú i PostgreSQL tá gá leis an draoi a atosú, rud a d'fhéadfadh naisc a bheith mar thoradh i gcásanna áirithe idir an feidhmchlár agus an DBMS.

Lorg agus gheobhaidh tú!

Cén fáth nach ndearnamar é “cosúil le gnáthdhaoine”, ach gur roghnaigh muid bealach aitíopúil? Braitheann sé ar an méid a mheastar a bheith gnáth. De ghnáth déanann go leor daoine braisle as an Mhongó agus scaipeann siad é ar thrí DC geo-dháilte.

Ag an am sin, bhí dhá thionscadal Redis againn cheana féin. Ba thaisce é an chéad cheann, agus ba stóráil leanúnach é an dara ceann le haghaidh sonraí nach raibh ró-chriticiúil. Bhí sé deacair go leor leis, go páirteach tríd ár locht. Uaireanta bhí méideanna sách mór san eochair, agus ó am go chéile d'éirigh an suíomh tinn. D’úsáideamar an córas seo sa leagan máistir-daor. Agus bhí go leor cásanna ann nuair a tharla rud éigin don mháistir agus nuair a bhris macasamhlú.

Is é sin le rá go bhfuil Redis go maith do thascanna gan stát, ní do thascanna stáit. I bprionsabal, cheadaigh sé an chuid is mó de na fadhbanna a réiteach, ach amháin dá mba réitigh eochairluacha iad le péire innéacsanna. Ach bhí Redis ag an am sin brónach go leor le dianseasmhacht agus macasamhlú. Ina theannta sin, bhí gearáin faoi fheidhmíocht.

Cheapamar faoi MySQL agus PostgreSQL. Ach níor tháinig an chéad cheann ar aon nós linn, agus is táirge sách sofaisticiúil ann féin an dara ceann, agus bheadh ​​sé míchuí seirbhísí simplí a thógáil air.
Rinneamar iarracht RIAK, Cassandra, fiú bunachar sonraí graf. Réitigh sách nideoige iad seo go léir nach raibh oiriúnach don ról atá ag uirlis uilíoch ginearálta chun seirbhísí a chruthú.

Sa deireadh shocraíomar ar Tarantool.

Chasamar chuige nuair a bhí sé i leagan 1.6. Bhí spéis againn ann mar gheall ar shiombailí na heochairluacha agus feidhmiúlacht bhunachar sonraí coibhneasta. Tá innéacsanna tánaisteacha, idirbhearta agus spásanna ann, tá siad seo cosúil le táblaí, ach níl siad simplí, is féidir leat uimhreacha éagsúla colúin a stóráil iontu. Ach ba é an ghné mharfach de Tarantool ná innéacsanna tánaisteacha in éineacht le príomhluach agus idirbheartaíocht.

Bhí ról ag pobal freagrúil na Rúise, a bhí réidh chun cabhrú le comhrá. D'úsáideamar é seo go gníomhach agus táimid ag maireachtáil go díreach sa chomhrá. Agus ná déan dearmad faoi réasúnta leanúnach gan botún soiléir agus botúin. Má fhéachann tú ar ár stair le Tarantool, bhí go leor pian agus teipeanna againn le macasamhlú, ach níor chaill muid sonraí riamh mar gheall ar a locht!

Cuireadh tús garbh leis an gcur i bhfeidhm

Ag an am sin, ba é ár bpríomhstack forbartha ná .NET, nach raibh aon chónascaire ann do Tarantool. Thosaigh muid láithreach ag déanamh rud éigin i Go. D’oibrigh sé go maith le Lua freisin. Ba í an phríomhfhadhb ag an am sin ná dífhabhtaithe: i .NET tá gach rud iontach leis seo, ach ina dhiaidh sin bhí sé deacair dul isteach i saol an Lua leabaithe, nuair nach bhfuil aon dífhabhtaithe agat ach amháin logaí. Ina theannta sin, ar chúis éigin thit macasamhlú as a chéile go tréimhsiúil, agus mar sin bhí orm iniúchadh a dhéanamh ar struchtúr inneall Tarantool. Chabhraigh an comhrá leis seo, agus go pointe níos lú, leis an gcáipéisíocht; uaireanta d’fhéachamar ar an gcód. Ag an am sin, bhí an doiciméadú amhlaidh.

Mar sin, thar roinnt míonna, d’éirigh liom mo cheann a chur suas agus torthaí maithe a fháil ó bheith ag obair le Tarantool. Chuireamar forbairtí tagartha i git le chéile a chuidigh le bunú na micrisheirbhísí nua. Mar shampla, nuair a d'eascair tasc: chun microservice eile a chruthú, d'fhéach an forbróir cód foinse an réitigh tagartha sa stór, agus níor ghlac sé níos mó ná seachtain chun ceann nua a chruthú.

Ba amanna speisialta iad seo. Go traidisiúnta, ansin d’fhéadfá dul suas go dtí an riarthóir ag an gcéad tábla eile agus fiafraí de: “Tabhair meaisín fíorúil dom.” Timpeall tríocha nóiméad ina dhiaidh sin bhí an carr leat cheana féin. Cheangail tú tú féin, shuiteáil tú gach rud, agus cuireadh trácht chugat.

Sa lá atá inniu ní oibreoidh sé seo a thuilleadh: ní mór duit monatóireacht agus logáil a chur leis an tseirbhís, clúdaigh an fheidhmiúlacht le tástálacha, ordú meaisín fíorúil nó seachadadh chuig Kuber, etc. Go ginearálta, beidh sé níos fearr ar an mbealach seo, cé go dtógfaidh sé níos faide agus beidh sé níos trioblóideacha.

Roinn agus riail. Cad é an déileáil le Lua?

Bhí aincheist thromchúiseach ann: ní raibh roinnt foirne in ann athruithe ar sheirbhís a raibh mórán loighce ag baint leo a rolladh amach go hiontaofa i Lua. Is minic nach raibh an tseirbhís ag obair in éineacht leis seo.

Is é sin, tá na forbróirí ag ullmhú de shaghas éigin ar athrú. Tosaíonn Tarantool ag déanamh an imirce, ach tá an macasamhail fós leis an seanchód; Sroicheann roinnt DDL nó rud éigin eile ann trí mhacasamhlú, agus go simplí thiteann an cód as a chéile toisc nach gcuirtear san áireamh é. Mar thoradh air sin, leagadh amach an nós imeachta nuashonraithe do na riarthóirí ar bhileog A4: stop a mhacasamhlú, nuashonraigh é seo, cuir macasamhlú ar siúl, múch anseo, nuashonraigh ansin. Nightmare!

Mar thoradh air sin, anois is minic a dhéanaimid iarracht gan faic a dhéanamh i Lua. Bain úsáid as iproto (prótacal dénártha chun idirghníomhú leis an bhfreastalaí), agus sin é. B'fhéidir gurb é seo an easpa eolais i measc na forbróirí, ach ó thaobh seo de tá an córas casta.

Ní i gcónaí a leanaimid dall ar an script seo. Sa lá atá inniu níl dubh agus bán againn: bíodh gach rud i Lua, nó tá gach rud in Go. Tuigimid cheana féin conas is féidir linn iad a chur le chéile ionas nach mbeidh fadhbanna imirce againn níos déanaí.

Cá bhfuil Tarantool anois?
Úsáidtear Tarantool sa tseirbhís chun costas deiridh na n-earraí a ríomh agus cúpóin lascaine a chur san áireamh, ar a dtugtar “Tionscnóir” freisin. Mar a dúirt mé níos luaithe, tá sé ag dul ar scor anois: tá seirbhís catalóige nua á chur ina ionad le praghsanna réamh-ríomh, ach sé mhí ó shin rinneadh na ríomhanna go léir i Promotizer. Roimhe sin, scríobhadh leath dá loighic i Lua. Dhá bhliain ó shin, rinneadh an tseirbhís a iompú ina áis stórála, agus athscríobhadh an loighic in Go, toisc go raibh athrú beag tagtha ar mheicnic na lascainí agus nach raibh feidhmíocht ag an tseirbhís.

Ceann de na seirbhísí is tábhachtaí ná an phróifíl úsáideora. Is é sin le rá go bhfuil gach úsáideoir Wildberries stóráilte i Tarantool, agus tá thart ar 50 milliún acu Córas bearrtha ag ID úsáideora, scaipthe thar roinnt DCanna atá ceangailte le seirbhísí Go.
De réir RPS, ba é an Tionscnóir an ceannaire tráth, agus shroich sé 6 mhíle iarratas. Ag pointe amháin bhí 50-60 cóip againn. Anois is é an ceannaire i RPS próifílí úsáideora, thart ar 12. Úsáideann an tseirbhís seo bearrtha saincheaptha, roinnte ar raonta ID úsáideora. Freastalaíonn an tseirbhís ar níos mó ná 20 meaisín, ach tá sé seo ró-iomarca; tá sé beartaithe againn na hacmhainní a leithdháileadh a laghdú, toisc go bhfuil cumas 4-5 meaisín go leor dó.

Is é seirbhís seisiúin ár gcéad seirbhís ar vshard agus Cartús. Bhí gá le roinnt iarracht uainn chun vshard a shocrú agus a nuashonrú, ach sa deireadh d'oibrigh gach rud amach.

Bhí an tseirbhís chun meirgí éagsúla a thaispeáint ar an suíomh Gréasáin agus san fheidhmchlár soghluaiste ar cheann de na chéad seirbhís a scaoileadh go díreach ar Tarantool. Tá an tseirbhís seo suntasach mar go bhfuil sé 6-7 bliana d'aois, tá sé fós i bhfeidhm agus níor atosaíodh riamh é. Baineadh úsáid as macasamhlú máistir-mháistir. Níor bhris aon rud riamh.

Tá sampla ann de Tarantool a úsáid le haghaidh feidhmiúlacht thapa tagartha i gcóras stórais chun faisnéis a sheiceáil faoi dhó go tapa i gcásanna áirithe. Rinneamar iarracht Redis a úsáid le haghaidh seo, ach ghlac na sonraí sa chuimhne níos mó spáis ná Tarantool.

Oibríonn seirbhísí liosta feithimh, síntiúis cliant, scéalta faiseanta faoi láthair agus earraí iarchurtha le Tarantool freisin. Tógann an tseirbhís dheireanach sa chuimhne suas le thart ar 120 GB. Seo an tseirbhís is cuimsithí dá bhfuil thuas.

Conclúid

A bhuí le hinnéacsanna tánaisteacha in éineacht le bunluach agus le hidirbheartaíocht, tá Tarantool oiriúnach go maith d’ailtireachtaí bunaithe ar mhicrisheirbhísí. Mar sin féin, bhí deacrachtaí againn agus athruithe á gcur i bhfeidhm ar sheirbhísí le go leor loighce in Lua - is minic a stop na seirbhísí ag obair. Ní raibh muid in ann é seo a shárú, agus le himeacht ama tháinig muid ar chomhcheangail éagsúla de Lua agus Téigh: tá a fhios againn cá háit le teanga amháin a úsáid agus cá háit le teanga eile a úsáid.

Cad eile atá le léamh ar an ábhar

Foinse: will.com

Add a comment