Umlando we-Dodo IS architecture: indlela yehhovisi elingemuva

UHabr ushintsha umhlaba. Sesibe nokubhuloga isikhathi esingaphezu konyaka. Cishe ezinyangeni eziyisithupha ezedlule sithole impendulo ephusile evela kubahlali baseKhabrovsk: “Dodo, usho yonke indawo ukuthi unesistimu yakho. Luhlobo luni lwesistimu lolu? Futhi kungani i-pizzeria chain ilidinga?"

Sahlala sacabanga sabona ukuthi uqinisile. Sizama ukuchaza yonke into ngeminwe yethu, kodwa iphuma izingcezu ezidabukile futhi ayikho incazelo egcwele yesistimu noma kuphi. Kwaqala kanjalo uhambo olude lokuqoqa ulwazi, ukucinga ababhali nokubhala uchungechunge lwezihloko ezimayelana neDodo IS. Asambe!

Ukubongwa: Siyabonga ngokwabelana nathi ngempendulo yakho. Siyabonga kuye, ekugcineni sachaza uhlelo, sahlanganisa i-technoradar, futhi maduzane sizokhipha incazelo enkulu yezinqubo zethu. Ngaphandle kwakho, ngabe sihlezi kanjena eminye iminyaka emi-5.

Umlando we-Dodo IS architecture: indlela yehhovisi elingemuva

Uchungechunge lwezihloko “Iyini i-Dodo IS?” uzokutshela mayelana:

  1. I-monolith yakuqala e-Dodo IS (2011-2015). (Kuyaqhubeka...)
  2. Indlela ye-backoffice: izisekelo ezihlukene kanye nebhasi. (Ulapha)
  3. Indlela yengxenye yeklayenti: i-facade ngaphezu kwesisekelo (2016-2017). (Kuyaqhubeka...)
  4. Umlando wama-microservices wangempela. (2018-2019). (Kuyaqhubeka...)
  5. Ukusika okuqediwe kwe-monolith kanye nokuzinza kwezakhiwo. (Kuyaqhubeka...)

Uma unentshisekelo yokufunda noma yini enye, bhala kumazwana.

Umbono ngencazelo yokulandelana kwezikhathi ezivela kumbhali
Ngihlale ngibamba umhlangano wabasebenzi abasha ngesihloko esithi “System Architecture”. Siyibiza ngokuthi “I-Intro to Dodo IS Architecture” futhi iyingxenye yenqubo yokugibela yonjiniyela abasha. Ukukhuluma ngendlela eyodwa noma enye mayelana nezakhiwo zethu, mayelana nezici zayo, ngithuthukise indlela ethile yomlando encazelweni.

Ngokwesiko, sibheka isistimu njengesethi yezingxenye (izinga lobuchwepheshe noma eliphezulu), amamojula ebhizinisi asebenzisanayo ukuze afinyelele umgomo othile. Futhi nakuba umbono onjalo unesizathu sokuklama, awufaneleki ngokuphelele ukuchazwa nokuqonda. Kunezizathu ezimbalwa:

  • Iqiniso lihlukile kulokho okusephepheni. Akukona konke okusebenza njengoba bekuhleliwe. Futhi sinentshisekelo yokuthi konke kwahamba kanjani futhi kusebenza kanjani.
  • Ukwethulwa okungaguquki kolwazi. Eqinisweni, ungahamba ngokulandelana kwezikhathi ukusuka ekuqaleni uye esimweni samanje.
  • Ukusuka kokulula kuye kokuyinkimbinkimbi. Akuyona yonke indawo, kodwa esimweni sethu kunjalo. I-Architecture isuke ezindleleni ezilula yaya kweziyinkimbinkimbi kakhulu. Imvamisa, ngenxa yezinkinga, izinkinga zejubane nokuqina kokuqaliswa, kanye nenqwaba yezinye izakhiwo ezivela ohlwini lwezidingo ezingasebenzi (lapha kukhulunywe kahle ngokuqhathanisa ubunkimbinkimbi nezinye izidingo).

Ngo-2011, i-architecture ye-Dodo IS yayibukeka kanje:

Umlando we-Dodo IS architecture: indlela yehhovisi elingemuva

