Imbali yeDodo IS Architecture: IMonolith yamandulo

Okanye yonke inkampani engonwabanga ene-monolith ayonwabanga ngendlela yayo.

Ukuphuhliswa kwenkqubo yeDodo IS kwaqala ngokukhawuleza, njengeshishini leDodo Pizza, kwi-2011. Yayisekwe kumbono wokugqibezela kunye nokufakwa kwedijithali ngokupheleleyo kweenkqubo zoshishino, kunye ngokwabo, okwathi kwangonyaka ka-2011 kwabangela imibuzo emininzi nokuthandabuza. Kodwa iminyaka eyi-9 ngoku silandela le ndlela - ngophuhliso lwethu, olwaqala nge-monolith.

Eli nqaku "yimpendulo" kwimibuzo "Kutheni uphinda ubhale uyilo kwaye wenze utshintsho olukhulu kunye nexesha elide?" ubuyele kwinqaku elidlulileyo "Imbali yeDodo IS Architecture: Indlela yeOfisi yangasemva". Ndiza kuqala malunga nendlela uphuhliso lweDodo IS lwaqala ngayo, indlela ulwakhiwo lwangaphambili olubukeka ngayo, indlela iimodyuli ezintsha ezivele ngayo, kwaye ngenxa yeziphi iingxaki kufuneka zenziwe utshintsho olukhulu.

Imbali yeDodo IS Architecture: IMonolith yamandulo

Uthotho lwamanqaku "Yintoni iDodo IS?" ubalisa nge:

  1. I-monolith yokuqala eDodo IS (2011-2015). (ulapha)

  2. Indlela yeOfisi yangasemva: Iziseko ezahlukeneyo kunye nebhasi.

  3. Indlela yecala lomxhasi: i-facade phezu kwesiseko (2016-2017). (Iyaqhubeka...)

  4. Imbali yee-microservices zangempela. (2018-2019). (Iyaqhubeka...)

  5. Ukugqitywa kwe-sawing ye-monolith kunye nokuzinzisa kwezakhiwo. (Iyaqhubeka...)

Uyilo lokuqala

Kwi-2011, i-architecture ye-Dodo IS ibonakala ngolu hlobo:

Imbali yeDodo IS Architecture: IMonolith yamandulo

Imodyuli yokuqala kuyilo lolwamkelo lomyalelo. Inkqubo yeshishini yaba:

  • umxhasi ubiza i-pizzeria;

  • umphathi uthatha ifowuni;

  • yamkela iodolo ngefowuni;

  • igcwalisa ngokuhambelanayo kwi-interface yokwamkelwa komyalelo: ulwazi malunga nomxhasi, idatha malunga neenkcukacha zomyalelo, idilesi yokuhambisa ithathelwa ingqalelo. 

Ujongano lwenkqubo yolwazi lujonge ngolu hlobo...

Inguqulelo yokuqala ukususela ngo-Oktobha 2011:

Iphuculwe kancinci ngoJanuwari 2012

Dodo Pizza Information System Ukunikezelwa Indawo yokutyela yePizza

Izibonelelo zophuhliso lwemodyuli yokuthatha iodolo yokuqala zazinyiniwe. Kwafuneka senze okuninzi, ngokukhawuleza kunye neqela elincinci. Iqela elincinci ngabaphuhlisi be-2 abaye babeka isiseko senkqubo yonke yexesha elizayo.

Isigqibo sabo sokuqala simisele ikamva lesitaki setekhnoloji:

  • Umva kwi ASP.NET MVC, C# ulwimi. Abaphuhlisi babeyi-dotnetchiki, esi sitaki sasiqhelekile kwaye simnandi kubo.

  • Umphambili weBootstrap kunye neJQuery: ujongano lomsebenzisi kwizitayile ezizibhaleleyo kunye nezikripti. 

  • I-database ye-MySQL: akukho zindleko zelayisensi, kulula ukuyisebenzisa.

  • Iiseva kwiWindows Server, kuba .NET ke inokuba phantsi kweWindows kuphela (asiyi kuxoxa ngeMono).

