Storja ta 'l-Arkitettura Dodo IS: Il-Path Office Back

Habr qed ibiddel id-dinja. Ilna aktar minn sena nibbloggjaw. Madwar sitt xhur ilu, irċevejna feedback kompletament loġiku mingħand Khabrovites: “Dodo, tgħid kullimkien li għandek is-sistema tiegħek. U x'inhi din is-sistema? U għaliex katina tal-pizza teħtieġha?

Poġġejna, ħsibna u rrealizzajna li għandek raġun. Nippruvaw nispjegaw kollox fuq subgħajna, iżda joħroġ f'biċċiet imqattgħin u mkien ma hemm deskrizzjoni sħiħa tas-sistema. B’hekk beda vjaġġ twil ta’ ġbir ta’ informazzjoni, tfittxija għall-awturi u kitba ta’ sensiela ta’ artikli dwar Dodo IS. Tlaqna!

Rikonoxximenti: Grazzi talli qsamtna l-feedback tiegħek. Grazzi lilu, fl-aħħar iddeskrivejna s-sistema, ikkumpilajna radar tekniku u dalwaqt se toħroġ deskrizzjoni kbira tal-proċessi tagħna. Mingħajrkom, inkunu noqogħdu hemm 5 snin oħra.

Storja ta 'l-Arkitettura Dodo IS: Il-Path Office Back

Serje ta' artikli "X'inhu Dodo IS?" tgħid dwar:

  1. Monolitu bikri f'Dodo IS (2011-2015). (Fil-progress...)
  2. Il-mogħdija tal-back office: bażijiet separati u xarabank. (Int qiegħed hawn)
  3. Il-mogħdija tal-ġenb tal-klijent: faċċata fuq il-bażi (2016-2017). (Fil-progress...)
  4. L-istorja tal-mikroservizzi veri. (2018-2019). (Fil-progress...)
  5. Serrar lest tal-monolith u stabbilizzazzjoni tal-arkitettura. (Fil-progress...)

Jekk inti interessat li tkun taf xi ħaġa oħra - ikteb fil-kummenti.

Opinjoni dwar id-deskrizzjoni kronoloġika mill-awtur
B'mod regolari nagħmel laqgħa għal impjegati ġodda dwar is-suġġett "Arkitettura tas-Sistema". Aħna nsejħulha "Intro to Dodo IS Architecture" u hija parti mill-proċess ta 'onboarding għal żviluppaturi ġodda. Ngħid f'forma jew oħra dwar l-arkitettura tagħna, dwar il-karatteristiċi tagħha, twelidt ċertu approċċ storiku għad-deskrizzjoni.

Tradizzjonalment, inħarsu lejn is-sistema bħala sett ta 'komponenti (tekniċi jew ta' livell ogħla), moduli tan-negozju li jinteraġixxu ma 'xulxin biex jiksbu xi għan. U jekk tali fehma hija ġġustifikata għad-disinn, allura mhix pjuttost adattata għad-deskrizzjoni u l-fehim. Hemm diversi raġunijiet hawn:

  • Ir-realtà hija differenti minn dak li hemm fuq il-karta. Mhux kollox jaħdem kif maħsub. U aħna interessati kif fil-fatt irriżulta u jaħdem.
  • Preżentazzjoni konsistenti ta' informazzjoni. Fil-fatt, tista 'tmur kronoloġikament mill-bidu għall-istat attwali.
  • Minn sempliċi għal kumpless. Mhux universalment, iżda fil-każ tagħna huwa. L-arkitettura mxiet minn approċċi aktar sempliċi għal oħrajn aktar kumplessi. Ħafna drabi permezz ta 'kumplikazzjoni, ġew solvuti problemi ta' veloċità ta 'implimentazzjoni u stabbiltà, kif ukoll għexieren ta' proprjetajiet oħra mil-lista ta 'rekwiżiti mhux funzjonali (hawn mgħarrfa sew dwar kumplessità kuntrastanti ma’ rekwiżiti oħra).

Fl-2011, l-arkitettura Dodo IS dehret hekk:

Storja ta 'l-Arkitettura Dodo IS: Il-Path Office Back

Sal-2020, sar ftit aktar ikkumplikat u sar hekk:

Storja ta 'l-Arkitettura Dodo IS: Il-Path Office Back

Kif seħħet din l-evoluzzjoni? Għaliex huma meħtieġa partijiet differenti tas-sistema? Liema deċiżjonijiet arkitettoniċi ttieħdu u għaliex? Ejja nsiru nafu f'din is-sensiela ta' artikli.

L-ewwel problemi tal-2016: għaliex is-servizzi għandhom iħallu l-monolith

L-ewwel artikoli miċ-ċiklu se jkunu dwar is-servizzi li kienu l-ewwel li sseparaw mill-monolith. Biex inpoġġik f'kuntest, ngħidilkom x'problemi kellna fis-sistema sal-bidu tal-2016, li kellna nittrattaw is-separazzjoni tas-servizzi.

Database MySql waħda, li fiha l-applikazzjonijiet kollha li kienu jeżistu dak iż-żmien f'Dodo IS kitbu r-rekords tagħhom. Il-konsegwenzi kienu:

  • Tagħbija tqila (b'85% tat-talbiet ammontaw għall-qari).
  • Il-bażi kibret. Minħabba dan, l-ispiża u l-appoġġ tagħha saru problema.
  • Punt uniku ta' falliment. Jekk applikazzjoni waħda li tikteb fid-database f'daqqa bdiet tagħmel dan b'mod aktar attiv, allura applikazzjonijiet oħra ħassewha fuqhom infushom.
  • Ineffiċjenza fil-ħażna u mistoqsijiet. Ħafna drabi d-dejta kienet maħżuna f'xi struttura li kienet konvenjenti għal xi xenarji iżda mhux adattata għal oħrajn. L-indiċijiet iħaffu xi operazzjonijiet, iżda jistgħu jnaqqsu oħrajn.
  • Xi wħud mill-problemi tneħħew minn caches magħmula bil-għaġla u repliki tal-qari għall-bażijiet (dan se jkun artiklu separat), iżda ħallewhom biss jiksbu ħin u ma solvewx il-problema b'mod fundamentali.

Il-problema kienet il-preżenza tal-monolith innifsu. Il-konsegwenzi kienu:

  • Ħruġ uniku u rari.
  • Diffikultà fl-iżvilupp konġunt ta 'numru kbir ta' nies.
  • Inabbiltà li jdaħħlu teknoloġiji ġodda, oqfsa u libreriji ġodda.

Problemi bil-bażi u l-monolith ġew deskritti ħafna drabi, pereżempju, fil-kuntest ta 'ħabtiet kmieni fl-2018 (Kun bħal Munch, jew ftit kliem dwar dejn tekniku, Il-jum li Dodo IS waqaf. Skript Asinkroniku и L-istorja tal-għasfur Dodo mill-familja Phoenix. Il-Waqgħa l-Kbira ta’ Dodo IS), għalhekk mhux se nitkellem wisq. Ħa ngħid biss li ridna nagħtu aktar flessibilità meta niżviluppaw is-servizzi. L-ewwelnett, dan kien jikkonċerna lil dawk li kienu l-aktar mgħobbija u għerq fis-sistema kollha - Auth and Tracker.

Il-Passaġġ tal-Back Office: Bażijiet Separati u Xarabank

Navigazzjoni tal-Kapitolu

  1. Skema monolitika 2016
  2. Bidu biex Ħatt il-Monolith: Separazzjoni Awth u Tracker
  3. X'tagħmel Auth?
  4. Minn fejn huma t-tagħbijiet?
  5. Ħatt Awt
  6. X'jagħmel Tracker?
  7. Minn fejn huma t-tagħbijiet?
  8. Ħatt Tracker

Skema monolitika 2016

Hawn huma l-blokki ewlenin tal-monolitu Dodo IS 2016, u eżatt taħt hemm traskrizzjoni tal-kompiti ewlenin tagħhom.
Storja ta 'l-Arkitettura Dodo IS: Il-Path Office Back
Kaxxier Kunsinna. Kontabilità għal kurrieri, ħruġ ta' ordnijiet lil kurrieri.
Ikkuntattja ċentru. Aċċettazzjoni ta' ordnijiet permezz tal-operatur.
Sit. Il-websajts tagħna (dodopizza.ru, dodopizza.co.uk, dodopizza.by, eċċ.).
Auth. Servizz ta’ awtorizzazzjoni u awtentikazzjoni għall-back office.
tracker. Ordni tracker fil-kċina. Servizz għall-immarkar ta' status ta' prontezza meta tiġi ppreparata ordni.
Cash desk tar-Restaurant. Teħid ta' ordnijiet f'ristorant, interfaces tal-kaxxier.
Esportazzjoni. Tlugħ ta' rapporti f'1C għall-kontabilità.
Notifiki u fatturi. Kmandi bil-vuċi fil-kċina (pereżempju, "Waslet pizza ġdida") + stampar ta' fatturi għall-kurrieri.
Shift Manager. Interfaces għax-xogħol tal-maniġer tax-xift: lista ta 'ordnijiet, graffs tal-prestazzjoni, trasferiment ta' impjegati għax-xift.
Maniġer tal-Uffiċċju. Interfaces għax-xogħol tal-konċessjonarju u l-maniġer: akkoljenza tal-impjegati, rapporti dwar ix-xogħol tal-pizzeria.
Scoreboard tar-ristoranti. Wiri tal-menu fuq it-televiżjonijiet fil-pizzerijas.
admin. Settings fi pizzerija speċifika: menu, prezzijiet, kontabbiltà, kodiċijiet promozzjonali, promozzjonijiet, banners tal-websajt, eċċ.
Kont Personali tal-Impjegat. Skedi tax-xogħol tal-impjegati, informazzjoni dwar l-impjegati.
Bord tal-Motivazzjoni tal-Kċina. Skrin separat li jiddendel fil-kċina u juri l-veloċità ta 'dawk li jfasslu l-pizza.
Komunikazzjoni. Tibgħat sms u email.
FileStorage. Servizz proprju biex tirċievi u toħroġ fajls statiċi.

L-ewwel tentattivi biex insolvu l-problemi għenuna, iżda kienu biss serħan temporanju. Ma sarux soluzzjonijiet tas-sistema, għalhekk kien ċar li kellha ssir xi ħaġa bil-bażijiet. Pereżempju, biex taqsam id-database ġenerali f'diversi oħrajn aktar speċjalizzati.

Bidu biex Ħatt il-Monolith: Separazzjoni Awth u Tracker

Is-servizzi ewlenin li mbagħad irreġistraw u jaqraw mid-database aktar minn oħrajn:

  1. Awt. Servizz ta’ awtorizzazzjoni u awtentikazzjoni għall-back office.
  2. Tracker. Ordni tracker fil-kċina. Servizz għall-immarkar ta' status ta' prontezza meta tiġi ppreparata ordni.

X'tagħmel Auth?

Awth huwa servizz li permezz tiegħu l-utenti jidħlu fil-back office (hemm daħla indipendenti separata fuq in-naħa tal-klijent). Huwa wkoll mitlub fit-talba biex jiġi żgurat li d-drittijiet ta' aċċess meħtieġa jkunu preżenti u li dawn id-drittijiet ma nbidlux mill-aħħar login. Permezz tagħha, apparat jidħol fil-pizzeria.

Pereżempju, irridu niftħu wirja bl-istatus ta 'ordnijiet lesti fuq it-TV mdendlin fis-sala. Imbagħad niftħu auth.dodopizza.ru, agħżel "Iilloggja bħala mezz", jidher kodiċi li jista 'jiddaħħal f'paġna speċjali fuq il-kompjuter tal-maniġer tax-xift, li jindika t-tip ta' apparat (apparat). It-TV innifsu se jaqleb għall-interface mixtieqa tal-pizzeria tiegħu u jibda juri l-ismijiet tal-klijenti li l-ordnijiet tagħhom huma lesti hemmhekk.

Storja ta 'l-Arkitettura Dodo IS: Il-Path Office Back

Minn fejn huma t-tagħbijiet?

Kull utent illoggjat tal-back office imur fid-database, fit-tabella tal-utent għal kull talba, jiġbed l-utent permezz ta 'mistoqsija sql u jiċċekkja jekk għandux l-aċċess u d-drittijiet meħtieġa għal din il-paġna.

Kull wieħed mill-apparati jagħmel l-istess biss mat-tabella tal-apparat, u jiċċekkja r-rwol tiegħu u l-aċċess tiegħu. Numru kbir ta' talbiet lill-bażi tad-dejta prinċipali jwasslu għat-tagħbija tagħha u l-ħela ta' riżorsi tad-dejtabejż komuni għal dawn l-operazzjonijiet.

Ħatt Awt

Auth għandha dominju iżolat, jiġifieri, data dwar utenti, logins jew apparat tidħol fis-servizz (għalissa) u tibqa' hemm. Jekk xi ħadd ikollu bżonnhom, allura jmur f'dan is-servizz għad-dejta.

KIENET. L-iskema tax-xogħol oriġinali kienet kif ġej:

Storja ta 'l-Arkitettura Dodo IS: Il-Path Office Back

Nixtieq nispjega ftit kif ħadmet:

  1. Talba minn barra tasal għall-backend (hemm Asp.Net MVC), ġġib magħha cookie tas-sessjoni, li tintuża biex tikseb data tas-sessjoni minn Redis(1). Hija jew fiha informazzjoni dwar l-aċċessi, u mbagħad l-aċċess għall-kontrollur ikun miftuħ (3,4), jew le.
  2. Jekk ma jkunx hemm aċċess, trid tgħaddi mill-proċedura ta' awtorizzazzjoni. Hawnhekk, għas-sempliċità, hija murija bħala parti mill-mogħdija fl-istess attribut, għalkemm hija tranżizzjoni għall-paġna tal-login. Fil-każ ta 'xenarju pożittiv, aħna se tikseb sessjoni mimlija b'mod korrett u mmorru għall-Kontrollur tal-Backoffice.
  3. Jekk ikun hemm dejta, allura trid tiċċekkjaha għar-rilevanza fil-bażi tal-utenti. Inbidel ir-rwol tiegħu, m'għandux jitħalla fil-paġna issa? F'dan il-każ, wara li tirċievi s-sessjoni (1), trid tmur direttament fid-database u tiċċekkja l-aċċess tal-utent billi tuża s-saff tal-loġika tal-awtentikazzjoni (2). Sussegwentement, jew għall-paġna tal-login, jew mur fil-kontrollur. Sistema sempliċi bħal din, iżda mhux pjuttost standard.
  4. Jekk il-proċeduri kollha jgħaddu, allura naqbżu aktar fil-loġika fil-kontrolluri u l-metodi.

Id-dejta tal-utent hija separata mid-dejta l-oħra kollha, hija maħżuna f'tabella ta 'sħubija separata, funzjonijiet mis-saff loġiku AuthService jistgħu jsiru metodi api. Il-konfini tad-dominju huma definiti b'mod pjuttost ċar: l-utenti, ir-rwoli tagħhom, id-dejta tal-aċċess, l-għoti u r-revoka tal-aċċess. Kollox jidher sabiex ikun jista' jittieħed f'servizz separat.

ISIR. Allura għamlu:

Storja ta 'l-Arkitettura Dodo IS: Il-Path Office Back

Dan l-approċċ għandu għadd ta' problemi. Pereżempju, is-sejħa ta' metodu ġewwa proċess mhijiex l-istess bħal sejħa ta' servizz estern permezz ta' http. Latency, affidabbiltà, manutenzjoni, trasparenza tal-operazzjoni huma kompletament differenti. Andrey Morevskiy tkellem f'aktar dettall dwar problemi bħal dawn fir-rapport tiegħu. "50 Sfumatura ta' Mikroservizzi".

Is-servizz tal-awtentikazzjoni u, miegħu, is-servizz tal-apparat jintużaw għall-back office, jiġifieri, għas-servizzi u l-interfaces użati fil-produzzjoni. L-awtentikazzjoni għas-servizzi tal-klijenti (bħal websajt jew applikazzjoni mobbli) isseħħ separatament mingħajr l-użu tal-Awtentikazzjoni. Is-separazzjoni ħadet madwar sena, u issa qed nerġgħu nittrattaw dan is-suġġett, billi nitrasferixxu s-sistema għal servizzi ġodda ta 'awtentikazzjoni (bi protokolli standard).

Għaliex is-separazzjoni damet daqshekk?
Kien hemm ħafna problemi tul it-triq li naqqsuna r-ritmu:

  1. Ridna nċaqalqu d-dejta tal-utent, tal-apparat, u tal-awtentikazzjoni minn databases speċifiċi għall-pajjiż f'waħda. Biex nagħmlu dan, kellna nittraduċu t-tabelli u l-użu kollha mill-identifikatur int għall-identifikatur globali UUId (dan il-kodiċi nħadem mill-ġdid dan l-aħħar Roman Bukin "Uuid - storja kbira ta 'struttura żgħira" u proġett open source Primittivi). Il-ħażna tad-dejta tal-utent (peress li hija informazzjoni personali) għandha l-limitazzjonijiet tagħha u għal xi pajjiżi huwa meħtieġ li tinħażen separatament. Iżda l-id globali tal-utent għandu jkun.
  2. Ħafna tabelli fid-database għandhom informazzjoni tal-verifika dwar l-utent li wettaq l-operazzjoni. Dan kien jeħtieġ mekkaniżmu addizzjonali għall-konsistenza.
  3. Wara l-ħolqien ta 'servizzi api, kien hemm perjodu twil u gradwali ta' tranżizzjoni għal sistema oħra. Il-bdil kellu jkun bla xkiel għall-utenti u kien jeħtieġ xogħol manwali.

Skema ta' reġistrazzjoni tal-apparat f'pizzerija:

Storja ta 'l-Arkitettura Dodo IS: Il-Path Office Back

Arkitettura ġenerali wara l-estrazzjoni tas-servizz Awth and Devices:

Storja ta 'l-Arkitettura Dodo IS: Il-Path Office Back

Innota. Għall-2020, qed naħdmu fuq verżjoni ġdida ta 'Auth, li hija bbażata fuq l-istandard ta' awtorizzazzjoni OAuth 2.0. Dan l-istandard huwa pjuttost kumpless, iżda huwa utli għall-iżvilupp ta 'servizz ta' awtentikazzjoni pass-through. Fl-artiklu "Irqaq tal-awtorizzazzjoni: ħarsa ġenerali lejn it-teknoloġija OAuth 2.0» aħna Alexey Chernyaev ippruvajna ngħidu dwar l-istandard bl-aktar mod sempliċi u ċar possibbli sabiex tiffranka l-ħin biex tistudjah.

X'jagħmel Tracker?

Issa dwar it-tieni tas-servizzi mgħobbija. It-tracker għandu rwol doppju:

  • Min-naħa waħda, il-kompitu tagħha huwa li turi lill-impjegati fil-kċina liema ordnijiet qegħdin jaħdmu bħalissa, liema prodotti jeħtieġ li jiġu msajra issa.
  • Min-naħa l-oħra, biex jiġu diġitalizzati l-proċessi kollha fil-kċina.

Storja ta 'l-Arkitettura Dodo IS: Il-Path Office Back

Meta prodott ġdid jidher f'ordni (per eżempju, pizza), imur fl-istazzjon tat-tracker Rolling out. F'dan l-istazzjon, hemm produttur tal-pizza li jieħu bun tad-daqs meħtieġ u jirromblah, u wara jinnota fuq il-pillola tat-tracker li lesta l-kompitu tiegħu u jittrasferixxi l-bażi tal-għaġina rrumblata għall-istazzjon li jmiss - "Inizjazzjoni" .

Hemmhekk, il-pizza li jmiss jimla l-pizza, imbagħad jinnota fuq il-pillola li lesta l-kompitu tiegħu u jpoġġi l-pizza fil-forn (dan huwa wkoll stazzjon separat li għandu jiġi nnutat fuq il-pillola). Sistema bħal din kienet mill-bidu nett f'Dodo u mill-bidu nett tal-eżistenza ta 'Dodo IS. Jippermettilek issegwi u tiddiġitalizza bis-sħiħ it-tranżazzjonijiet kollha. Barra minn hekk, it-tracker jissuġġerixxi kif issajjar prodott partikolari, jiggwida kull tip ta 'prodott skont l-iskemi ta' manifattura tiegħu, jaħżen l-aħjar ħin tat-tisjir għall-prodott, u jsegwi l-operazzjonijiet kollha fuq il-prodott.

Storja ta 'l-Arkitettura Dodo IS: Il-Path Office BackHekk tidher l-iskrin tat-tablet fl-istazzjon tat-tracker "Raskatka"

Minn fejn huma t-tagħbijiet?

Kull waħda mill-pizzerijas għandha madwar ħames pilloli bi tracker. Fl-2016, kellna aktar minn 100 pizzerija (u issa aktar minn 600). Kull waħda mill-pilloli tagħmel talba lill-backend darba kull 10 sekondi u tobrox data mit-tabella tal-ordni (konnessjoni mal-klijent u l-indirizz), kompożizzjoni tal-ordni (konnessjoni mal-prodott u indikazzjoni tal-kwantità), it-tabella tal-kontabilità tal-motivazzjoni (il- il-ħin tal-ippressar huwa ssorveljat fih). Meta produttur tal-pizza jikklikkja fuq prodott fuq it-tracker, l-entrati f'dawn it-tabelli kollha jiġu aġġornati. It-tabella tal-ordnijiet hija ġenerali, fiha wkoll inserzjonijiet meta taċċetta ordni, aġġornamenti minn partijiet oħra tas-sistema u qari numerużi, pereżempju, fuq TV li jiddendel f'pizzeria u juri ordnijiet lesti lill-klijenti.

Matul il-perjodu ta 'ġlieda ma' tagħbijiet, meta kollox u kollox kien cached u trasferit għar-replika asinkronika tal-bażi, dawn l-operazzjonijiet bit-tracker komplew imorru għall-bażi kaptan. M'għandux ikun hemm dewmien, id-dejta għandha tkun aġġornata, mhux sinkronizzata hija inaċċettabbli.

Barra minn hekk, in-nuqqas ta 'tabelli u indiċi proprji fuqhom ma ppermettietx il-kitba ta' mistoqsijiet aktar speċifiċi mfassla għall-użu tagħhom. Per eżempju, jista 'jkun effiċjenti għal tracker li jkollu indiċi għal pizzeria fuq tabella ta' ordni. Aħna dejjem inneħħu l-ordnijiet tal-pizzerija mid-database tat-tracker. Fl-istess ħin, biex tirċievi ordni, mhux daqshekk importanti f'liema pizzeria taqa', huwa aktar importanti liema klijent għamel din l-ordni. U jfisser hemm l-indiċi fuq il-klijent huwa meħtieġ. Mhux meħtieġ ukoll li t-tracker jaħżen l-id tal-irċevuta stampata jew promozzjonijiet tal-bonus assoċjati mal-ordni fit-tabella tal-ordnijiet. Din l-informazzjoni mhix ta’ interess għas-servizz tat-tracker tagħna. F'database monolitika komuni, it-tabelli jistgħu jkunu biss kompromess bejn l-utenti kollha. Din kienet waħda mill-problemi oriġinali.

KIENET. L-arkitettura oriġinali kienet:

Storja ta 'l-Arkitettura Dodo IS: Il-Path Office Back

Anke wara li ġew separati fi proċessi separati, il-biċċa l-kbira tal-bażi tal-kodiċi baqgħet komuni għal servizzi differenti. Kollox taħt il-kontrolluri kien wieħed u għex fl-istess repożitorju. Aħna użajna metodi komuni ta 'servizzi, repożitorji, bażi komuni, li fihom jinsabu tabelli komuni.

Ħatt Tracker

Il-problema ewlenija bit-tracker hija li d-dejta trid tkun sinkronizzata bejn databases differenti. Din hija wkoll id-differenza ewlenija tagħha mis-separazzjoni tas-servizz Awth, l-ordni u l-istatus tagħha jistgħu jinbidlu u għandhom jintwerew f'servizzi differenti.

Aħna naċċettaw ordni fil-Checkout tar-Restaurant (dan huwa servizz), hija maħżuna fid-database fl-istatus "Aċċettat". Wara dan, għandu jasal għat-tracker, fejn se jibdel l-istatus tiegħu diversi drabi oħra: minn "Kċina" għal "Ippakkjat". Fl-istess ħin, xi influwenzi esterni mill-Kaxxier jew l-interface Shift Manager jistgħu jseħħu mal-ordni. Se nagħti l-istatus tal-ordni bid-deskrizzjoni tagħhom fit-tabella:

Storja ta 'l-Arkitettura Dodo IS: Il-Path Office Back
L-iskema għall-bdil tal-istatus tal-ordni tidher bħal din:

Storja ta 'l-Arkitettura Dodo IS: Il-Path Office Back

L-istatus jinbidlu bejn sistemi differenti. U hawn it-tracker mhuwiex sistema finali li fiha d-data hija magħluqa. Rajna diversi approċċi possibbli għall-qsim f'każ bħal dan:

  1. Aħna nikkonċentraw l-azzjonijiet kollha tal-ordni f'servizz wieħed. Fil-każ tagħna, din l-għażla teħtieġ wisq servizz biex taħdem ma 'l-ordni. Kieku nieqfu fiha, inġibu t-tieni monolitu. Aħna ma nsolvux il-problema.
  2. Sistema waħda tagħmel sejħa lil oħra. It-tieni għażla hija diġà aktar interessanti. Iżda magħha, ktajjen ta 'sejħiet huma possibbli (fallimenti cascading), il-konnettività tal-komponenti hija ogħla, huwa aktar diffiċli biex timmaniġġjaha.
  3. Aħna norganizzaw avvenimenti, u kull servizz jikkomunika ma 'ieħor permezz ta' dawn l-avvenimenti. Bħala riżultat, kienet it-tielet għażla li ntgħażlet, li skontha s-servizzi kollha jibdew jiskambjaw avvenimenti bejniethom.

Il-fatt li għażilna t-tielet għażla kien ifisser li t-tracker ikollu d-database tiegħu stess, u għal kull bidla fl-ordni, kien jibgħat avveniment dwar dan, li għalih abbonaw servizzi oħra u li jaqa’ wkoll fid-database prinċipali. Biex nagħmlu dan, kellna bżonn xi servizz li jiżgura t-twassil tal-messaġġi bejn is-servizzi.

Sa dak iż-żmien, diġà kellna RabbitMQ fil-munzell, għalhekk id-deċiżjoni finali li tużah bħala sensar tal-messaġġi. Id-dijagramma turi t-tranżizzjoni ta 'ordni mill-Kaxxier tar-Restaurant permezz tat-Tracker, fejn tibdel l-istatus tagħha u l-wiri tagħha fuq l-interface tal-Ordnijiet tal-Maniġer. ISIR:

Storja ta 'l-Arkitettura Dodo IS: Il-Path Office Back

Mogħdija tal-ordni pass pass
Il-mogħdija tal-ordni tibda f'wieħed mis-servizzi tas-sors tal-ordni. Hawn il-Kaxxier tar-Restorant:

  1. Fil-checkout, l-ordni hija kompletament lesta, u wasal iż-żmien li tibgħatha lill-tracker. L-avveniment li għalih huwa sottoskritt it-tracker jintrema.
  2. It-tracker, li jaċċetta ordni għalih innifsu, isalvaha fid-database tiegħu stess, jagħmel l-avveniment "Ordni Aċċettata mill-Tracker" u jibgħatha lill-RMQ.
  3. Hemm diversi handlers diġà abbonati għall-bus event għal kull ordni. Għalina, dik li tagħmel is-sinkronizzazzjoni ma 'bażi ​​monolitika hija importanti.
  4. L-immaniġġjar jirċievi avveniment, jagħżel minnu data li hija sinifikanti għaliha: fil-każ tagħna, dan huwa l-istatus tal-ordni "Aċċettat mill-Tracker" u jaġġorna l-entità tal-ordni tiegħu fid-database prinċipali.

Jekk xi ħadd jeħtieġ ordni mill-ordnijiet tal-mejda monolitika, allura tista 'taqrah minn hemm ukoll. Pereżempju, l-interface tal-Ordnijiet fis-Shift Manager jeħtieġ dan:

Storja ta 'l-Arkitettura Dodo IS: Il-Path Office Back

Is-servizzi l-oħra kollha jistgħu wkoll jissottoskrivu biex jordnaw avvenimenti mit-tracker biex jużawhom għalihom infushom.

Jekk wara xi żmien l-ordni tidħol fis-xogħol, allura l-istatus tagħha l-ewwel jinbidel fid-database tagħha (database Tracker), u mbagħad l-avveniment "OrderIn Progress" jiġi ġġenerat immedjatament. Jidħol ukoll fl-RMQ, minn fejn jiġi sinkronizzat f’database monolitika u jitwassal lil servizzi oħra. Jista 'jkun hemm diversi problemi tul it-triq, aktar dettalji dwarhom jistgħu jinstabu fir-rapport ta' Zhenya Peshkov dwar id-dettalji tal-implimentazzjoni tal-Konsistenza Eventwali fit-Tracker.

Arkitettura finali wara bidliet fl-Auth u Tracker

Storja ta 'l-Arkitettura Dodo IS: Il-Path Office Back

Fil-qosor ir-riżultat intermedju: Inizjalment, kelli l-idea li nippakkja l-istorja ta 'disa' snin tas-sistema Dodo IS f'artikolu wieħed. Ridt malajr u sempliċiment nitkellem dwar l-istadji tal-evoluzzjoni. Madankollu, bilqiegħda għall-materjal, indunajt li kollox huwa ħafna aktar ikkumplikat u interessanti milli jidher.

Filwaqt li nirrifletti fuq il-benefiċċji (jew in-nuqqas tagħhom) ta 'materjal bħal dan, wasalt għall-konklużjoni li l-iżvilupp kontinwu huwa impossibbli mingħajr annali sħaħ ta' avvenimenti, retrospettivi dettaljati u analiżi tad-deċiżjonijiet tal-passat tiegħi.

Nittama li kien utli u interessanti għalik li titgħallem dwar it-triq tagħna. Issa qed niffaċċja għażla liema parti tas-sistema Dodo IS niddeskrivi fl-artiklu li jmiss: ikteb fil-kummenti jew ivvota.

Utenti reġistrati biss jistgħu jipparteċipaw fl-istħarriġ. Idħol, ta 'xejn.

Liema parti ta’ Dodo IS tixtieq tkun taf dwarha fl-artiklu li jmiss?

  • 24,1%Monolitu bikri f'Dodo IS (2011-2015)14

  • 24,1%L-ewwel problemi u s-soluzzjonijiet tagħhom (2015-2016)14

  • 20,7%Il-mogħdija tan-naħa tal-klijent: faċċata fuq il-bażi (2016-2017)12

  • 36,2%L-istorja tal-mikroservizzi reali (2018-2019)21

  • 44,8%Sserrar lest tal-monolith u stabbilizzazzjoni tal-arkitettura26

  • 29,3%Dwar aktar pjanijiet għall-iżvilupp tas-sistema17

  • 19,0%Ma rrid inkun naf xejn dwar Dodo IS11

Ivvutaw 58 utent. 6 utenti astjenew.

Sors: www.habr.com

Żid kumment