Ngo-2020, kwaba nzima nakakhulu futhi kwaba kanje:

Umlando we-Dodo IS architecture: indlela yehhovisi elingemuva

Kwenzeka kanjani lokhu kuziphendukela kwemvelo? Kungani kudingeka izingxenye ezahlukene zesistimu? Yiziphi izinqumo zezakhiwo ezenziwe futhi ngani? Ake sikuthole kulolu chungechunge lwezihloko.

Izinkinga zokuqala zika-2016: kungani izinsizakalo kufanele zishiye i-monolith?

Izihloko zokuqala ochungechungeni zizokhuluma ngezinsizakalo ezaziqala ukuhlukana ne-monolith. Ukukubeka kumongo, ngizokutshela ukuthi yiziphi izinkinga esasinazo ohlelweni ekuqaleni kuka-2016, okwakudingeka sibhekane nokuhlukaniswa kwezinsizakalo.

Isizindalwazi esisodwa se-MySql lapho zonke izinhlelo zokusebenza ezazikhona ngaleso sikhathi e-Dodo IS zabhala khona amarekhodi azo. Imiphumela yaba:

  • Umthwalo osindayo (no-85% wezicelo ezifundiwe).
  • Isisekelo sasikhula. Ngenxa yalokhu, izindleko nokusekelwa kwaba inkinga.
  • Iphuzu elilodwa lokwehluleka. Uma uhlelo lokusebenza olulodwa lubhalela kusizindalwazi ngokuzumayo luqale ukwenza kanjalo ngokuqhubekayo, ezinye izinhlelo zokusebenza zawuzwa umthelela.
  • Ukungasebenzi kahle kwesitoreji kanye nemibuzo. Ngokuvamile idatha yayigcinwa kwesinye isakhiwo esasilungele ezinye izimo kodwa hhayi kwezinye. Izinkomba zisheshisa eminye imisebenzi, kodwa zinganciphisa ezinye.
  • Ezinye zezinkinga zaxazululwa ngama-caches enziwe ngokuphazima kweso kanye ne-replicas efundwayo kuma-database (lokhu kuzoxoxwa ngakho esihlokweni esihlukile), kodwa basivumela ukuthi sithole isikhathi futhi abazange baxazulule inkinga ngokuyisisekelo.

Inkinga kwaba ukuba khona kwe-monolith ngokwayo. Imiphumela yaba:

  • Ukukhishwa okuhlukile nokungavamile.
  • Ubunzima busekuthuthukisweni ngokubambisana kwenani elikhulu labantu.
  • Ukungakwazi ukwethula ubuchwepheshe obusha, izinhlaka ezintsha nemitapo yolwazi.

Izinkinga ngesisekelo kanye ne-monolith zichazwe izikhathi eziningi, isibonelo, kumongo wokuphahlazeka ekuqaleni kuka-2018 (Yiba njengoMunch, noma amagama ambalwa mayelana nesikweletu sezobuchwepheshe, Usuku u-Dodo IS wama. Iskripthi esingavumelaniyo и Indaba yenyoni yakwaDodo emndenini wakwaPhoenix. Ukuwa Okukhulu kweDodo IS), ngakho-ke ngeke ngihlale kakhulu. Mangisho nje ukuthi besifuna ukunikeza ukuguquguquka okwengeziwe lapho sithuthukisa izinsizakalo. Okokuqala, lokhu kwakuphathelene nalezo ezazilayishwe kakhulu futhi ziyimpande kulo lonke uhlelo - i-Auth and Tracker.

Indlela ye-backoffice: izisekelo ezihlukene kanye nebhasi

Isahluko Navigation

  1. Uhlelo lwe-monolith 2016
  2. Siqala ukukhulula i-monolith: ukuhlukaniswa kwe-Auth ne-Tracker
  3. Wenzani i-Auth?
  4. Imithwalo ivelaphi?
  5. Ikhipha i-Auth
  6. I-Tracker yenzani?
  7. Imithwalo ivelaphi?
  8. Kwethulwa iTracker

Uhlelo lwe-monolith 2016