Ngokwasemzimbeni, konke oku kwachazwa "kwi-dedic kwi-hoster". 

I-odolo ye-Architecture yeSicelo sokuNgena

Emva koko wonke umntu wayesele ethetha nge-microservices, kwaye i-SOA isetyenziswe kwiiprojekthi ezinkulu ze-5 iminyaka, umzekelo, i-WCF yakhululwa ngo-2006. Kodwa ke bakhetha isisombululo esithembekileyo nesiqinisekisiweyo.

Nantsi.

Imbali yeDodo IS Architecture: IMonolith yamandulo

I-Asp.Net MVC yiRazor, ethi, xa icelwa kwifomu okanye kumxhasi, inike iphepha le-HTML ngonikezelo lweseva. Kumxhasi, izikripthi ze-CSS kunye ne-JS sele zibonise ulwazi kwaye, ukuba kuyimfuneko, yenza izicelo ze-AJAX nge-JQuery.

Izicelo kumncedisi ziphela kwiiklasi * zoMlawuli, apho ukuqhutyelwa phambili kunye nokuveliswa kwephepha lokugqibela le-HTML lenzeka kwindlela. Abalawuli benza izicelo kuluhlu lwengqiqo ebizwa ngokuba *IiNkonzo. Inkonzo nganye ibingqamene nomba othile weshishini:

  • Umzekelo, iDepartmentStructureService inike ulwazi ngeepizza, kumasebe. Isebe liqela leepizzeria eziqhutywa ngumnini franchisee omnye.

  • ReceivingOrdersService yamkelwe kwaye ibalwe ukwakhiwa komyalelo.

  • Kwaye iSmsService ithumele iSMS ngokufowunela iinkonzo ze-API ukuthumela iSMS.

Iinkonzo zisetyenzwe idatha esuka kwisiseko sedatha, ingqiqo yeshishini egciniweyo. Inkonzo nganye yayinendawo enye okanye ngaphezulu *Izigcino ezinegama elifanelekileyo. Besele benemibuzo kwiinkqubo ezigcinwe kuvimba weenkcukacha kunye noluhlu lweemephu. Kwakukho ingqiqo yezoshishino kwiindawo zokugcina, ngakumbi kakhulu kwezo zikhuphe idatha yengxelo. I-ORM ayizange isetyenziswe, wonke umntu wayethembele kwi-sql ebhalwe ngesandla. 

Kwakukho noluhlu lwemodeli yesizinda kunye neeklasi zomncedisi oqhelekileyo, umzekelo, iklasi ye-Order egcina umyalelo. Kwakwindawo enye, kuluhlu, bekukho umncedi wokuguqula umbhalo obonisiweyo ngokwemali ekhethiweyo.

Konke oku kunokubonakaliswa yimodeli enjalo:

Imbali yeDodo IS Architecture: IMonolith yamandulo

Indlela yokuOda

Cinga ngendlela elula yokuqala yokudala umyalelo onjalo.

Imbali yeDodo IS Architecture: IMonolith yamandulo

Ekuqaleni, indawo yayimile. Yayinamaxabiso kuyo, kwaye phezulu - inombolo yefowuni kunye nombhalo "Ukuba ufuna i-pizza - fowunela inombolo kunye nomyalelo." Uku-odola, kufuneka siphumeze ukuhamba okulula: 

  • Umxhasi utyelela indawo engatshintshiyo kunye namaxabiso, ukhetha iimveliso kwaye ufowunele inombolo edweliswe kwisayithi.

  • Umthengi ubiza iimveliso abafuna ukuzongeza kwi-odolo.

  • Unika idilesi kunye negama lakhe.

  • Umsebenzisi uyayamkela iodolo.

  • Umyalelo uboniswa kwi-interface yee-odolo ezamkelweyo.

Konke kuqala ngokubonisa imenyu. Umsebenzisi ongenileyo wamkela iodolo enye kuphela ngexesha. Ngoko ke, inqwelo eyidrafti inokugcinwa kwiseshoni yakhe (iseshoni yomsebenzisi igcinwe kwimemori). Kukho into yeCart equlethe iimveliso kunye nolwazi lwabathengi.

