Nhoroondo yeDodo IS Architecture: Iyo Back Office Path

Habr ari kuchinja nyika. Tave tichibhuroga kwerinopfuura gore. Inenge mwedzi mitanhatu yapfuura takagamuchira mhinduro dzine musoro kubva kuvagari veKhabrovsk: "Dodo, unotaura kwese kwese kuti une yako system. Irudzii rwesystem iyi? Uye nei cheni yepizzeria ichiida?"

Takagara tichifunga tikaona kuti uri right. Tiri kuedza kutsanangura zvinhu zvose neminwe yedu, asi inobuda muzvidimbu zvakabvaruka uye hapana tsanangudzo yakazara yehurongwa chero kupi zvako. Nokudaro yakatanga rwendo rurefu rwekuunganidza ruzivo, kutsvaga vanyori uye kunyora zvinyorwa zveDodo IS. Handeyi!

Kutenda: Maita basa nekugovera mhinduro dzenyu nesu. Kutenda kwaari, isu pakupedzisira takatsanangura sisitimu, takagadzira technoradar, uye munguva pfupi tichaburitsa tsananguro yakakura yemaitiro edu. Pasina iwe, tingadai takagara seizvi kwemamwe makore mashanu.

Nhoroondo yeDodo IS Architecture: Iyo Back Office Path

Yakateedzana yezvinyorwa "Chii chinonzi Dodo IS?" achataura nezve:

  1. Early monolith muDodo IS (2011-2015). (Munzira...)
  2. Backoffice nzira: zvigadziko zvakasiyana uye bhazi. (Uri pano)
  3. Nzira yemutengi chikamu: facade pamusoro pechigadziko (2016-2017). (Munzira...)
  4. Nhoroondo ye microservices chaiyo. (2018-2019). (Munzira...)
  5. Yakapedzwa kucheka kwe monolith uye kugadzikana kwezvivakwa. (Munzira...)

Kana iwe uchida kudzidza chimwe chinhu, nyora mumashoko.

Maonero pamusoro petsanangudzo yenguva kubva kumunyori
Ndinogara ndichiita musangano wevashandi vatsva pamusoro pe "System Architecture". Isu tinozvidaidza kuti "Intro kuDodo IS Architecture" uye chikamu cheiyo onboarding maitiro evagadziri vatsva. Ndichitaura mune imwe nzira kana imwe pamusoro pezvivakwa zvedu, nezve maficha ayo, ndakagadzira imwe nhoroondo yemaitiro kune tsananguro.

Nechinyakare, isu tinotarisa hurongwa seseti yezvikamu (technical kana yepamusoro-level), bhizinesi mamodules anopindirana kune mumwe nemumwe kuti azadzise chimwe chinangwa. Uye kunyange zvazvo maonero akadaro akafanirwa nekugadzirwa, hazvina kukodzera zvachose kutsanangurwa uye kunzwisisa. Pane zvikonzero zvakawanda:

  • Chokwadi chakasiyana nezviri pabepa. Hazvisi zvese zvinofamba sekuronga. Uye isu tinofarira kuti zvese zvakazoitika sei uye zvinoshanda sei.
  • Mharidzo inowirirana yemashoko. Muchokwadi, iwe unogona kuenda maererano nenguva kubva pakutanga kusvika kune yazvino mamiriro.
  • Kubva nyore kusvika kune yakaoma. Kwete pasi rose, asi kwatiri ndizvo zvazviri. Architecture yakatama kubva panzira dzakareruka kuenda kune dzakaoma kunzwisisa. Kazhinji, kuburikidza nekuomeserwa, matambudziko ekuita nekukurumidza uye kugadzikana, pamwe nemamwe akawanda ezvimwe zvivakwa kubva pane rondedzero yezvisiri-kushanda zvinodiwa (pano yakanyatsotaurwa nezvekusiyanisa kuomarara nezvimwe zvinodiwa).

Muna 2011, dhizaini yeDodo IS yakaita seizvi:

Nhoroondo yeDodo IS Architecture: Iyo Back Office Path

Pakazosvika 2020, zvakawedzera kuoma uye zvakaita seizvi:

Nhoroondo yeDodo IS Architecture: Iyo Back Office Path

Kushanduka uku kwakaitika sei? Sei zvikamu zvakasiyana zvehurongwa zvichidiwa? Ndezvipi zvisarudzo zvekuvaka zvakaitwa uye nei? Ngationei munhevedzano yezvinyorwa izvi.