Nawa amabhulokhi amakhulu we-Dodo IS monolith ka-2016, futhi ngezansi nje kukhona ukuhlukaniswa kwemisebenzi yabo eyinhloko.
Umlando we-Dodo IS architecture: indlela yehhovisi elingemuva
Delivery cash desk. I-accounting yezithunywa, ikhipha ama-oda kubathumeli.
Isikhungo sokuxhumana. Ukwamukela ama-oda ngo-opharetha.
Site. Amawebhusayithi ethu (dodopizza.ru, dodopizza.co.uk, dodopizza.by, njll.).
I-Auth. Isevisi yokugunyaza kanye nokuqinisekisa ye-backoffice.
I-Tracker. I-tracker ye-oda yekhishi. Isevisi yokumaka izimo zokulungela lapho ulungiselela i-oda.
Ideski lemali yokudlela. Ukuthatha ama-oda endaweni yokudlela, i-cashier interfaces.
Thumela. Ilayisha imibiko ku-1C ye-accounting.
Izexwayiso nama-invoyisi. Imiyalo yezwi ekhishini (isibonelo, “i-pizza entsha isifikile”) + ukuphrintwa kwama-invoyisi ezithunywa.
Shift Manager. Ukuxhumana komsebenzi womphathi weshifu: uhlu lwama-oda, amashadi okukhiqiza, ukuletha abasebenzi emashifu.
Umphathi Wehhovisi. Ukuxhumana komsebenzi wama-franchisees nabaphathi: ukwamukela abasebenzi, imibiko ngomsebenzi we-pizzeria.
Ibhodi yokudlela. Ibonisa amamenyu kuma-TV kuma-pizzeria.
Admin. Izilungiselelo ze-pizzeria ethile: imenyu, izintengo, ukubalwa kwezimali, amakhodi okukhangisa, amaphromoshini, izibhengezo zesayithi, njll.
I-akhawunti yomuntu siqu yabasebenzi. Amashejuli omsebenzi wabasebenzi, ulwazi ngabasebenzi.
Ibhodi Lokugqugquzela Ikhishi. Isikrini esihlukile esilenga ekhishini futhi sibonisa ijubane labakhi be-pizza.
Ukuxhumana. Ukuthumela i-sms ne-imeyili.
I-FileStorage. Isevisi yomuntu siqu yokwamukela nokukhipha amafayela amile.

Imizamo yokuqala yokuxazulula izinkinga yasisiza, kodwa yaba ukuphumula kwesikhashana. Abazange babe yizixazululo zesistimu, ngakho-ke kwacaca ukuthi kukhona okumele kwenziwe ngezisekelo. Isibonelo, hlukanisa isizindalwazi esijwayelekile sibe ezimbalwa ezikhethekile.

Siqala ukukhulula i-monolith: ukuhlukaniswa kwe-Auth ne-Tracker

Amasevisi amakhulu abese ebhala futhi efundwa kusizindalwazi ngaphezu kwamanye:

  1. I-Auth. Isevisi yokugunyaza kanye nokuqinisekisa ye-backoffice.
  2. I-Tracker. I-tracker ye-oda yekhishi. Isevisi yokumaka izimo zokulungela lapho ulungiselela i-oda.

Wenzani i-Auth?

I-Auth iyisevisi abasebenzisi abangena ngayo ehhovisi elingemuva (kukhona ukungena okuzimele okuhlukile ohlangothini lweklayenti). Kuphinde kubalulwe esicelweni sokuqinisekisa ukuthi amalungelo okufinyelela alungile akhona nokuthi la malungelo awashintshile kusukela ekungeneni ngemvume kokugcina. Amadivayisi afaka ama-pizzeria ngawo.

Isibonelo, sifuna ukuvula isibonisi esinesimo sama-oda aqediwe ku-TV elenga ehholo. Bese sivula i-auth.dodopizza.ru, khetha "Ngena ngemvume njengedivayisi", ikhodi ibonakala ingafakwa ekhasini elikhethekile kukhompyutha yomphathi we-shift, ebonisa uhlobo lwedivayisi (idivayisi). I-TV ngokwayo izoya ku-interface oyifunayo ye-pizzeria yayo futhi iqale ukubonisa lapho amagama amakhasimende ama-oda awo aselungile.