Umthengi ubiza imveliso, umsebenzisi ucofa kuyo + ecaleni kwemveliso, kwaye isicelo sithunyelwa kumncedisi. Ulwazi malunga nemveliso lukhutshwe kwi-database kwaye ulwazi malunga nemveliso yongezwa kwinqwelo.

Imbali yeDodo IS Architecture: IMonolith yamandulo

Qaphela:. Ewe, apha awukwazi ukutsala imveliso kwisiseko sedatha, kodwa uyidlulisele kwi-frontend. Kodwa ukucaca, ndibonise kanye indlela esuka kwisiseko sedatha. 

Okulandelayo, ngenisa idilesi kunye negama lomxhasi. 

Imbali yeDodo IS Architecture: IMonolith yamandulo

Xa ucofa "Yenza iodolo":

  • Isicelo sithunyelwe kwi-OrderController.SaveOrder().

  • Sifumana iCart kwiseshoni, kukho iimveliso kwinani esilidingayo.

  • Siyongezelela iCart ngolwazi malunga nomxhasi kwaye siyidlulisele kwindlela ye-AddOrder yeklasi yeReceivingOrderService, apho igcinwa khona kwisiseko sedatha. 

  • I-database ineetafile ezinomyalelo, ukubunjwa komyalelo, umxhasi, kwaye zonke zixhunyiwe.

  • Ujongano lokubonisa iodolo luhamba kwaye lukhuphe iiodolo zamva nje kwaye lubonise.

Iimodyuli ezintsha

Ukuthatha umyalelo kwakubalulekile kwaye kuyimfuneko. Awunakulenza ishishini lepizza ukuba awunayo iodolo yokuthengisa. Ngoko ke, inkqubo yaqala ukufumana ukusebenza - malunga no-2012 ukuya ku-2015. Ngeli xesha, iibhloko ezininzi ezahlukeneyo zenkqubo zavela, endiya kuzibiza iimodyuli, ngokuchasene nombono wenkonzo okanye imveliso. 

Imodyuli yiseti yemisebenzi edityaniswe nenjongo yoshishino efanayo. Ngexesha elifanayo, basemzimbeni kwisicelo esifanayo.

Iimodyuli zingabizwa ngokuba ziibhloko zesistim. Umzekelo, le yimodyuli yokunika ingxelo, ujongano lolawulo, tracker yokutya ekhitshini, ugunyaziso. Ezi zonke ziindlela ezahlukeneyo zokujonga abasebenzisi, ezinye zineendlela zokubonwayo ezahlukeneyo. Kwangaxeshanye, yonke into ingaphakathi kwesakhelo sesicelo esinye, inkqubo enye esebenzayo. 

Ngobuchwephesha, iimodyuli zayilwa njengeNdawo (umbono onjalo wade wahlala kuwo i-asp.net ingundoqo). Kwakukho iifayile ezahlukeneyo ze-frontend, iimodeli, kunye neeklasi zabo zokulawula. Ngenxa yoko, inkqubo yatshintshwa ukusuka kule ...

Imbali yeDodo IS Architecture: IMonolith yamandulo

... kule nto:

Imbali yeDodo IS Architecture: IMonolith yamandulo

Ezinye iimodyuli ziphunyezwa ngamaziko ahlukeneyo (iprojekthi ephunyezwayo), ngenxa yokusebenza okwahluke ngokupheleleyo kwaye ngokuyinxenye ngenxa yolwahlulo oluncinci, olugxile ngakumbi. Oku:

  • site - inguqulelo yokuqala indawo dopizza.ru.

  • Ukuthumela ngaphandle: ukulayisha iingxelo ezivela kwi-Dodo IS ye-1C. 

  • Personal - akhawunti yobuqu yomqeshwa. Yaphuhliswa ngokwahlukeneyo kwaye inendawo yayo yokungena kunye noyilo olwahlukileyo.

  • fs -iprojekthi yokubamba i-statics. Kamva sasuka kuyo, sihambisa zonke i-statics kwi-Akamai CDN. 

Ezinye iibhloko bezikwi-BackOffice application. 