Matambudziko ekutanga e2016: sei masevhisi achifanira kusiya monolith?

Zvinyorwa zvekutanga munhevedzano zvichange zviri zvemasevhisi aive ekutanga kuparadzaniswa kubva kune monolith. Kuti ndikuise mumamiriro ezvinhu, ini ndichakuudza matambudziko api ataive nawo muhurongwa pakutanga kwe2016, kuti taifanira kutarisana nekuparadzaniswa kwemabasa.

Dhatabhesi imwe chete yeMySql umo maapplication aivepo panguva iyoyo muDodo IS akanyora zvinyorwa zvavo. Migumisiro yacho yaiva:

  • Mutoro unorema (ne85% yezvikumbiro zviri kuverengwa).
  • Hwaro hwaikura. Nekuda kweizvi, mutengo uye rutsigiro yakava nyaya.
  • Imwe pfungwa yekukundikana. Kana imwe application ichinyorera kudhatabhesi yakangoerekana yatanga kuita zvakanyanya, saka mamwe maapplication akanzwa kukanganisa.
  • Kusashanda mukuchengetedza uye mibvunzo. Kazhinji data raichengetwa mune chimwe chimiro chaive chakanakira mamwe mamiriro asi kwete kune mamwe. Ma indexes anomhanyisa mamwe mashandiro, asi anogona kudzikisira mamwe.
  • Mamwe ematambudziko akagadziriswa nekukasira kugadzirwa cache uye kuverenga-replicas kune dhatabhesi (izvi zvichakurukurwa mune imwe nyaya), asi ivo chete vakatibvumira kuwana nguva uye havana kunyatsogadzirisa dambudziko.

Dambudziko raivepo raive monolith pachayo. Migumisiro yacho yaiva:

  • Zvakasiyana uye zvisingawanzo kuburitswa.
  • Chinetso chiri mukubatana kwekusimudzira nhamba huru yevanhu.
  • Kusakwanisa kuunza matekinoroji matsva, masisitimu matsva nemaraibhurari.

Matambudziko ane hwaro uye monolith akatsanangurwa kakawanda, semuenzaniso, mumamiriro ekuputsika mukutanga kwe2018 (Iva saMunch, kana mazwi mashoma pamusoro pechikwereti chehunyanzvi, Zuva rakamira Dodo. Asynchronous script ΠΈ Nyaya yeshiri yeDodo kubva kumhuri yePhoenix. Kuwa Kukuru kweDodo IS), saka handizogari zvakanyanya. Rega ndingotaura kuti isu taida kupa kuchinjika zvakanyanya pakugadzira masevhisi. Chekutanga pane zvese, izvi zvine chekuita neavo vaive vakaremerwa uye midzi muhurongwa hwese - Auth uye Tracker.

Backoffice nzira: zvigadziko zvakasiyana uye bhazi

Chitsauko Navigation

  1. Scheme ye monolith 2016
  2. Isu tinotanga kuburitsa iyo monolith: kuparadzaniswa kweAuth uye Tracker
  3. Auth anoita sei?
  4. Mitoro inobva kupi?
  5. Kuburitsa Auth
  6. Tracker inoita sei?
  7. Mitoro inobva kupi?
  8. Kuburutsa Tracker

Scheme ye monolith 2016

Heano mabhururu makuru e2016 Dodo IS monolith, uye pazasi pane kuparara kwemabasa avo makuru.
Nhoroondo yeDodo IS Architecture: Iyo Back Office Path
Delivery cash desk. Accounting yevatakuri, ichipa maodha kune vanotakura.
Contact centre. Kugamuchira mirairo kuburikidza nemushandisi.
Site. Mawebhusaiti edu (dodopizza.ru, dodopizza.co.uk, dodopizza.by, etc.).
Munyori. Mvumo uye yechokwadi sevhisi yebackoffice.
tracker. Kitchen order tracker. Sevhisi yekumaka mastatus ekugadzirira paunenge uchigadzira odha.
Restaurant cash desk. Kutora maodha muresitorendi, cashier interfaces.
ekisipoti. Kuisa mishumo mu1C yeakaunzi.
Zviziviso nemainvoice. Mirairo yezwi mukicheni (semuenzaniso, "Pizza nyowani yasvika") + kudhindwa kwemainvoice evatakuri.
Shift Manager. Interfaces yebasa remaneja wekuchinja: rondedzero yemirairo, machati ekugadzira, kuunza vashandi kumashifiti.
Office Manager. Interfaces yebasa re franchisees nemaneja: kugamuchirwa kwevashandi, mishumo yebasa re pizzeria.
Resitorendi bhodhi. Kuratidza mamenu paTV mupizzeria.
Admin. Zvigadziriso zvepizzeria chaiyo: menyu, mitengo, accounting, macode ekusimudzira, kukwidziridzwa, mabhenji esaiti, nezvimwe.
Account Personal Account. Zvirongwa zvebasa revashandi, ruzivo nezvevashandi.
Kitchen Motivation Board. Chidzitiro chakasiyana chakarembera mukicheni uye chinoratidza kumhanya kwevagadziri vepizza.
kutaurirana. Kutumira sms uye email.
FileStorage. Yako sevhisi yekugamuchira uye nekupa static mafaera.