Umlando we-Dodo IS architecture: indlela yehhovisi elingemuva

Imithwalo ivelaphi?

Umsebenzisi ngamunye ongene ehhovisi elingemuva uya kusizindalwazi ngesicelo ngasinye, kuthebula lomsebenzisi, akhiphe umsebenzisi lapho ngombuzo we-sql futhi ahlole ukuthi uyakwazi yini ukufinyelela kanye namalungelo adingekayo kuleli khasi.

Idivayisi ngayinye yenza okufanayo kuphela ngethebula ledivayisi, ihlola indima yayo nokufinyelela kwayo. Inani elikhulu lezicelo kusizindalwazi esiyinhloko siholela ekulayisheni nasekumosheni kwemithombo yolwazi jikelele kule misebenzi.

Ikhipha i-Auth

I-Auth inesizinda esizimele, okungukuthi, idatha emayelana nabasebenzisi, ukungena ngemvume noma amadivayisi ingena kusevisi (okwamanje esizayo) futhi ihlala lapho. Uma othile ezidinga, uzoya kule sevisi ukuze athole idatha.

KWAKUNJALO. Umsebenzi wokuqala wawumi kanje:

Umlando we-Dodo IS architecture: indlela yehhovisi elingemuva

Ngingathanda ukuchaza kancane ukuthi kusebenze kanjani:

  1. Isicelo sangaphandle siza ku-backend (i-Asp.Net MVC lapho), iza nekhukhi yeseshini, esetshenziselwa ukuthola idatha yeseshini ku-Redis(1). Iqukethe ulwazi mayelana nokufinyelela, bese ukufinyelela kusilawuli kuvuliwe (3,4), noma cha.
  2. Uma kungekho ukufinyelela, udinga ukudlula inqubo yokugunyazwa. Lapha, ukuze kube lula, kuboniswa njengengxenye yendlela kusibaluli esifanayo, nakuba lokhu kuwushintsho oluya ekhasini lokungena. Esimeni sesimo esihle, sizothola iseshini egcwaliswe ngendlela efanele futhi siye kokuthi Isilawuli Se-Backoffice.
  3. Uma kunedatha, kuzomele uyihlolele ukuhlobana kusizindalwazi somsebenzisi. Ngabe indima yakhe isishintshile, akufanele yini avunyelwe kuleli khasi manje? Kulokhu, ngemva kokuthola iseshini (1), udinga ukuya ngokuqondile kusizindalwazi bese uhlola ukufinyelela komsebenzisi usebenzisa isendlalelo se-logic yokuqinisekisa (2). Okulandelayo, hamba uye ekhasini lokungena ngemvume noma uye kusilawuli. Lolu uhlelo olulula, kodwa hhayi olujwayelekile ngokuphelele.
  4. Uma zonke izinqubo ziqediwe, sizobe seqa ngokuqhubekayo kungqondongqondo kuzilawuli nezindlela.

Idatha yomsebenzisi ihlukaniswa nayo yonke enye idatha, igcinwa kuthebula lobulungu elihlukile, imisebenzi evela kusendlalelo esinengqondo ye-AuthService ingase ibe izindlela ze-API. Imingcele yesizinda ichazwe ngokucacile: abasebenzisi, izindima zabo, idatha yokufinyelela, ukukhishwa kanye nokuhoxiswa kokufinyelela. Konke kubukeka sengathi kungase kuhanjiswe kusevisi ehlukile.

KWABA. Yilokho abakwenzile:

Umlando we-Dodo IS architecture: indlela yehhovisi elingemuva

Le ndlela inezinkinga eziningi. Isibonelo, ukushayela indlela ngaphakathi kwenqubo akufani nokushayela isevisi yangaphandle nge-http. Ukubambezeleka, ukwethembeka, ukusekela, nokungafihli komsebenzi kuhluke ngokuphelele. U-Andrey Morevsky ukhulume kabanzi mayelana nalezi zinkinga embikweni wakhe "50 shades of microservices".

