“A’ coiseachd nam bhrògan” - fuirich, a bheil iad air an comharrachadh?

Bho 2019, tha lagh air a bhith aig an Ruis air bileagan èigneachail. Chan eil an lagh a’ buntainn ris a h-uile buidheann bathair, agus tha na cinn-latha airson bileagan èigneachail a chuir an gnìomh airson buidhnean toraidh eadar-dhealaichte. Is e tombaca, brògan agus cungaidhean a’ chiad fheadhainn a bhios fo ùmhlachd bileagan èigneachail; thèid toraidhean eile a chuir ris nas fhaide air adhart, mar eisimpleir, cùbhraidheachd, aodach-fighte agus bainne. Bhrosnaich an ùr-ghnàthachadh reachdail seo leasachadh air fuasglaidhean IT ùra a nì e comasach sùil a chumail air fad beatha toraidh bho chinneasachadh gu ceannach leis an neach-cleachdaidh deireannach, gu gach com-pàirtiche sa phròiseas: an dà chuid an stàit fhèin agus a h-uile buidheann a tha a’ reic bathar le labeling èigneachail.

Ann an X5, canar “Marcus” ris an t-siostam a bhios a’ cumail sùil air bathar le bileag agus ag iomlaid dàta leis an stàit agus solaraichean. Innsidh sinn dhut ann an òrdugh ciamar agus cò a leasaich e, dè an stac teicneòlais a th’ ann, agus carson a tha rudeigin againn airson a bhith moiteil às.

“A’ coiseachd nam bhrògan” - fuirich, a bheil iad air an comharrachadh?

Fìor Àrd Load

Bidh “Marcus” a ’fuasgladh mòran dhuilgheadasan, is e am prìomh fhear an eadar-obrachadh amalachaidh eadar siostaman fiosrachaidh X5 agus siostam fiosrachaidh na stàite airson toraidhean le bileagan (GIS BP) gus sùil a chumail air gluasad thoraidhean le bileagan. Bidh an àrd-ùrlar cuideachd a’ stòradh a h-uile còd labeling a gheibh sinn agus an eachdraidh iomlan mu ghluasad nan còdan sin thairis air nithean, agus a’ cuideachadh le bhith a’ cur às do ath-rangachadh thoraidhean le bileagan. A’ cleachdadh an eisimpleir de thoraidhean tombaca, a chaidh a ghabhail a-steach anns a’ chiad bhuidhnean de bhathar le bileag, tha timcheall air 600 pasgan de thoitean ann an dìreach aon làraidh de thoitean, agus tha a chòd sònraichte fhèin aig gach fear dhiubh. Agus is e obair an t-siostam againn sùil a chumail air agus dearbhadh dè cho laghail ‘s a tha gluasadan gach pasgan den leithid eadar taighean-bathair agus stòran, agus aig a’ cheann thall dearbhadh a bheil iad iomchaidh don neach-ceannach deireannach. Agus bidh sinn a’ clàradh mu 000 gnothach airgid san uair, agus feumaidh sinn cuideachd clàradh mar a fhuair gach pasgan mar sin a-steach don bhùth. Mar sin, a’ gabhail a-steach a h-uile gluasad eadar nithean, tha sinn an dùil deichean de bhilleanan de chlàran gach bliadhna.

Sgioba M

A dh 'aindeoin gu bheil Marcus air a mheas mar phròiseact taobh a-staigh X5, thathar ga chur an gnìomh a' cleachdadh dòigh-obrach toraidh. Tha an sgioba ag obair a rèir Scrum. Thòisich am pròiseact as t-samhradh an-uiridh, ach cha tàinig a 'chiad thoraidhean ach san Dàmhair - chaidh an sgioba againn fhèin a chruinneachadh, chaidh ailtireachd an t-siostaim a leasachadh agus chaidh uidheamachd a cheannach. A-nis tha 16 neach aig an sgioba, le sianar dhiubh an sàs ann an leasachadh backend agus frontend, le triùir dhiubh an sàs ann an sgrùdadh siostam. Tha sianar a bharrachd an sàs ann an obair-làimhe, luchdan, deuchainn fèin-ghluasadach, agus cumail suas toraidh. A bharrachd air an sin, tha eòlaiche SRE againn.