Imbali yeDodo IS Architecture: IMonolith yamandulo

Ingcaciso yegama:

  • I-Cashier-Cashier yokutyela.

  • I-ShiftManager - i-interfaces yendima ye "Shift Manager": izibalo zokusebenza kwiintengiso ze-pizzeria, ukukwazi ukubeka iimveliso kuluhlu lokumisa, utshintshe umyalelo.

  • Umphathi we-Ofisi-ujongano lwendima ye "Pizzeria Manager" kunye ne "Franchisee". Nantsi imisebenzi eqokelelweyo yokumisela i-pizzeria, ukunyuswa kwayo kwebhonasi, ukufumana kunye nokusebenza nabasebenzi, iingxelo.

  • Izikrini zikawonke-wonke-ujongano lweeTV kunye neetafile ezijinga kwiipizzeria. Umabonakude ubonisa iimenyu, ulwazi lwentengiso, ubume beodolo ekuhanjisweni. 

Basebenzisa uluhlu lwenkonzo eqhelekileyo, ibhloko yeklasi ye-Dodo.Core eqhelekileyo, kunye nesiseko esiqhelekileyo. Ngamanye amaxesha basenakho ukukhokela kunye notshintsho omnye komnye. Kubandakanya iisayithi ezizimeleyo, ezifana ne-dodopizza.ru okanye i-personal.dodopizza.ru, ziye kwiinkonzo eziqhelekileyo.

Xa iimodyuli ezintsha zivela, sizame ukusebenzisa kwakhona ikhowudi yeenkonzo esele yenziwe, iinkqubo ezigciniweyo kunye neetafile kwi-database ukuya phezulu. 

Ukuqonda ngcono ubungakanani beemodyuli ezenziwe kwinkqubo, nantsi umzobo osuka kwi-2012 kunye nezicwangciso zophuhliso:

Imbali yeDodo IS Architecture: IMonolith yamandulo

Ngo-2015, yonke into yayikwimephu kwaye ngakumbi yayikwimveliso.

  • Ukwamkelwa komyalelo kuye kwanda kwibhloko eyahlukileyo yeZiko loQhagamshelwano, apho umyalelo wamkelwa ngumqhubi.

  • Kwakukho izikrini zikawonkewonke ezinemenyu kunye nolwazi olujingayo kwiipizza.

  • Ikhitshi inemodyuli edlala ngokuzenzekelayo umyalezo welizwi "iPizza eNtsha" xa iodolo entsha ifika, kwaye iprinte i-invoyisi yekhuriya. Oku kulula kakhulu iinkqubo ekhitshini, kuvumela abasebenzi ukuba bangaphazanyiswa yinani elikhulu lemisebenzi elula.

  • Iyunithi yokuhanjiswa yaba yi-Checkout yoThutho eyahlukileyo, apho umyalelo wakhutshwa kwi-courier eyayithathe utshintsho ngaphambili. Ixesha lakhe lokusebenza lithathelwe ingqalelo ekubaleni umvuzo. 

Ngokufanayo, ukusuka kwi-2012 ukuya kwi-2015, kwavela abaphuhlisi abangaphezu kwe-10, ii-pizzeria ze-35 zavulwa, zasasaza inkqubo eRomania kwaye zalungiselela ukuvulwa kweevenkile e-United States. Abaphuhlisi abasajongani nayo yonke imisebenzi, kodwa bohlulwe baba ngamaqela. nganye ikhethekileyo kwindawo yayo yenkqubo. 

Iingxaki

Kubandakanywa ngenxa yolwakhiwo (kodwa hayi kuphela).

Isiphithiphithi kwisiseko

Isiseko esinye sifanelekile. Ukuhambelana kunokufezekiswa kuyo, kwaye ngeendleko zezixhobo ezakhiwe kwiinkcukacha zobudlelwane. Ukusebenza nayo kuqhelekile kwaye kulula, ngakumbi ukuba kukho iitafile ezimbalwa kunye nedatha encinci.