Isevisi yokuqinisekisa kanye nayo isevisi yedivayisi isetshenziselwa ihhovisi elingemuva, okungukuthi, izinsizakalo nezixhumi ezibonakalayo ezisetshenziswa ekukhiqizeni. Ukuqinisekiswa kwezinsizakalo zeklayenti (njengewebhusayithi noma uhlelo lokusebenza lweselula) kwenzeka ngokuhlukene ngaphandle kokusebenzisa i-Auth. Ukwehlukana kuthathe cishe unyaka, futhi manje siphinde sisebenza ngalesi sihloko, sidlulisela isistimu kumasevisi amasha okuqinisekisa (ngezivumelwano ezijwayelekile).

Kungani ukwehlukana kuthathe isikhathi eside kangaka?
Kube nezinkinga eziningi endleleni ezisenze sanensa:

  1. Besifuna ukudlulisa idatha emayelana nabasebenzisi, amadivaysi kanye nokuqinisekisa kusuka kusizindalwazi sezwe kuya kokukodwa. Ukuze senze lokhu, bekumele sidlulisele wonke amathebula nokusetshenziswa kusuka kusihlonzi se-int siye kusihlonzi se-UUId yomhlaba wonke (sisanda kulungisa le khodi kabusha. Roman Bukin "Uuid - indaba enkulu yesakhiwo esincane" kanye nephrojekthi yomthombo ovulekile Ama-Primitives). Ukugcina idatha yomsebenzisi (njengoba lolu kuwulwazi lomuntu siqu) kunemikhawulo yakho futhi kwamanye amazwe kuyadingeka ukuyigcina ngokuhlukene. Kodwa kufanele kube ne-ID yomsebenzisi yomhlaba wonke.
  2. Amathebula amaningi kusizindalwazi anolwazi lokuhlola mayelana nomsebenzisi owenze umsebenzi. Lokhu kwakudinga indlela eyengeziwe yokuqinisekisa ukuvumelana.
  3. Ngemuva kokudalwa kwezinsizakalo ze-API, kube nesikhathi eside futhi kancane kancane sokudluliselwa kwenye isistimu. Ukushintsha bekufanele kwenzeke ngaphandle komthungo kubasebenzisi futhi kudinga umsebenzi wezandla.

Uhlelo lokubhalisa idivayisi ku-pizzeria:

Umlando we-Dodo IS architecture: indlela yehhovisi elingemuva

Izakhiwo ezijwayelekile ngemuva kokuhlukanisa isevisi ye-Auth kanye namadivayisi:

Umlando we-Dodo IS architecture: indlela yehhovisi elingemuva

Ukubhala. Ngonyaka ka-2020, sisebenzela inguqulo entsha ye-Auth, esekelwe ezingeni lokugunyazwa le-OAuth 2.0. Leli zinga liyinkimbinkimbi, kodwa liwusizo ekuthuthukiseni isevisi yokuqinisekisa ekugcineni. Esihlokweni esithi "Ubuqili bokugunyazwa: ukubuka konke kobuchwepheshe be-OAuth 2.0» Thina u-Alexey Chernyaev sizame ukukhuluma ngezinga ngendlela elula futhi ecacile ngangokunokwenzeka ukuze wonge isikhathi sokuyifunda.

I-Tracker yenzani?

Manje cishe okwesibili kwezinkonzo ezilayishiwe. I-tracker yenza indima emibili:

  • Ngakolunye uhlangothi, umsebenzi wayo ukukhombisa abasebenzi ekhishini ukuthi yimiphi imiyalo eqhubekayo, yimiphi imikhiqizo okufanele ilungiswe manje.
  • Ngakolunye uhlangothi, yenza zonke izinqubo zibe yidijithali ekhishini.

Umlando we-Dodo IS architecture: indlela yehhovisi elingemuva

Uma umkhiqizo omusha (isibonelo, i-pizza) uvela ngokulandelana, uya esiteshini se-tracker esithi "Rolling". Kulesi siteshi kunomenzi we-pizza othatha ibhanisi eliwusayizi odingekayo aligoqe, ngemva kwalokho amake kuthebhulethi ye-tracker ukuthi uwuqedile umsebenzi wakhe bese edlulisela isisekelo senhlama esiteshini esilandelayo - “Ukugcwalisa” .