Kuedza kwekutanga kugadzirisa matambudziko kwakatibatsira, asi kwaingova kuzorora kwechinguvana. Havana kuzove masystem solution, saka zvaive pachena kuti chimwe chinhu chaifanira kuitwa nemabhesi. Semuyenzaniso, patsanura dhatabhesi rezvakawanda mumamwe akati wandei akasarudzika.

Isu tinotanga kuburitsa iyo monolith: kuparadzaniswa kweAuth uye Tracker

Iwo masevhisi makuru akazonyora nekuverenga kubva kudhatabhesi kupfuura mamwe:

  1. Auth. Mvumo uye yechokwadi sevhisi yebackoffice.
  2. Tracker. Kitchen order tracker. Sevhisi yekumaka mastatus ekugadzirira paunenge uchigadzira odha.

Auth anoita sei?

Auth ibasa iro vashandisi vanopinda naro kuhofisi yekuseri (kune yakazvimiririra yakazvimirira yekupinda padivi revatengi). Inotaridzwawo muchikumbiro chekuti ive nechokwadi chekuti kodzero dzekuwana dziripo uye kuti kodzero idzi hadzina kushanduka kubva pakapedzisira kupinda. Midziyo inopinda pizzeria kuburikidza nayo.

Semuenzaniso, tinoda kuvhura chiratidziro chine chimiro cheodha dzakapedzwa paTV yakaturikwa muhoro. Zvadaro tinozarura auth.dodopizza.ru, sarudza "Login sechigadzirwa", kodhi inoratidzika inogona kuiswa mune peji yakakosha pakombiyuta yemutungamiri weshift, ichiratidza rudzi rwechigadzirwa (mudziyo). Iyo TV pachayo ichaenda kune inodiwa interface yepizzeria yayo uye inotanga kuratidza ipapo mazita evatengi vane maodha akagadzirira.

Nhoroondo yeDodo IS Architecture: Iyo Back Office Path

Mitoro inobva kupi?

Wese anopinda-mukati backoffice mushandisi anoenda kune dhatabhesi yechikumbiro chega chega, kune tafura yemushandisi, anoburitsa mushandisi kubva ipapo kuburikidza ne sql query uye anotarisa kana ane inodiwa yekuwana uye kodzero kune ino peji.

Imwe neimwe yemidziyo inoita zvakafanana chete netafura yemuchina, ichitarisa basa rayo uye masvikiro ayo. Huwandu hukuru hwezvikumbiro kune tenzi dhatabhesi inotungamira kune kurodha uye kutambisa kweakawanda dhatabhesi zviwanikwa pamabasa aya.

Kuburitsa Auth

Auth ine yakasarudzika domain, kureva, data nezve vashandisi, logins kana zvishandiso zvinopinda musevhisi (ikozvino ramangwana) uye inoramba iripo. Kana mumwe munhu achivada, anoenda kune iyi sevhisi kune data.

WAS. Kuenderera mberi kwebasa kwaive seizvi:

Nhoroondo yeDodo IS Architecture: Iyo Back Office Path