Kodwa ngaphezu kweminyaka emi-4 yophuhliso, i-database iye yaba neetafile ezimalunga nama-600, iinkqubo ezili-1500 ezigciniweyo, ezininzi zazo zinengqiqo. Yeha, iinkqubo ezigciniweyo azizisi inzuzo enkulu xa usebenza ngeMySQL. Azigcinwanga ngesiseko, kwaye ukugcina ingqiqo kuzo kwenza uphuhliso kunye nokulungiswa kweempazamo. Ukusebenzisa ikhowudi kwakhona kunzima.

Iitheyibhile ezininzi bezingenazo izalathisi ezifanelekileyo, kwindawo ethile, ngokuchaseneyo, kwakukho izalathisi ezininzi, okwenza kube nzima ukuyifaka. Kwakuyimfuneko ukuguqula malunga neetafile ze-20 - ukuthengiselana ukudala umyalelo kunokuthatha malunga nemizuzwana emi-3-5. 

Idatha kwiitheyibhile yayingasoloko ikwifom efanelekileyo kakhulu. Endaweni ethile kwakuyimfuneko ukwenza i-denormalization. Inxalenye yedatha efunyenwe rhoqo yayikwikholamu ngendlela yesakhiwo se-XML, oku kwandisa ixesha lokuphumeza, kwandisa imibuzo kwaye kwanzima uphuhliso.

Kwakwiitafile ezifanayo zaveliswa kakhulu izicelo ezahlukeneyo. Iitafile ezidumileyo zahlupheka ngakumbi, njengetheyibhile ekhankanywe ngasentla. odolo okanye iitafile Pizzeria. Zazisetyenziselwa ukubonisa ujongano lokusebenza ekhitshini, uhlalutyo. Enye indawo yaqhagamshelana nabo (dopizza.ru), apho nangaliphi na ixesha izicelo ezininzi zinokufika ngokukhawuleza. 

Idatha ayizange idityaniswe kwaye izibalo ezininzi zenzeka kwimpukane usebenzisa isiseko. Oku kudala izibalo ezingeyomfuneko kunye nomthwalo owongezelelweyo. 

Ngokuqhelekileyo ikhowudi iye kwisiseko sedatha xa ingenakwenza njalo. Kwindawo ethile kwakungekho imisebenzi emininzi eyaneleyo, kwindawo ethile kuya kufuneka ukuba usasaze isicelo esinye kwiinombolo ezininzi ngekhowudi ukwenzela ukukhawuleza nokwandisa ukuthembeka. 

Ubumbano kunye ne-obfuscation kwikhowudi

Iimodyuli ebezifanele ukuba noxanduva lwenxalenye yeshishini labo azizange zikwenze oko ngokunyanisekileyo. Abanye babo babenokuphinda-phindwa kwemisebenzi yeendima. Umzekelo, umthengisi wasekhaya onoxanduva lomsebenzi wokuthengisa womnatha kwisixeko sakhe kwafuneka asebenzise zombini ujongano lwe "Admin" (ukwenza iintengiso) kunye nojongano "loMphathi weOfisi" (ukujonga impembelelo yonyuselo kwishishini). Ngokuqinisekileyo, ngaphakathi zombini iimodyuli zisebenzisa inkonzo efanayo esebenza kunye nokunyuswa kwebhonasi.

Iinkonzo (iiklasi ngaphakathi kweprojekthi enye enkulu ye-monolithic) zinokubizana ukuze zityebise idatha yazo.

Ngeeklasi zemodeli ngokwayo ezigcina idatha, umsebenzi kwikhowudi wenziwa ngokwahlukileyo. Kwindawo ethile kwakukho abakhi apho kwakunokwenzeka ukucacisa iindawo ezifunekayo. Endaweni ethile oku kwenziwa ngeepropati zoluntu. Ngokuqinisekileyo, ukufumana kunye nokuguqula idatha kwisiseko sedatha yahlukile. 

Ingqiqo yayikubalawuli okanye kwiiklasi zenkonzo. 

Ezi zibonakala ziyimiba emincinci, kodwa zanciphisa kakhulu uphuhliso kunye nokunciphisa umgangatho, okukhokelela ekungazinzini kunye neebhugi. 