Lapho, umenzi we-pizza olandelayo uphakamisa i-pizza, bese emaka kuthebhulethi ukuthi uwuqedile umsebenzi wakhe bese efaka i-pizza kuhhavini (lesi futhi isiteshi esihlukile esidinga ukumakwa kuthebhulethi). Uhlelo olunjalo lwalukhona kusukela ekuqaleni eDodo futhi kusukela ekuqaleni kweDodo IS. Ikuvumela ukuthi ulandelele ngokugcwele futhi wenze yonke imisebenzi ibe yidijithali. Ngaphezu kwalokho, i-tracker iphakamisa indlela yokulungisa umkhiqizo othile, yenza uhlobo ngalunye lomkhiqizo ngokwezinhlelo zayo zokukhiqiza, igcine isikhathi esiphelele sokupheka somkhiqizo, futhi ilandelela konke ukusebenza komkhiqizo.

Umlando we-Dodo IS architecture: indlela yehhovisi elingemuvaYile ndlela isikrini sethebhulethi esibukeka ngayo esiteshini se-Raskatka tracker.

Imithwalo ivelaphi?

I-pizzeria ngayinye inamaphilisi amahlanu ane-tracker. Ngo-2016 saba nama-pizzeria angaphezu kwe-100 (futhi manje asengaphezu kwama-600). Ithebhulethi ngayinye yenza isicelo sokubuyela emuva njalo ngemizuzwana eyi-10 futhi iqoqa idatha kusuka kuthebula le-oda (isixhumanisi neklayenti nekheli), ukwakheka kwe-oda (isixhumanisi nomkhiqizo kanye nenkomba yobuningi), kanye netafula lokugqugquzela (lilandelela isikhathi sokucindezela). Uma umenzi we-pizza echofoza umkhiqizo ku-tracker, amarekhodi kuwo wonke lawa mathebula ayabuyekezwa. Ithebula le-oda livamile; ngesikhathi esisodwa liqukethe okufakiwe lapho wamukela i-oda, izibuyekezo ezivela kwezinye izingxenye zesistimu, nokufunda okuningi, isibonelo, ku-TV elenga endaweni ye-pizzeria futhi ebonisa ama-oda asevele enziwe kumakhasimende.

Ngesikhathi sokuzabalaza kwemithwalo, lapho yonke into nawo wonke umuntu egcinwe kunqolobane futhi edluliselwa kumfanekiso ongavumelanisiwe we-database, le misebenzi ne-tracker iqhubekile nokuya ku-database enkulu. Akufanele kube khona ukunensa lapha, idatha kufanele ibe ngezakamuva, iphelelwe ukuvumelanisa akwamukelekile.

Futhi, ukuntuleka kwamathebula ethu kanye nezinkomba kuwo akuzange kusivumele ukuthi sibhale imibuzo ethile eklanyelwe ukusetshenziswa kwethu. Isibonelo, kungase kusebenze ukuthi i-tracker ibe nenkomba ye-pizzeria etafuleni layo lama-oda. Sihlala sikhipha ama-oda e-pizzeria kusizindalwazi se-tracker. Ngasikhathi sinye, ukwamukela i-oda, akubalulekile kangako ukuthi iwela kuphi i-pizzeria, okubaluleke kakhulu ukuthi iliphi iklayenti elenze lo oda. Lokhu kusho ukuthi kufanele kube nenkomba kuklayenti. Akudingekile futhi ukuthi isilandeleli sigcine i-id yerisidi ephrintiwe noma amaphromoshini ebhonasi ahlotshaniswa ne-oda kuthebula le-oda. Isevisi yethu ye-tracker ayinantshisekelo kulolu lwazi. Kusizindalwazi esivamile se-monolithic, amathebula angaba kuphela ukuyekethisa phakathi kwabo bonke abasebenzisi. Lokhu bekungenye yezinkinga zokuqala.

KWAKUNJALO. Ekuqaleni i-architecture yayinje:

Umlando we-Dodo IS architecture: indlela yehhovisi elingemuva

