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.
Serje ta' artikli "X'inhu Dodo IS?" tgħid dwar:
Monolitu bikri f'Dodo IS (2011-2015). (Fil-progress...)
Il-mogħdija tal-back office: bażijiet separati u xarabank. (Int qiegħed hawn)
Il-mogħdija tal-ġenb tal-klijent: faċċata fuq il-bażi (2016-2017). (Fil-progress...)
L-istorja tal-mikroservizzi veri. (2018-2019). (Fil-progress...)
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.
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:
Sal-2020, sar ftit aktar ikkumplikat u sar hekk:
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:
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.
Hawn huma l-blokki ewlenin tal-monolitu Dodo IS 2016, u eżatt taħt hemm traskrizzjoni tal-kompiti ewlenin tagħhom.
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:
Awt. 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.
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.
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:
Nixtieq nispjega ftit kif ħadmet:
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.
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.
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.
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:
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:
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.
Ħ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.
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:
Arkitettura ġenerali wara l-estrazzjoni tas-servizz Awth and Devices:
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.
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.
Hekk 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:
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:
L-iskema għall-bdil tal-istatus tal-ordni tidher bħal din:
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:
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.
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.
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:
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:
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.
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.
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.
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:
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
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