Ubunzima bophuhliso olukhulu

Kwavela ubunzima kuphuhliso ngokwalo. Kwakuyimfuneko ukwenza iibhloko ezahlukeneyo zenkqubo, kwaye ngokuhambelanayo. Ukufaka iimfuno zecandelo ngalinye kwikhowudi enye kuye kwaba nzima ngakumbi. Kwakungekho lula ukuvuma kunye nokukholisa onke amacandelo ngaxeshanye. Ukongezwa koku ibe yimida kwitekhnoloji, ngakumbi ngokubhekiselele kwisiseko kunye ne-frontend. Kwakuyimfuneko ukulahla i-jQuery ngokubhekiselele kwiziseko ezikumgangatho ophezulu, ngakumbi ngokweenkonzo zabathengi (iwebhusayithi).

Kwezinye iindawo zesistim, ugcino-lwazi olulungele oku lunokusetyenziswa.. Umzekelo, kamva saba nethuba lokusebenzisa ukusuka kwiRedis ukuya kwi-CosmosDB ukugcina ibhasikithi yokuodola. 

Amaqela kunye nabaphuhlisi ababandakanyekayo kwintsimi yabo ngokucacileyo bafuna ukuzimela ngakumbi kwiinkonzo zabo, zombini malunga nophuhliso kunye nokukhutshwa. Hlanganisa iingxabano, ukukhulula imiba. Ukuba ngabaphuhlisi aba-5 le ngxaki ayibalulekanga, ngoko nge-10, kwaye ngakumbi ngokukhula okucwangcisiweyo, yonke into iya kuba yinto enzima kakhulu. Kwaye ngaphambili yayizakuba luphuhliso lwesicelo esiphathwayo (yaqala ngo-2017, kwaye ngo-2018 yaba ukuwa okukhulu). 

Iinxalenye ezahlukeneyo zenkqubo zazifuna amanqanaba ahlukeneyo ozinzo, kodwa ngenxa yoqhagamshelwano oluqinileyo lwenkqubo, asikwazanga ukubonelela oku. Impazamo ekuphuhliseni umsebenzi omtsha kwiphaneli yolawulo inokuthi yenzeke ekwamkelweni komyalelo kwisayithi, kuba ikhowudi iqhelekile kwaye isetyenziswe kwakhona, i-database kunye nedatha nazo ziyafana.

Mhlawumbi kunokwenzeka ukuba ugweme ezi mpazamo kunye neengxaki ngaphakathi kwesakhelo se-architecture enjalo ye-monolithic-modular: yenza ulwahlulo loxanduva, i-refactor zombini ikhowudi kunye ne-database, ihlukanise ngokucacileyo iileya ukusuka komnye nomnye, ukubeka esweni umgangatho imihla ngemihla. Kodwa izisombululo zezakhiwo ezikhethiweyo kunye nokugxila ekwandiseni ngokukhawuleza kwenkqubo yokusebenza kwakhokelela kwiingxaki malunga nokuzinza.

Indlela i-Power of the Mind blog ibeka ngayo iirejista zemali kwiindawo zokutyela

Ukuba ukukhula kwenethiwekhi ye-pizzeria (kunye nomthwalo) kwaqhubeka ngesantya esifanayo, emva koko emva kwexesha ukuwa kuya kuba njalo ukuba inkqubo ayiyi kuvuka. Ibonisa kakuhle iingxaki esiqale ukujamelana nazo ngo-2015, nali ibali elinjalo. 

Kwiblogi "Amandla engqondo” ibiyiwijethi ebonisa idatha kwingeniso yonyaka wenethiwekhi iphela. Iwijethi ifikelele kwi-API yoluntu ye-Dodo, enika le datha. Olu balo lufumaneka ngoku http://dodopizzastory.com/. Iwijethi yaboniswa kwiphepha ngalinye kwaye yenza izicelo kwisibali-xesha rhoqo ngemizuzwana engama-20. Isicelo siye api.dodopizza.ru kwaye wacela:

  • inani leepizza kwinethiwekhi;

  • ingeniso yenethiwekhi iyonke ukususela ekuqaleni konyaka;

  • ingeniso yanamhlanje.