Ngisho nangemva kokuhlukaniswa ngezinqubo ezihlukene, iningi lesisekelo sekhodi lahlala lijwayelekile kumasevisi ahlukene. Yonke into engezansi kwezilawuli ibihlangene futhi ihlala endaweni eyodwa. Kusetshenziswe izindlela ezijwayelekile zezinsizakalo, izinqolobane, kanye nesizindalwazi esivamile esinamathebula avamile.

Kwethulwa iTracker

Inkinga enkulu nge-tracker ukuthi idatha kufanele ivunyelaniswe phakathi kolwazi oluhlukene. Lona futhi umehluko wawo omkhulu kusukela ekuhlukaniseni isevisi ye-Auth; i-oda nesimo sayo kungashintsha futhi kufanele kuboniswe kumasevisi ahlukahlukene.

Samukela ama-oda e-Restaurant Checkout (lena yisevisi), agcinwa kusizindalwazi esimeni sokuthi “Okwamukelwe”. Ngemuva kwalokho, kufanele iye ku-tracker, lapho izoshintsha khona isimo sayo izikhathi eziningana: kusukela ku-"Kitchen" kuya kokuthi "Packed". Kulesi simo, amanye amathonya angaphandle avela ku-Cashier noma isixhumi esibonakalayo se-Shift Manager angase avele nge-oda. Ngizonikeza izimo ze-oda nezincazelo zazo kuthebula:

Umlando we-Dodo IS architecture: indlela yehhovisi elingemuva
Uhlelo lokushintsha isimo se-oda lubukeka kanje:

Umlando we-Dodo IS architecture: indlela yehhovisi elingemuva

Izimo ziyashintsha phakathi kwamasistimu ahlukene. Futhi lapha i-tracker ayilona uhlelo lokugcina lapho idatha ikhiyiwe. Sibone izindlela ezimbalwa zokuhlukanisa esimweni esinjalo:

  1. Sigxilisa zonke izenzo ze-oda kusevisi eyodwa. Esimweni sethu, le nketho idinga insizakalo eningi kakhulu ukucubungula i-oda. Ukube besima lapho, ngabe sigcine siphethe i-monolith yesibili. Besingeke sizixazulule izinkinga.
  2. Isistimu eyodwa yenza ikholi kwenye. Inketho yesibili iyathakazelisa kakhulu. Kepha ngakho, amaketanga ezingcingo ayenzeka (ukwehluleka kwe-cascading), ukuxhumeka kwezingxenye kuphezulu, futhi kunzima kakhulu ukuphatha.
  3. Sihlela imicimbi, futhi isevisi ngayinye ishintshana nomunye ngale micimbi. Ngenxa yalokho, inketho yesithathu yakhethwa, ngokusho ukuthi zonke izinsizakalo ziqala ukushintshanisa imicimbi nomunye nomunye.

Iqiniso lokuthi sikhethe inketho yesithathu lisho ukuthi i-tracker izoba ne-database yayo, futhi kulo lonke ushintsho ku-oda izothumela umcimbi mayelana nalokhu, lapho ezinye izinsizakalo zizobhalisela khona futhi ezizofakwa ku-database enkulu. Ukuze senze lokhu, besidinga isevisi ethile ezoqinisekisa ukulethwa kwemilayezo phakathi kwamasevisi.

Ngaleso sikhathi, sase sinayo kakade i-RabbitMQ esitakini, yingakho kwaba nesinqumo sokugcina sokuyisebenzisa njengomthengisi wemiyalezo. Umdwebo ubonisa ukuguqulwa kwe-oda elisuka ku-Restaurant Cashier nge-Tracker, lapho lishintsha khona isimo salo kanye nokuboniswa kwalo kusixhumi esibonakalayo sama-oda Omphathi. KWABA:

Umlando we-Dodo IS architecture: indlela yehhovisi elingemuva

