“Ag siúl i mo bhróga” - fan, an bhfuil siad marcáilte?

Ó 2019, tá dlí ag an Rúis maidir le lipéadú éigeantach. Níl feidhm ag an dlí maidir le gach grúpa earraí, agus tá na dátaí chun lipéadú éigeantach a theacht i bhfeidhm do ghrúpaí táirgí difriúil. Is iad tobac, bróga agus cógais na chéad daoine a bheidh faoi réir lipéadú sainordaitheach; cuirfear táirgí eile leis níos déanaí, mar shampla, cumhrán, teicstílí agus bainne. Spreag an nuálaíocht reachtach seo forbairt réitigh TF nua a fhágfaidh gur féidir saolré iomlán táirge a rianú ó tháirgeadh go ceannach ag an tomhaltóir deiridh, do gach rannpháirtí sa phróiseas: an stát féin agus gach eagraíocht a dhíolann earraí leis. lipéadú éigeantach.

In X5, tugtar “Marcus” ar an gcóras a rianóidh earraí lipéadaithe agus a mhalartóidh sonraí leis an stát agus soláthraithe. Inseoimid duit in ord conas agus cé a d'fhorbair é, cad é a chruach teicneolaíochta, agus cén fáth a bhfuil rud éigin le bheith bródúil as.

“Ag siúl i mo bhróga” - fan, an bhfuil siad marcáilte?

Fíor-ualach ard

Réitíonn “Marcus” go leor fadhbanna, is é an príomh-idirghníomhú comhtháthaithe idir córais faisnéise X5 agus an córas faisnéise stáit do tháirgí lipéadaithe (GIS MP) chun gluaiseacht táirgí lipéadaithe a rianú. Stórálann an t-ardán freisin gach cód lipéadaithe a fhaigheann muid agus stair iomlán ghluaiseacht na gcód seo trasna réada, agus cuidíonn sé le deireadh a chur le hathghrádú táirgí lipéadaithe. Ag baint úsáide as an sampla de tháirgí tobac, a cuireadh san áireamh sna chéad ghrúpaí d'earraí lipéadaithe, níl ach ualach trucaile amháin de na toitíní thart ar 600 pacáiste, agus tá a chód uathúil féin ag gach ceann acu. Agus is é tasc ár gcóras ná dlíthiúlacht gluaiseachtaí gach pacáiste den sórt sin idir stórais agus stórais a rianú agus a fhíorú, agus ar deireadh thiar a fhíorú inghlacthacht a ndíolta leis an gceannaitheoir deiridh. Agus déanaimid taifead ar thart ar 000 idirbheart airgid in aghaidh na huaire, agus ní mór dúinn freisin a thaifeadadh conas a chuaigh gach pacáiste den sórt sin isteach sa siopa. Mar sin, agus na gluaiseachtaí go léir idir réada á gcur san áireamh, táimid ag súil leis na mílte taifead in aghaidh na bliana.

Foireann M

In ainneoin go meastar Marcus mar thionscadal laistigh de X5, tá sé á chur i bhfeidhm ag baint úsáide as cur chuige táirge. Oibríonn an fhoireann de réir Scrum. Thosaigh an tionscadal an samhradh seo caite, ach níor tháinig na chéad torthaí ach i mí Dheireadh Fómhair - bhí ár bhfoireann féin le chéile go hiomlán, forbraíodh ailtireacht an chórais agus ceannaíodh trealamh. Anois tá 16 duine ar an bhfoireann, seisear acu ag baint le forbairt inneall agus aghaidh, triúr acu ag baint le hanailís córais. Tá seisear daoine eile páirteach i dtástáil láimhe, ualach, uathoibrithe agus cothabháil táirgí. Ina theannta sin, tá speisialtóir SRE againn.