Isicelo seenkcukacha-manani kwingeniso saya ngqo kwisiseko sedatha kwaye saqala ukucela idatha kwii-odolo, ukudibanisa idatha kwi-fly kunye nokunika imali. 

Iidesika zemali kwiivenkile zokutyela zaya kwitafile yee-odolo ezifanayo, zakhulula uluhlu lwee-odolo ezifunyenweyo namhlanje, kwaye ii-odolo ezintsha zongezwa kuyo. Iirejista zemali zenze izicelo zazo rhoqo ngemizuzwana emi-5 okanye zihlaziyeke kwiphepha.

Umzobo wawujongeka ngolu hlobo:

Imbali yeDodo IS Architecture: IMonolith yamandulo

Enye ukuwa, uFyodor Ovchinnikov wabhala inqaku elide nelidumileyo kwiblogi yakhe. Abantu abaninzi beza kwiblogi kwaye baqala ukufunda yonke into ngokucophelela. Ngelixa ngamnye wabantu abeza befunda inqaku, iwijethi yengeniso yasebenza ngokufanelekileyo kwaye yacela i-API yonke imizuzwana ye-20.

I-API ibizwa ngokuba yinkqubo egciniweyo yokubala isixa sazo zonke ii-odolo ukususela ekuqaleni konyaka kuzo zonke ii-pizzerias kwikhonkco. Ukuhlanganiswa kwakusekelwe kwitafile yee-odolo, eyaziwa kakhulu. Zonke iidesika zemali kuzo zonke iindawo zokutyela ezivulekileyo ngelo xesha ziya kuyo. Iidesika zemali ziyekile ukuphendula, iiodolo azizange zamkelwe. Nabo abazange bamkelwe kwisayithi, abazange bavele kwi-tracker, umphathi we-shift akazange ababone kwi-interface yakhe. 

Eli asikuphela kwebali. Ngokuwa kwe-2015, rhoqo ngoLwesihlanu umthwalo kwinkqubo yayibaluleke kakhulu. Amaxesha amaninzi sacima i-API yoluntu, kwaye kanye, kwafuneka sicime indawo, kuba akukho nto yanceda. Kwakukho noluhlu lweenkonzo ezinomyalelo wokuvala phantsi kwemithwalo enzima.

Ukususela ngoku, umzabalazo wethu kunye nemithwalo kunye nokuzinzisa kwenkqubo iqala (ukususela ekwindla 2015 ukuya ekwindla 2018). Yenzeka lonto"ukuwa okukhulu". Ngaphaya koko, ukusilela nako kwenzeka ngamanye amaxesha, abanye babenovakalelo kakhulu, kodwa ixesha eliqhelekileyo lokungazinzi ngoku lingaqwalaselwa njengeligqithisiwe.

Ukukhula kweshishini ngokukhawuleza

Kutheni ingenziwa ngoko nangoko? Jonga nje ezi tshathi zilandelayo.

Imbali yeDodo IS Architecture: IMonolith yamandulo

Kwakhona kwi-2014-2015 kwakukho ukuvulwa eRomania kwaye ukuvulwa e-USA kwakulungiselelwa.

Inethiwekhi yanda ngokukhawuleza, amazwe amatsha avulwa, iifomathi ezintsha ze-pizzeria zavela, umzekelo, i-pizzeria yavulwa kwindawo yokutya. Konke oku kufuna ingqwalasela ebalulekileyo ngokukodwa ekwandisweni kwemisebenzi yeDodo IS. Ngaphandle kwayo yonke le misebenzi, ngaphandle kokulandelela ekhitshini, ukubalwa kweemveliso kunye nelahleko kwinkqubo, ukubonisa ukukhutshwa komyalelo kwiholo yenkundla yokutya, ngekhe sithethe malunga noyilo "luchanekileyo" kunye nendlela "echanekileyo" uphuhliso ngoku.

Omnye umqobo ekuhlaziyweni kwangexesha loyilo kunye nokuqwalaselwa ngokubanzi kwiingxaki zobuchwepheshe yayiyingxaki ka-2014. Izinto ezinje zibethe ngamandla kumathuba okuba amaqela akhule, ngakumbi kwishishini eliselula elifana neDodo Pizza.