Chan e a-mhàin gu bheil luchd-leasachaidh a’ sgrìobhadh còd san sgioba againn; tha fios aig cha mhòr a h-uile duine mar a nì iad prògramadh agus sgrìobhadh fèin-dheuchainnean, luchdachadh sgriobtaichean agus sgriobtaichean fèin-ghluasaid. Bidh sinn a’ toirt aire shònraichte do seo, leis gu bheil eadhon taic toraidh a ’feumachdainn ìre àrd de fèin-ghluasad. Bidh sinn an-còmhnaidh a’ feuchainn ri comhairle agus cuideachadh a thoirt do cho-obraichean nach eil air prògramadh roimhe seo, agus cuid de ghnìomhan beaga a thoirt dhaibh airson obrachadh orra.

Mar thoradh air a’ ghalair lèir-sgaoilte coronavirus, ghluais sinn an sgioba gu lèir gu obair iomallach; le cothrom air a h-uile inneal airson riaghladh leasachaidh, bha an sruth-obrach togte ann an Jira agus GitLab ga dhèanamh comasach a dhol seachad air an ìre seo gu furasta. Sheall na mìosan a chaidh a chaitheamh air astar nach robh cinneasachd na sgioba a’ fulang mar thoradh air an sin; dha mòran, mheudaich an comhfhurtachd san obair, b’ e conaltradh beò an aon rud a bha a dhìth.

Coinneamh sgioba iomallach

“A’ coiseachd nam bhrògan” - fuirich, a bheil iad air an comharrachadh?

Coinneamhan rè obair iomallach

“A’ coiseachd nam bhrògan” - fuirich, a bheil iad air an comharrachadh?

Stòr teicneòlas fuasgladh

Is e GitLab an stòr àbhaisteach agus inneal CI / CD airson X5. Bidh sinn ga chleachdadh airson stòradh còd, deuchainn leantainneach, agus cleachdadh gu frithealaichean deuchainn is cinneasachaidh. Bidh sinn cuideachd a’ cleachdadh cleachdadh ath-sgrùdadh còd, nuair a dh’ fheumas co-dhiù 2 co-oibrichean aontachadh ri atharrachaidhean a rinn an leasaiche air a’ chòd. Bidh sgrùdairean còd statach SonarQube agus JaCoCo gar cuideachadh gus ar còd a chumail glan agus dèanamh cinnteach gu bheil an ìre riatanach de chòmhdach deuchainn aonad. Feumaidh a h-uile atharrachadh air a’ chòd a dhol tro na sgrùdaidhean sin. Thèid a h-uile sgriobt deuchainn a thèid a ruith le làimh a dhèanamh fèin-ghluasadach às deidh sin.

Airson buileachadh soirbheachail pròiseasan gnìomhachais le "Marcus", bha againn ri fuasgladh fhaighinn air grunn trioblaidean teicneòlais, mu gach aon ann an òrdugh.

Task 1. An fheum air scalability còmhnard an t-siostaim

Gus an duilgheadas seo fhuasgladh, thagh sinn dòigh-obrach microservice airson ailtireachd. Aig an aon àm, bha e glè chudromach tuigsinn raointean dleastanais nan seirbheisean. Dh'fheuch sinn rin roinn ann an gnìomhachd gnìomhachais, a 'toirt aire do mhion-fhiosrachadh nam pròiseasan. Mar eisimpleir, chan e obair glè thric a th’ ann an gabhail aig taigh-bathair, ach glè mhòr, nuair a dh’ fheumar fiosrachadh fhaighinn gu sgiobalta bho riaghladair na stàite mu na h-aonadan bathair a thathar a ’gabhail, agus tha an àireamh dhiubh ann an aon lìbhrigeadh a’ ruighinn 600000 , thoir sùil air iomchaidheachd gabhail ris an toradh seo a-steach don taigh-bathair agus thoir air ais a h-uile fiosrachadh riatanach airson siostam fèin-ghluasaid an taigh-bathair. Ach tha an gluasad bho thaighean-bathair tòrr nas dian, ach aig an aon àm ag obair le glè bheag de dhàta.

Bidh sinn a’ cur an gnìomh a h-uile seirbheis gun stàit agus eadhon a’ feuchainn ri gnìomhachd a-staigh a roinn ann an ceumannan, a’ cleachdadh na tha sinn ag ainmeachadh Kafka fèin-cuspairean. Seo nuair a chuireas microservice teachdaireachd thuige fhèin, a leigeas leat an luchd air gnìomhachd nas dian a chothromachadh agus a dhèanamh nas sìmplidhe cumail suas toraidh, ach barrachd air sin nas fhaide air adhart.