Ní hamháin go scríobhann forbróirí cód inár bhfoireann; tá a fhios ag beagnach gach duine conas uaththástálacha a ríomhchlárú agus a scríobh, scripteanna a luchtú agus scripteanna uathoibrithe. Tugaimid aird ar leith air seo, ós rud é go n-éilíonn fiú tacaíocht táirge ardleibhéal uathoibrithe. Déanaimid iarracht i gcónaí comhairle a thabhairt agus cabhrú le comhghleacaithe nach bhfuil cláraithe cheana féin, agus roinnt tascanna beaga a thabhairt dóibh le bheith ag obair orthu.

Mar gheall ar phaindéim an choróinvíris, d’aistrigh muid an fhoireann ar fad chuig cianobair; de bharr infhaighteacht na n-uirlisí go léir le haghaidh bainistíochta forbartha, an sreabhadh oibre tógtha i Jira agus GitLab bhíothas in ann an chéim seo a shárú go héasca. Léirigh na míonna a caitheadh ​​go cianda nár fhulaing táirgiúlacht na foirne dá bharr; i gcás go leor, mhéadaigh an compord ag an obair, ba é an t-aon rud a bhí in easnamh ná cumarsáid bheo.

Cruinniú foirne iargúlta

“Ag siúl i mo bhróga” - fan, an bhfuil siad marcáilte?

Cruinnithe le linn cianobair

“Ag siúl i mo bhróga” - fan, an bhfuil siad marcáilte?

Stack teicneolaíochta den réiteach

Is é GitLab an gnáthuirlis stórtha agus CI/CD do X5. Bainimid úsáid as le haghaidh stórála cód, tástáil leanúnach, agus imscaradh chun freastalaithe tástála agus táirgthe. Bainimid úsáid freisin as an gcleachtas athbhreithniú cód, nuair is gá ar a laghad 2 chomhghleacaithe a cheadú athruithe a rinne an forbróir ar an gcód. Cuidíonn anailíseoirí cód statacha SonarQube agus JaCoCo linn ár gcód a choinneáil glan agus an leibhéal riachtanach de chlúdach tástála aonaid a chinntiú. Ní mór do gach athrú ar an gcód dul trí na seiceálacha seo. Déantar na scripteanna tástála go léir a reáchtáiltear de láimh a uathoibriú ina dhiaidh sin.

Chun próisis ghnó “Marcus” a chur i bhfeidhm go rathúil, bhí orainn roinnt fadhbanna teicneolaíochta a réiteach, gach ceann acu in ord.

Tasc 1. An gá atá le hinscálaitheacht cothrománach an chórais

Chun an fhadhb seo a réiteach, roghnaigh muid cur chuige microservice don ailtireacht. Ag an am céanna, bhí sé an-tábhachtach tuiscint a fháil ar réimsí freagrachta na seirbhísí. Rinneamar iarracht iad a roinnt ina n-oibríochtaí gnó, agus sonraí na bpróiseas á gcur san áireamh. Mar shampla, ní oibríocht an-mhinic, ach an-mhór é glacadh ag stóras, ar lena linn is gá faisnéis a fháil go tapa ón rialtóir stáit faoi na haonaid earraí a nglactar leo, agus sroicheann a líon i seachadadh amháin 600000. , seiceáil an inghlacthacht an táirge seo a ghlacadh isteach sa stóras agus cuir ar ais an fhaisnéis go léir is gá don chóras uathoibrithe stórais. Ach tá déine i bhfad níos mó ag loingsiú ó stórais, ach ag an am céanna oibríonn sé le méideanna beaga sonraí.

Cuirimid na seirbhísí go léir i bhfeidhm ar bhonn gan stát agus fiú déanaimid iarracht oibríochtaí inmheánacha a roinnt ina gcéimeanna, ag baint úsáide as rud ar a dtugaimid Kafka féin-ábhair. Seo é nuair a sheolann microservice teachtaireacht chuige féin, a ligeann duit an t-ualach ar oibríochtaí atá níos déine ar acmhainní a chothromú agus a shimplíonn cothabháil táirgí, ach níos mó air sin níos déanaí.