Ndinoda kutsanangura zvishoma kuti zvakashanda sei:

  1. Chikumbiro chekunze chinouya kubackend (Asp.Net MVC ipapo), ichiunza cookie yechikamu, iyo inoshandiswa kuwana data yechikamu kubva kuRedis (1). Iyo ingave ine ruzivo nezve masvikiro, uyezve kuwana kune controller kwakavhurika (3,4), kana kwete.
  2. Kana pasina mukana, iwe unofanirwa kuenda nenzira yekubvumidza. Pano, kuti zvive nyore, inoratidzwa sechikamu chegwara mune imwechete hunhu, kunyangwe iyi iri shanduko kuenda kupeji yekupinda. Muchiitiko chechiitiko chakanaka, tinogashira chikamu chakazadzwa nemazvo uye toenda kuBackoffice Controller.
  3. Kana paine data, saka iwe unofanirwa kuitarisa kuti inoenderana neiyo mushandisi database. Basa rake rachinja, haafanire kubvumidzwa papeji izvozvi? Muchiitiko ichi, mushure mekugamuchira chikamu (1), iwe unofanirwa kuenda zvakananga kune dhatabhesi uye tarisa kuwana kwemushandisi uchishandisa yekusimbisa logic layer (2). Tevere, enda kune peji rekupinda kana enda kune controller. Iyi inzira iri nyore, asi kwete yakazara yakazara.
  4. Kana maitiro ese apera, saka isu tinosvetuka mberi mune iyo logic muvatongi uye nzira.

Dhata yemushandisi yakapatsanurwa kubva kune mamwe ese data, inochengetwa mune yakaparadzana nhengo tafura, mabasa kubva kuAuthService logic layer inogona kuve nzira dzeAPI. Miganhu yedomasi inotsanangurwa zvakajeka: vashandisi, mabasa avo, data yekuwana, kuburitsa uye kubviswa kwekuwana. Zvese zvinoita sekunge zvinogona kuendeswa kune imwe sevhisi.

AKAVA. Ndizvo zvavakaita:

Nhoroondo yeDodo IS Architecture: Iyo Back Office Path

Iyi nzira ine matambudziko akawanda. Semuenzaniso, kudaidza nzira mukati mekuita hakuna kufanana nekufonera sevhisi yekunze kuburikidza ne http. Latency, kuvimbika, kutsigira, uye pachena kwekushanda kwakasiyana zvachose. Andrey Morevsky akataura zvakadzama pamusoro pematambudziko aya mumushumo wake "50 mimvuri ye microservices".

Iyo sevhisi yechokwadi uye nayo sevhisi yemudziyo inoshandiswa kuseri hofisi, ndiko kuti, kumasevhisi uye mainterface anoshandiswa mukugadzira. Huchokwadi hwemasevhisi evatengi (sewebhusaiti kana nharembozha) inoitika zvakasiyana pasina kushandisa Auth. Kupatsanura kwakatora rinenge gore, uye ikozvino tiri kushanda zvakare pane iyi nyaya, tichiendesa sisitimu kune mitsva yechokwadi masevhisi (ane akajairwa maprotocol).

Nei kuparadzana kwacho kwakatora nguva yakareba kudaro?
Paive nematambudziko mazhinji munzira aitinonotsa:

  1. Isu taida kuendesa data nezvevashandisi, zvishandiso uye kutendeseka kubva kune nyika dhatabhesi kuita imwe. Kuti tiite izvi, taifanira kuendesa matafura ese uye kushandiswa kubva kune int identifier kuenda kune yepasi rose UUId identifier (isu munguva pfupi yapfuura takagadzirisa iyi kodhi. Roman Bukin "Uuid - iyo nyaya huru yechimiro chidiki" uye open-source project Primitives) Kuchengeta data remushandisi (sezvo iri ruzivo rwemunhu) kune parinogumira uye kune dzimwe nyika zvinodikanwa kuichengeta zvakasiyana. Asi panofanirwa kuve nepasi rose mushandisi ID.
  2. Matafura mazhinji ari mudhatabhesi ane ruzivo rwekuongorora nezve mushandisi akaita oparesheni. Izvi zvaida imwe nzira yekusimbisa kuenderana.
  3. Mushure mekugadzirwa kwe API masevhisi, pakanga paine nguva yakareba uye zvishoma nezvishoma yekuchinjisa kune imwe system. Kuchinja kwaifanira kuitika pasina mutsetse kune vashandisi uye kwaida basa remaoko.

Chirongwa chekunyoresa mudziyo mu pizzeria:

Nhoroondo yeDodo IS Architecture: Iyo Back Office Path

General architecture mushure mekuparadzanisa Auth uye Devices sevhisi:

Nhoroondo yeDodo IS Architecture: Iyo Back Office Path