Chuir sinn romhainn modalan airson eadar-obrachadh le siostaman bhon taobh a-muigh a sgaradh gu seirbheisean air leth. Rinn seo e comasach fuasgladh fhaighinn air an duilgheadas mu bhith ag atharrachadh APIan de shiostaman taobh a-muigh gu tric, le cha mhòr buaidh sam bith air seirbheisean le gnìomhachd gnìomhachais.

“A’ coiseachd nam bhrògan” - fuirich, a bheil iad air an comharrachadh?

Tha a h-uile microservices air an cleachdadh ann am brabhsair OpenShift, a dh’ fhuasglas an dà chuid an duilgheadas a thaobh sgèileadh gach microservice agus a leigeas leinn gun a bhith a’ cleachdadh innealan Lorg Seirbheis treas-phàrtaidh.

Gnìomh 2. An fheum air eallach àrd agus fìor dhian iomlaid dàta a chumail eadar seirbheisean àrd-ùrlair: Aig ìre cur air bhog a’ phròiseict a-mhàin, thèid timcheall air 600 gnìomhachd gach diog a dhèanamh. Tha sinn an dùil gun àrdaich an luach seo gu 5000 ops / diog mar a bhios ionadan reic a’ ceangal ris an àrd-ùrlar againn.

Chaidh an duilgheadas seo fhuasgladh le bhith a’ cleachdadh cruinneachadh Kafka agus cha mhòr gu tur a’ trèigsinn eadar-obrachadh sioncronaich eadar meanbh-sheirbheisean an àrd-ùrlair. Feumaidh seo sgrùdadh gu math faiceallach air riatanasan an t-siostaim, leis nach urrainn a h-uile gnìomhachd a bhith asyncronach. Aig an aon àm, bidh sinn chan ann a-mhàin a’ sgaoileadh thachartasan tron ​​​​bhròcair, ach bidh sinn cuideachd a’ sgaoileadh a h-uile fiosrachadh gnìomhachais a tha a dhìth anns an teachdaireachd. Mar sin, faodaidh meud na teachdaireachd grunn cheudan kilobytes a ruighinn. Tha crìoch meud teachdaireachd Kafka ag iarraidh oirnn ro-innse ceart a dhèanamh air meud an teachdaireachd, agus ma tha sin riatanach, bidh sinn gan roinn, ach tha an roinn loidsigeach, co-cheangailte ri gnìomhachd gnìomhachais.
Mar eisimpleir, bidh sinn a 'roinn bathar a ruigeas càr gu bogsaichean. Airson gnìomhachd sioncronaich, tha meanbh-sheirbheisean air leth air an riarachadh agus thèid deuchainn luchdan domhainn a dhèanamh. Le bhith a’ cleachdadh Kafka thug sinn dùbhlan eile dhuinn - le bhith a’ dèanamh deuchainn air gnìomhachd ar seirbheis a’ toirt aire do aonachadh Kafka a’ dèanamh a h-uile deuchainn aonad againn neo-chinnteach. Dh ’fhuasgail sinn an duilgheadas seo le bhith a’ sgrìobhadh na dòighean goireis againn fhèin a ’cleachdadh Embedded Kafka Broker. Chan eil seo a 'cur às don fheum air deuchainnean aonad a sgrìobhadh airson dòighean fa leth, ach is fheàrr leinn deuchainn a dhèanamh air cùisean iom-fhillte a' cleachdadh Kafka.

Chaidh mòran aire a thoirt do lorg logaichean gus nach deidheadh ​​​​an TraceId aca a chall nuair a thachras eisgeachdan rè obrachadh sheirbheisean no nuair a bhios iad ag obair le baidse Kafka. Agus mura robh cùisean sònraichte ann leis a’ chiad fhear, an uairsin anns an dàrna cùis feumaidh sinn na TraceIds uile a thàinig leis a’ bhaidse a chlàradh agus fear a thaghadh airson leantainn air adhart a’ lorg. An uairsin, nuair a nì e sgrùdadh leis an TraceId tùsail, gheibh an neach-cleachdaidh a-mach gu furasta leis an lean an lorg.