Izisombululo eziKhawulezayo ezincede

Iingxaki zazifuna izicombululo. Ngokwesiqhelo, izisombululo zinokwahlulwa zibe ngamaqela ama-2:

  • Abakhawulezayo abacima umlilo kwaye banike umda omncinci wokhuseleko kwaye basithengele ixesha lokutshintsha.

  • Inkqubo kwaye, ngoko, ubude. Ukuhlengahlengiswa kwenani leemodyuli, ulwahlulo loyilo lwe-monolithic kwiinkonzo ezahlukeneyo (uninzi lwazo alukho kwaphela, kodwa ziinkonzo ezinkulu, kwaye kukho into malunga nayo. Ingxelo kaAndrey Morevskiy). 

Uluhlu olomileyo lotshintsho olukhawulezayo lulandelayo:

Khuphula isiseko senkosi

Ewe, into yokuqala eyenziwayo ukujongana nemithwalo kukunyusa umthamo womncedisi. Oku kwenzelwa uvimba weenkcukacha kunye neeseva zewebhu. Yeha, oku kunokwenzeka kuphela ukuya kuthi ga kumda othile, ngoko kuba kubi kakhulu.

Ukusukela ngo-2014, sifudukele eAzure, sabhala ngalo mxholo ngelo xesha kwinqaku elithi β€œI-Dodo Pizza iyihambisa njani ipizza isebenzisa ilifu leMicrosoft Azure". Kodwa emva koluhlu lokunyuka kweseva kwisiseko, beza ngokuchasene neendleko. 

Iikopi ezisisiseko zokufunda

Iikopi ezimbini zenzelwe isiseko:

FundaReplica kwizicelo zereferensi. Isetyenziselwa ukufunda abalawuli, uhlobo, isixeko, isitalato, i-pizzeria, iimveliso (i-domain etshintshwe kancinane), nakwezo ndawo zojongano apho ulibaziseko oluncinane lwamkelekile. Kwakukho i-2 yezi replicas, saqinisekisa ukufumaneka kwazo ngendlela efanayo neenkosi.

ReadReplica yezicelo zeNgxelo. Le database yayinokufumaneka okuphantsi, kodwa zonke iingxelo zaya kuyo. Bavumele ukuba babe nezicelo ezinzima zokubalwa kwakhona kwedatha enkulu, kodwa azichaphazeli i-database engundoqo kunye nojongano lokusebenza. 

Caches kwikhowudi

Kwakungekho cache naphi na kwikhowudi (konke). Oku kukhokelele kwizicelo ezongezelelweyo, ezingasoloko ziyimfuneko, kwiziko ledatha elilayishiweyo. IiCache zaziqala zombini kwimemori nakwinkonzo yecache yangaphandle, leyo yayiyiRedis. Yonke into yayingavumelekanga ngexesha, izicwangciso zichazwe kwikhowudi.

Iiseva ezininzi ngasemva

I-backend yesicelo nayo kufuneka ilinganiswe ukujongana nomsebenzi owandisiweyo. Kwakuyimfuneko ukwenza iqela kwi-iis-server enye. Siyimisele ngokutsha iseshoni yesicelo ukusuka kwimemori ukuya kwiRedisCache, eyenze ukuba kwenzeke ukwenza iiseva ezininzi ngasemva kwe-balancer yomthwalo olula kunye ne-robin ejikelezileyo. Ekuqaleni, i-Redis efanayo yayisetyenziselwa i-cache, emva koko yahlulahlulwe yaba ninzi. 

Ngenxa yoko, i-architecture iye yaba nzima ngakumbi ...

Imbali yeDodo IS Architecture: IMonolith yamandulo

... kodwa enye ingxabano yasuswa.

Kwaye ke kwakuyimfuneko ukuba siphinde senze amacandelo alayishiweyo, esazithathayo. Siza kuthetha ngale nto kwinxalenye elandelayo.

umthombo: www.habr.com

Yongeza izimvo