taura pfungwa. Muna 2020, tiri kushanda pashanduro itsva yeAuth, iyo yakavakirwa pamvumo yeOAuth 2.0. Iyi chiyero chakaomesesa, asi inobatsira pakugadzira yekupedzisira-kusvika-kumagumo sevhisi yechokwadi. Muchinyorwa "Zvinyorwa zvemvumo: kuongororwa kweOAuth 2.0 tekinorojiΒ» isu Alexey Chernyaev takaedza kutaura nezve chiyero zviri nyore uye zvakajeka sezvinobvira kuitira kuti uchengetedze nguva pakudzidza.

Tracker inoita sei?

Iye zvino inenge yechipiri yebasa rakaremerwa. Iyo tracker inoita mabasa maviri:

  • Kune rimwe divi, basa rayo ndere kuratidza vashandi mukicheni kuti ndeapi maodha ari kuitika, ndeapi zvigadzirwa zvinoda kugadzirirwa ikozvino.
  • Kune rimwe divi, dhijita maitiro ese mukicheni.

Nhoroondo yeDodo IS Architecture: Iyo Back Office Path

Kana chigadzirwa chitsva (semuenzaniso, pizza) chikaonekwa muhurongwa, chinoenda ku "Rolling" tracker station. Pachiteshi ichi pane mugadziri wepizza anotora bhinzi rehukuru hunodiwa oriburitsa, obva atara pahwendefa retracker kuti apedza basa rake ndokupfuudza hwaro hwehupfu kune chiteshi chinotevera - "Kuzadza" .

Ikoko, mugadziri wepizza anotevera pamusoro pepizza, obva atara pahwendefa kuti apedza basa rake uye oisa pizza muchoto (ichi zvakare chiteshi chakasiyana chinoda kuiswa chiratidzo pahwendefa). Sistimu yakadaro yaivepo kubva pakutanga muDodo uye kubva pakutanga kweDodo IS. Iyo inokutendera kuti unyatso kuteedzera uye kudhijita mabasa ese. Uye zvakare, iyo tracker inopa zano magadzirirwo echimwe chigadzirwa, inoita mhando yega yega yechigadzirwa zvinoenderana neyayo yekugadzira zvirongwa, inochengeta yakakwana nguva yekubika yechigadzirwa, uye inoteedzera mashandiro ese pachigadzirwa.

Nhoroondo yeDodo IS Architecture: Iyo Back Office PathIzvi ndizvo zvakaita skrini yepiritsi paRaskatka tracker station.

Mitoro inobva kupi?

Imwe neimwe pizzeria ine mahwendefa mashanu ane tracker. Muna 2016 takava nepizzeria dzinopfuura zana (uye iko zvino dzava kupfuura mazana matanhatu). Imwe neimwe yemapiritsi inoita chikumbiro kubackend yega yega masekondi gumi uye inounganidza data kubva patafura yekurongeka (inongedzo nemutengi nekero), kurongeka kwehurongwa (chinongedzo nechigadzirwa uye chiratidzo chehuwandu), uye tafura yekukurudzira (inoteedzera. nguva yekumanikidza). Kana mugadziri wepizza akadzvanya pachigadzirwa pane tracker, marekodhi mumatafura ese aya anovandudzwa. Tafura yekurongeka ndeyese; panguva imwe chete ine zvinoiswa kana uchigamuchira odha, zvigadziriso kubva kune dzimwe nzvimbo dzehurongwa, uye kuverenga kwakawanda, semuenzaniso, paTV inorembera mupizzeria uye inoratidza maodha akagadzirira-akagadzirwa kune vatengi.

Munguva yekutambudzika nemitoro, apo zvese uye munhu wese zvakachengetwa uye zvichiendeswa kune asynchronous replica yedatabase, mashandiro aya ane tracker akaramba achienda kune master database. Hapafanirwe kunge paine lag pano, iyo data inofanirwa kunge iri-yezvino, kunze kwekuenderana hakugamuchirwe.