Gnìomh 3. An fheum air tòrr dàta a stòradh: Bidh còrr air 1 billean leubail sa bhliadhna airson tombaca a-mhàin a’ tighinn gu X5. Feumaidh iad ruigsinneachd seasmhach agus luath. Gu h-iomlan, feumaidh an siostam timcheall air 10 billean clàr de eachdraidh gluasaid nam bathar leubail sin a phròiseasadh.

Gus an treas duilgheadas fhuasgladh, chaidh stòr-dàta NoSQL MongoDB a thaghadh. Tha sinn air shard de 5 nodan a thogail agus tha mac-samhail de sheata de 3 frithealaichean aig gach nód. Leigidh seo leat an siostam a sgèileadh gu còmhnard, a’ cur frithealaichean ùra ris a’ bhuidheann, agus a’ dèanamh cinnteach gu bheil e fo fhulangas lochdan. An seo thachair sinn ri duilgheadas eile - a’ dèanamh cinnteach à gnìomhachd anns a’ bhuidheann mongo, a’ toirt aire do bhith a’ cleachdadh meanbh-sheirbheisean a ghabhas scalladh gu còmhnard. Mar eisimpleir, is e aon de ghnìomhan an t-siostaim againn oidhirpean a chomharrachadh gus toraidhean leis na h-aon chòdan bileagan ath-reic. An seo, bidh ath-chòmhdach a’ nochdadh le sganaidhean mearachdach no gnìomhachd mearachdach le airgead-airgid. Fhuair sinn a-mach gum faod an leithid de dhùblaidhean tachairt an dà chuid taobh a-staigh aon bhaidse Kafka ga ghiullachd, agus taobh a-staigh dà bhaidse gan giullachd aig an aon àm. Mar sin, cha tug sgrùdadh airson dùblaidhean le bhith a’ ceasnachadh an stòr-dàta dad. Airson gach microservice, dh 'fhuasgail sinn an duilgheadas fa leth stèidhichte air loidsig gnìomhachais na seirbheis seo. Mar eisimpleir, airson sgrùdaidhean, chuir sinn seic taobh a-staigh baidse agus giullachd fa leth airson coltas dùblaidhean nuair a chuir sinn a-steach e.

Gus dèanamh cinnteach nach toir obair luchd-cleachdaidh le eachdraidh gnìomhachd buaidh sam bith air an rud as cudromaiche - gnìomhachd ar pròiseasan gnìomhachais, tha sinn air a h-uile dàta eachdraidheil a sgaradh ann an seirbheis air leth le stòr-dàta air leth, a bhios cuideachd a ’faighinn fiosrachadh tro Kafka . San dòigh seo, bidh luchd-cleachdaidh ag obair le seirbheis iomallach gun a bhith a’ toirt buaidh air na seirbheisean a bhios a’ giullachd dàta airson gnìomhachd leantainneach.

Gnìomh 4: Ath-ghiollachd agus sgrùdadh ciudha:

Ann an siostaman sgaoilte, tha duilgheadasan agus mearachdan gu do-sheachanta ag èirigh nuair a tha stòran-dàta, ciudhaichean agus stòran dàta taobh a-muigh rim faighinn. Ann an cùis Marcus, is e tobar mhearachdan mar sin amalachadh le siostaman taobh a-muigh. Bha e riatanach fuasgladh a lorg a leigeadh le iarrtasan a-rithist airson freagairtean mearachdach le beagan ùine ainmichte, ach aig an aon àm gun a bhith a’ giullachd iarrtasan soirbheachail anns a’ phrìomh chiudha. Airson an adhbhair seo, chaidh am bun-bheachd ris an canar “retry stèidhichte air cuspair” a thaghadh. Airson gach prìomh chuspair, thèid aon chuspair ath-fheuchainn no barrachd a chruthachadh far an tèid teachdaireachdan mearachdach a chuir agus aig an aon àm cuir às don dàil ann a bhith a’ làimhseachadh teachdaireachdan bhon phrìomh chuspair. Sgeama eadar-obrachaidh -

“A’ coiseachd nam bhrògan” - fuirich, a bheil iad air an comharrachadh?