Oda indlela yesinyathelo ngesinyathelo
Indlela yoku-oda iqala kwenye yezinsiza zomthombo we-oda. Nansi i-Restaurant Cashier:

  1. I-oda selilunge ngokuphelele ku-Checkout, futhi sekuyisikhathi sokulithumela kusilandeleli. Umcimbi okubhaliselwe kuwo i-tracker uyaphonswa.
  2. I-tracker, yamukela i-oda, iyigcina ku-database yayo, yenza umcimbi othi "I-Order Yamukelwe I-Tracker" futhi iyithumele ku-RMQ.
  3. Izibambi ezimbalwa sezivele zibhalisele ibhasi lomcimbi wangokwezifiso. Kithina, leyo evumelanisa ne-monolithic database ibalulekile.
  4. Umphathi uthola umcimbi, akhethe kuwo idatha ebalulekile kuwo: esimweni sethu, lesi isimo se-oda "Samukelwe i-Tracker" futhi sibuyekeza ibhizinisi layo le-oda kusizindalwazi esikhulu.

Uma othile edinga i-oda elivela kuthebula lama-oda e-monolithic, angalifunda nalapho. Isibonelo, yilokhu okudingwa isixhumi esibonakalayo sama-oda ku-Shift Manager:

Umlando we-Dodo IS architecture: indlela yehhovisi elingemuva

Zonke ezinye izinsiza zingabhalisela uku-oda imicimbi kwi-tracker ukuze izisebenzisele yona.

Uma ngemva kwesikhathi esithile i-oda lithathwa ekukhiqizweni, isimo salo siqala sishintsha kusizindalwazi salo (isizindalwazi se-Tracker), bese umcimbi othi “OrderInWork” ukhiqizwa ngokushesha. Iphinde ingene ku-RMQ, isuka lapho ivunyelaniswa khona kusizindalwazi se-monolithic futhi ilethwe kwezinye izinkonzo. Kungase kube nezinkinga ezihlukahlukene kule ndlela; imininingwane eyengeziwe ngazo ingatholakala embikweni kaZhenya Peshkov mayelana nemininingwane yokusetshenziswa kwe-Eventual Consistency ku-Tracker.

Izakhiwo zokugcina ngemva kwezinguquko ku-Auth ne-Tracker

Umlando we-Dodo IS architecture: indlela yehhovisi elingemuva

Ukufingqa: Ekuqaleni, nganginombono wokupakisha umlando weminyaka eyisishiyagalolunye wesistimu ye-Dodo IS ku-athikili eyodwa. Bengifuna ukukhuluma ngokushesha nangokulula ngezigaba zokuziphendukela kwemvelo. Nokho, ngemva kokuhlala phansi ukuze ngifunde indaba, ngabona ukuthi yonke into iyinkimbinkimbi kakhulu futhi iyathakazelisa kunalokho kubonakala.

Uma ngicabanga ngezinzuzo (noma ukuntuleka kwayo) kwezinto ezinjalo, ngafinyelela esiphethweni sokuthi ukuthuthukiswa okuqhubekayo akunakwenzeka ngaphandle kwemibhalo yezehlakalo egcwele yezehlakalo, ukuhlaziya okuningiliziwe kanye nokuhlaziywa kwezinqumo zomuntu zesikhathi esidlule.

Ngethemba ukuthi ukuthole kuwusizo futhi kuthakazelisa ukufunda ngohambo lwethu. Manje ngibhekene nokukhetha ukuthi iyiphi ingxenye yesistimu ye-Dodo IS engizoyichaza esihlokweni esilandelayo: bhala kumazwana noma uvote.

Abasebenzisi ababhalisiwe kuphela abangabamba iqhaza kuhlolovo. Ngena ngemvume, wamukelekile.

Iyiphi ingxenye ye-Dodo IS ongathanda ukufunda ngayo esihlokweni esilandelayo?

  • 24,1%I-monolith yakuqala e-Dodo IS (2011-2015)14

  • 24,1%Izinkinga zokuqala nezisombululo zazo (2015-2016)14

  • 20,7%Indlela yengxenye yeklayenti: i-facade ngaphezu kwesisekelo (2016-2017)12

  • 36,2%Umlando wama-microservices wangempela (2018-2019)21

  • 44,8%Ukusikwa okuqediwe kwe-monolith kanye nokuzinza kwezakhiwo26

  • 29,3%Mayelana nezinye izinhlelo zokuthuthukiswa kohlelo17

  • 19,0%Angifuni ukwazi lutho nge-Dodo IS11

Bangu-58 abasebenzisi abavotile. Abasebenzisi abangu-6 bagobile.

Source: www.habr.com

Engeza amazwana