Shocraigh muid modúil le haghaidh idirghníomhú le córais sheachtracha a scaradh ina seirbhísí ar leith. Mar thoradh air sin bhíothas in ann an fhadhb a réiteach a bhaineann le APInna córais sheachtracha a athraíonn go minic, gan tionchar ar bith ar sheirbhísí le feidhmiúlacht ghnó.

“Ag siúl i mo bhróga” - fan, an bhfuil siad marcáilte?

Imscartar na micriseirbhísí go léir i mbraisle OpenShift, a réitíonn an fhadhb a bhaineann le scálaiú gach micriseirbhíse agus a ligeann dúinn gan uirlisí Fionnachtana Seirbhíse tríú páirtí a úsáid.

Tasc 2. An gá atá le ualach ard agus malartú sonraí an-dian a choinneáil idir seirbhísí ardáin: Le linn chéim seolta an tionscadail amháin, déantar thart ar 600 oibríocht in aghaidh an tsoicind. Táimid ag súil go méadóidh an luach seo go 5000 comharchumann/soicind de réir mar a nascann asraonta miondíola lenár n-ardán.

Réitíodh an fhadhb seo trí bhraisle Kafka a imscaradh agus beagnach go hiomlán ag tréigean idirghníomhaíocht shioncrónach idir micreasheirbhísí an ardáin. Éilíonn sé seo anailís an-chúramach ar riachtanais an chórais, ós rud é nach féidir le gach oibríocht a bheith asincrónach. Ag an am céanna, ní hamháin go dtarchuirimid imeachtaí tríd an mbróicéir, ach freisin tarchuirimid an fhaisnéis ghnó riachtanach go léir sa teachtaireacht. Mar sin, is féidir le méid na teachtaireachta na céadta cilibheart a bhaint amach. Éilíonn teorainn méid na teachtaireachta i Kafka dúinn méid na teachtaireachta a thuar go cruinn, agus más gá, déanaimid iad a roinnt, ach tá an rannán loighciúil, a bhaineann le hoibríochtaí gnó.
Mar shampla, roinnimid earraí a thagann isteach i gcarr i mboscaí. Le haghaidh oibríochtaí sioncrónacha, leithdháiltear micreasheirbhísí ar leith agus déantar tástáil ualaigh críochnúil. Chuir úsáid Kafka dúshlán eile os ár gcomhair - trí oibriú ár seirbhíse a thástáil agus comhtháthú Kafka á gcur san áireamh, tá ár dtástálacha aonaid go léir neamhshioncrónach. Réitíomar an fhadhb seo trínár modhanna fóntais féin a scríobh ag baint úsáide as Leabaithe Kafka Broker. Ní chuireann sé seo deireadh leis an ngá atá le tástálacha aonaid a scríobh le haghaidh modhanna aonair, ach is fearr linn cásanna casta a thástáil ag baint úsáide as Kafka.

Díríodh go leor airde ar logaí a rianú ionas nach gcaillfí a TraceId nuair a tharlaíonn eisceachtaí le linn oibriú seirbhísí nó agus iad ag obair le baisc Kafka. Agus mura raibh aon saincheisteanna speisialta ann leis an gcéad cheann, ansin sa dara cás tá iallach orainn na TraceIds go léir a tháinig leis an mbaisc a logáil agus ceann a roghnú chun leanúint ar aghaidh ag rianú. Ansin, nuair a bheidh an bunleagan TraceId á chuardach, gheobhaidh an t-úsáideoir amach go héasca cé leis a lean an lorg.

Tasc 3. An gá atá le méid mór sonraí a stóráil: Tagann níos mó ná 1 billiún lipéad in aghaidh na bliana ar thobac amháin go X5. Éilíonn siad rochtain leanúnach agus tapa. San iomlán, ní mór don chóras thart ar 10 billiún taifead de stair gluaiseachta na n-earraí lipéadaithe seo a phróiseáil.