Gus a leithid de sgeama a chuir an gnìomh, bha feum againn air na leanas: am fuasgladh seo fhilleadh a-steach leis an Earrach agus dùblachadh còd a sheachnadh. Fhad ‘s a bha sinn a’ surfadh air an lìon, thàinig sinn tarsainn air fuasgladh coltach ris stèidhichte air Spring BeanPostProccessor, ach bha e coltach gun robh e duilich dhuinn. Tha an sgioba againn air fuasgladh nas sìmplidh a dhèanamh a leigeas leinn amalachadh a-steach do chearcall an Earraich airson luchd-ceannach a chruthachadh agus a bharrachd air Retry Consumers a chuir ris. Thairg sinn prototype den fhuasgladh againn do sgioba an Earraich, chì thu e an seo. Tha an àireamh de Retry Consumers agus an àireamh de dh’ oidhirpean airson gach neach-cleachdaidh air an rèiteachadh tro pharaimearan, a rèir feumalachdan a’ phròiseas gnìomhachais, agus airson a h-uile càil obrachadh, chan eil air fhàgail ach an nota a chur ris org.springframework.kafka.annotation.KafkaListener , a tha eòlach air luchd-leasachaidh an Earraich.

Mura b’ urrainnear an teachdaireachd a phròiseasadh às deidh a h-uile oidhirp ath-fheuchainn, thèid e gu DLT (cuspair litir marbh) a’ cleachdadh Spring DeadLetterPublishingRecoverer. Le iarrtas airson taic, leudaich sinn am feart seo agus chruthaich sinn seirbheis air leth a leigeas leat teachdaireachdan ann an DLT, stackTrace, traceId agus fiosrachadh feumail eile mun deidhinn fhaicinn. A bharrachd air an sin, chaidh sgrùdadh agus rabhaidhean a chuir ris a h-uile cuspair DLT, agus a-nis, gu dearbh, tha coltas teachdaireachd ann an cuspair DLT na adhbhar airson uireasbhaidh a sgrùdadh agus a chàradh. Tha seo gu math goireasach - le ainm a 'chuspair, bidh sinn a' tuigsinn sa bhad dè an ìre den phròiseas a dh'èirich an duilgheadas, a tha gu mòr a 'luathachadh rannsachadh airson a bhun-adhbhar.

“A’ coiseachd nam bhrògan” - fuirich, a bheil iad air an comharrachadh?

O chionn ghoirid, tha sinn air eadar-aghaidh a chuir an gnìomh a leigeas leinn teachdaireachdan a chuir air ais a ’cleachdadh ar taic às deidh dhaibh na h-adhbharan aca a chuir às (mar eisimpleir, ag ath-nuadhachadh gnìomhachd an t-siostam taobh a-muigh) agus, gu dearbh, a’ stèidheachadh an uireasbhaidh co-fhreagarrach airson mion-sgrùdadh. Seo far a bheil na fèin-cuspairean againn a’ tighinn gu feum: gus nach tèid sèine giollachd fada ath-thòiseachadh, faodaidh tu ath-thòiseachadh bhon cheum a tha thu ag iarraidh.

“A’ coiseachd nam bhrògan” - fuirich, a bheil iad air an comharrachadh?

Gnìomh àrd-ùrlar

Tha an àrd-ùrlar mar-thà ag obair gu cinneasach, a h-uile latha bidh sinn a’ lìbhrigeadh liubhairt is luchdan, a’ ceangal ionadan sgaoilidh is stòran ùra. Mar phàirt den phìleat, tha an siostam ag obair leis na buidhnean toraidh “Tombacco” agus “Shoes”.

Bidh an sgioba gu lèir againn a’ gabhail pàirt ann a bhith a’ stiùireadh phìleatan, a’ mion-sgrùdadh dhuilgheadasan a tha a’ tighinn am bàrr agus a’ dèanamh mholaidhean airson ar toradh a leasachadh, bho bhith a’ leasachadh chlàran gu pròiseasan caochlaideach.

Gus nach dèan sinn na mearachdan againn a-rithist, tha a h-uile cùis a chaidh a lorg tron ​​​​phìleat air a nochdadh ann an deuchainnean fèin-ghluasadach. Tha làthaireachd àireamh mhòr de autotests agus deuchainnean aonad a’ toirt cothrom dhut deuchainn ath-tharraing a dhèanamh agus hotfix a chuir a-steach gu litearra taobh a-staigh beagan uairean a thìde.

A-nis tha sinn a’ cumail oirnn a’ leasachadh agus ag adhartachadh ar n-àrd-ùrlar, agus tha sinn an-còmhnaidh a’ toirt aghaidh air dùbhlain ùra. Ma tha ùidh agad, bruidhnidh sinn mu na fuasglaidhean againn anns na h-artaigilean a leanas.

Source: www.habr.com

Cuir beachd ann