Zvakare, kushaikwa kwematafura edu nemaindex paari hakuna kutitendera kunyora mimwe mibvunzo yakanangana nekushandisa kwedu. Semuenzaniso, zvinogona kushanda kuti tracker iwane index yepizzeria patafura yeodha. Isu tinogara tichikwenya pizzeria maodha kubva kune tracker dhatabhesi. Panguva imwecheteyo, kubvuma kurongeka, hazvina kukosha zvakanyanya kuti pizzeria inowira mairi, chinonyanya kukosha ndechekuti ndeupi mutengi akagadzira iyi odha. Izvi zvinoreva kuti panofanirwa kuve neindex pane mutengi. Izvo hazvifanirwe zvakare kuti tracker ichengete id yerisiti yakadhindwa kana kukwidziridzwa kwebhonasi kwakabatana neodha mutafura yekurongeka. Yedu tracker sevhisi haifarire ruzivo urwu. Mune yakajairwa monolithic dhatabhesi, matafura anogona kungove kukanganisa pakati pevashandisi vese. Iri raive rimwe rematambudziko ekutanga.

WAS. Pakutanga, iyo architecture yaive seizvi:

Nhoroondo yeDodo IS Architecture: Iyo Back Office Path

Kunyangwe mushure mekuparadzaniswa kuita nzira dzakasiyana, mazhinji ekodhi base yakaramba yakajairika kune akasiyana masevhisi. Zvese zviri pasi pema controller zvaive zvakabatana uye zvaigara mune imwe repository. Nzira dzakajairwa dzemasevhisi, marepositori, uye dhatabhesi rakajairwa rine matafura akajairika zvakashandiswa.

Kuburutsa Tracker

Dambudziko guru ne tracker nderekuti iyo data inofanirwa kuwiriraniswa pakati peakasiyana dhatabhesi. Uyu zvakare mutsauko wayo mukuru kubva pakukamurwa kweAuth sevhisi; kurongeka uye chimiro chayo chinogona kuchinja uye chinofanira kuratidzwa mumasevhisi akasiyana.

Isu tinogashira maodha kuRestaurant Checkout (iri ibasa), inochengetwa mudhatabhesi mune "Yakagamuchirwa" chimiro. Mushure meizvozvo, inofanira kuenda kune tracker, iyo ichachinja mamiriro ayo kakawanda: kubva "Kitchen" kusvika "Packed". Muchiitiko ichi, zvimwe zvekunze zvinofurira kubva kuCashier kana iyo Shift Manager interface inogona kuitika nehurongwa. Ini ndichapa mastatus ekurongeka netsanangudzo dzawo patafura:

Nhoroondo yeDodo IS Architecture: Iyo Back Office Path
Iyo yekurongeka mamiriro ekuchinja scheme inoita seizvi:

Nhoroondo yeDodo IS Architecture: Iyo Back Office Path

Mamiriro anoshanduka pakati pehurongwa hwakasiyana. Uye pano iyo tracker haisi iyo yekupedzisira sisitimu iyo data yakavharwa. Isu takaona akati wandei maitiro ekuparadzanisa mune yakadai nyaya:

  1. Isu tinotarisisa zviito zvese zvekurongeka mune imwe sevhisi. Muchiitiko chedu, iyi sarudzo inoda basa rakawandisa kuti rigadzirise kurongeka. Dai takamira ipapo, tingadai takaguma nemonolith yechipiri. Tingadai tisina kugadzirisa matambudziko.
  2. Imwe system inodaidza imwe. Yechipiri sarudzo inonyanya kufadza. Asi nazvo, maketani ekufona anogoneka (cascading kukundikana), kubatanidzwa kwezvikamu kwakakwirira, uye zvakanyanya kuoma kutarisira.
  3. Isu tinoronga zviitiko, uye sevhisi yega yega inotsinhana neimwe kuburikidza nezviitiko izvi. Nekuda kweizvozvo, sarudzo yechitatu yakasarudzwa, maererano neayo ese masevhisi anotanga kuchinjanisa zviitiko kune mumwe nemumwe.

Idi kuti takasarudza sarudzo yechitatu yaireva kuti tracker ichava nedhatabhesi yayo, uye pakuchinja kwega kwega muhurongwa hwaizotumira chiitiko nezveizvi, kune mamwe masevhisi aizonyoresa uye ayo aizoverengerwa mune tenzi database. Kuti tiite izvi, taida imwe sevhisi yaizovimbisa kuendeswa kwemeseji pakati pemasevhisi.

Panguva iyoyo, takanga tatova neRabbitMQ mustack, saka sarudzo yekupedzisira yekuishandisa semeseji broker. Iyo dhizaini inoratidza shanduko yeodha kubva kuRestaurant Cashier kuburikidza neTracker, kwainoshandura chimiro chayo uye kuratidzwa kwayo pane iyo Maneja yeOdha interface. AKAVA:

Nhoroondo yeDodo IS Architecture: Iyo Back Office Path

Ronga nzira nhanho nhanho
Nzira yekurongeka inotanga pane imwe yemaodha sosi masevhisi. Heinoi Resitorendi Cashier:

  1. Iyo odha yakagadzirira zvakakwana paCheckout, uye yave nguva yekuitumira kune tracker. Chiitiko icho tracker yakanyoreswa inokandwa.
  2. Mucherechedzi, achibvuma kurongeka, anouchengeta mudhatabhesi yake, ichiita iyo "Order Inogamuchirwa neTracker" chiitiko uye kuitumira kuRMQ.
  3. Vabati vakati wandei vakatonyoresa kubhazi rechiitiko chetsika. Kwatiri, iyo inowirirana neye monolithic database yakakosha.
  4. Mubati anogamuchira chiitiko, anosarudza kubva kwairi iyo data yakakosha kwairi: mune yedu, iyi ndiyo mamiriro ekurongeka "Inogamuchirwa neTracker" uye inovandudza hurongwa hwayo hwekurongeka mudura guru.

Kana mumwe munhu achida odha yakananga kubva kune monolithic maodha tafura, saka vanogona kuiverenga kubva ipapo zvakare. Semuenzaniso, izvi ndizvo zvinodiwa neOrder interface muShift Manager inoda:

Nhoroondo yeDodo IS Architecture: Iyo Back Office Path

Mamwe ese masevhisi anogona zvakare kunyorera kuodha zviitiko kubva kune tracker kuti vazvishandise ivo pachavo.

Kana mushure meimwe nguva kurongeka kunotorwa mukugadzirwa, chimiro chayo chinotanga kuchinja mudhatabhesi yayo (Tracker dhatabhesi), uye ipapo chiitiko che "OrderInWork" chinobva chagadzirwa. Iyo inopindawo muRMQ, kubva kwainowiriraniswa mune monolithic dhatabhesi uye inounzwa kune mamwe masevhisi. Panogona kunge paine matambudziko akasiyana munzira iyi; zvimwe zvakawanda pamusoro pazvo zvinogona kuwanikwa mushumo waZhenya Peshkov nezve ruzivo rwekuita zveEventual Consistency muTracker.

Yekupedzisira architecture mushure mekuchinja muAuth uye Tracker

Nhoroondo yeDodo IS Architecture: Iyo Back Office Path

Kupfupikisa: Pakutanga, ndaive nepfungwa yekurongedza nhoroondo yemakore mapfumbamwe yeDodo IS system muchinyorwa chimwe. Ndaida kukurumidza uye kungotaura nezvematanho ekushanduka-shanduka. Zvisinei, ndagara pasi kuti ndidzidze mashoko acho, ndakaona kuti zvinhu zvose zvakaoma zvikuru uye zvinonakidza kupfuura zvinoita.

Ndichifunga nezve mabhenefiti (kana kushaikwa kwayo) kwezvinhu zvakadaro, ndakasvika kumhedziso yekuti kuenderera mberi hakugoneke pasina yakazara yakazara nhoroondo yezviitiko, zvakadzama retrospectives uye kuongororwa kwesarudzo dzekare.

Ndinovimba wakawana zvichibatsira uye zvinonakidza kudzidza nezverwendo rwedu. Iye zvino ndatarisana nesarudzo yechikamu chipi cheDodo IS system yekutsanangura munyaya inotevera: nyora mumashoko kana kuvhota.

Vashandisi vakanyoresa chete ndivo vanogona kutora chikamu muongororo. Nyorera mu, Munogamuchirwa.

Ndeipi chikamu cheDodo IS chaungada kudzidza nezvacho muchinyorwa chinotevera?

  • 24,1%Early monolith muDodo IS (2011-2015)14

  • 24,1%Matambudziko ekutanga uye mhinduro dzawo (2015-2016)14

  • 20,7%Nzira yemutengi chikamu: facade pamusoro pechigadziko (2016-2017)12

  • 36,2%Nhoroondo yechokwadi microservices (2018-2019)21

  • 44,8%Yakapedzwa kucheka kwemonolith uye kugadzikana kweiyo architecture26

  • 29,3%Nezve zvimwe zvirongwa zvekuvandudza system17

  • 19,0%Ini handidi kuziva chero chinhu nezveDodo IS11

58 vashandisi vakavhota. 6 vashandisi vakaramba.

Source: www.habr.com

Voeg