Chun an tríú fadhb a réiteach, roghnaíodh bunachar sonraí NoSQL MongoDB. Tá 5 nóid tógtha againn agus tá Tacar Macasamhail de 3 fhreastalaí ag gach nód. Ligeann sé seo duit an córas a scála go cothrománach, ag cur freastalaithe nua leis an mbraisle, agus a lamháltas locht a chinntiú. Anseo tháinig muid ar fhadhb eile - idirbheartaíocht a chinntiú sa bhraisle mongo, ag cur san áireamh úsáid micreasheirbhísí inscálaithe go cothrománach. Mar shampla, ceann de thascanna ár gcóras is ea iarrachtaí a aithint chun táirgí a bhfuil na cóid lipéadaithe céanna acu a athdhíol. Anseo, feictear forleagan le scananna earráideacha nó oibríochtaí earráideacha ag airgeadóirí. Fuaireamar amach gur féidir le dúbailt den sórt sin tarlú laistigh de bhaisc amháin Kafka atá á phróiseáil, agus laistigh de dhá bhaisc á bpróiseáil go comhthreomhar. Mar sin, níor thug seiceáil le haghaidh dúblaigh trí cheist a chur ar an mbunachar sonraí rud ar bith. I gcás gach microservice, réitigh muid an fhadhb ar leithligh bunaithe ar loighic gnó na seirbhíse seo. Mar shampla, le haghaidh seiceálacha, chuireamar seic taobh istigh de bhaisc agus próiseáil ar leithligh le haghaidh cuma dúbailt nuair a chuirtear isteach iad.

Chun a chinntiú nach ndéanann obair na n-úsáideoirí le stair na n-oibríochtaí difear ar bhealach ar bith ar an rud is tábhachtaí - feidhmiú ár bpróiseas gnó, tá na sonraí stairiúla go léir scartha againn i seirbhís ar leith le bunachar sonraí ar leith, a fhaigheann faisnéis freisin trí Kafka. . Ar an mbealach seo, oibríonn úsáideoirí le seirbhís iargúlta gan cur isteach ar na seirbhísí a phróiseálann sonraí le haghaidh oibríochtaí leanúnacha.

Tasc 4: Athphróiseáil agus monatóireacht scuaine:

I gcórais dáilte, tagann fadhbanna agus earráidí chun cinn dosheachanta nuair a bhíonn bunachair shonraí, scuainí agus foinsí seachtracha sonraí ar fáil. I gcás Marcus, is é foinse na n-earráidí sin comhtháthú le córais sheachtracha. Bhí sé riachtanach teacht ar réiteach a cheadódh iarratais arís agus arís eile ar fhreagraí earráideacha le roinnt teorainn ama sonraithe, ach ag an am céanna gan stop a chur le próiseáil iarrataí rathúla sa phríomhscuaine. Chun na críche sin, roghnaíodh an coincheap “triail bunaithe ar thopaic” mar a thugtar air. I gcás gach príomhthopaic, cruthaítear topaic athiarrachta amháin nó níos mó a seoltar teachtaireachtaí earráideacha chucu agus ag an am céanna cuirtear deireadh leis an moill ar phróiseáil teachtaireachtaí ón bpríomhthopaic. Scéim idirghníomhaíochta -

“Ag siúl i mo bhróga” - fan, an bhfuil siad marcáilte?

Chun scéim den sórt sin a chur i bhfeidhm, bhí na nithe seo a leanas ag teastáil uainn: an réiteach seo a chomhtháthú leis an Earrach agus dúbailt cóid a sheachaint. Agus sinn ag scimeáil ar an ngréasán, thángamar ar réiteach comhchosúil bunaithe ar Spring BeanPostProccessor, ach bhí an chuma air go raibh sé ró-chúng dúinn gan ghá. Tá réiteach níos simplí déanta ag ár bhfoireann a ligeann dúinn comhtháthú a dhéanamh i dtimthriall an Earraigh chun tomhaltóirí a chruthú agus freisin Retry Consumers a chur leis. Chuireamar fréamhshamhail dár réiteach ar fáil d'fhoireann an Earraigh, is féidir leat é a fheiceáil anseo. Tá líon na dTomhaltóirí Atriail agus líon na n-iarrachtaí do gach tomhaltóir cumraithe trí pharaiméadair, ag brath ar riachtanais an phróisis ghnó, agus le go n-oibreoidh gach rud, níl le déanamh ach an nóta a chur leis org.springframework.kafka.annotation.KafkaListener , atá eolach ar gach forbróir Earraigh.

Mura bhféadfaí an teachtaireacht a phróiseáil tar éis gach iarracht atriail, téann sé chuig DLT (ábhar litir marbh) ag baint úsáide as Spring DeadLetterPublishingRecoverer. Ar iarratas tacaíochta, leathnaíomar an fheidhmiúlacht seo agus chruthaíomar seirbhís ar leith a ligeann duit féachaint ar theachtaireachtaí atá san áireamh in DLT, stackTrace, traceId agus faisnéis úsáideach eile fúthu. Ina theannta sin, cuireadh monatóireacht agus foláirimh le gach ábhar DLT, agus anois, go deimhin, tá an chuma ar theachtaireacht i dtopaic DLT ina chúis le locht a anailísiú agus a shocrú. Tá sé seo an-áisiúil - faoi ainm an ábhair, tuigimid láithreach cén chéim den phróiseas a d'eascair an fhadhb, rud a chuireann go mór le cuardach a dhéanamh ar a bhunchúis.

“Ag siúl i mo bhróga” - fan, an bhfuil siad marcáilte?

Le déanaí, tá comhéadan curtha i bhfeidhm againn a ligeann dúinn teachtaireachtaí a athsheoladh ag baint úsáide as ár dtacaíocht tar éis deireadh a chur lena gcúiseanna (mar shampla, feidhmiúlacht an chórais sheachtraigh a athchóiriú) agus, ar ndóigh, an locht comhfhreagrach a bhunú le haghaidh anailíse. Seo an áit a mbíonn ár gcuid féin-ábhair áisiúil: ionas nach gcuirfear slabhra próiseála fada ar ais, is féidir leat é a atosú ón gcéim atá ag teastáil.

“Ag siúl i mo bhróga” - fan, an bhfuil siad marcáilte?

Oibríocht Ardán

Tá an t-ardán i bhfeidhm táirgiúil cheana féin, gach lá déanaimid seachadtaí agus lastais, nascann muid ionaid dáileacháin agus siopaí nua. Mar chuid den chlár píolótach, oibríonn an córas leis na grúpaí táirgí “Tobac” agus “Bróga”.

Glacann ár bhfoireann iomlán páirt i stiúradh píolótaí, déanann siad anailís ar fhadhbanna atá ag teacht chun cinn agus déanann siad moltaí chun ár dtáirge a fheabhsú, ó logaí a fheabhsú go próisis athraitheacha.

Ionas nach féidir linn ár gcuid botúin a dhéanamh arís, léirítear na cásanna go léir a aimsíodh le linn an phíolóta i dtástálacha uathoibrithe. Ligeann láithreacht líon mór autotests agus tástálacha aonaid duit tástáil aischéimniúcháin a dhéanamh agus hotfix a shuiteáil go litriúil laistigh de chúpla uair an chloig.

Anois leanaimid orainn ag forbairt agus ag feabhsú ár n-ardán, agus tá dúshláin nua romhainn i gcónaí. Má tá suim agat, labhairfimid faoi ár réitigh sna hailt seo a leanas.

Foinse: will.com

Add a comment