Architectural Nhoroondo yeDodo IS: An Early Monolith

Kana kambani imwe neimwe isingafari ine monolith haina kufara nenzira yayo.

Kuvandudzwa kweiyo Dodo IS system yakatanga pakarepo, sebhizinesi reDodo Pizza - muna 2011. Yakanga yakavakirwa pane pfungwa yekuzara uye yakazara digitization yemabhizinesi maitiro, uye vari voga, iyo kunyange ipapo muna 2011 yakamutsa mibvunzo yakawanda uye kusava nechokwadi. Asi kwemakore 9 ikozvino tave tichitevera nzira iyi - nekukura kwedu, iyo yakatanga ne monolith.

Ichi chinyorwa ndicho "mhinduro" kumibvunzo "Sei kunyorazve zvivakwa uye kuita shanduko huru uye dzenguva refu?" kuchinyorwa chapfuura "Nhoroondo yeDodo IS architecture: nzira yehofisi yekumashure". Ini ndichatanga nekuti kuvandudzwa kweDodo IS kwakatanga sei, iyo yekutanga dhizaini yakaita sei, mabudiro matsva mamodules akaonekwa, uye nekuda kwematambudziko api shanduko huru yaifanira kuitwa.

Architectural Nhoroondo yeDodo IS: An Early Monolith

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

  1. Early monolith muDodo IS (2011-2015). (Uri pano)

  2. Backoffice nzira: zvigadziko zvakasiyana uye bhazi.

  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...)

Primordial architecture

Muna 2011, dhizaini yeDodo IS yakaita seizvi:

Architectural Nhoroondo yeDodo IS: An Early Monolith

Yekutanga module mukuvaka ndeyekugamuchira odha. Maitiro ebhizinesi aive seizvi:

  • mutengi anodana pizzeria;

  • Mutungamiriri anotora foni;

  • anotora maodha parunhare;

  • Panguva imwecheteyo, inozadza iyo muhurongwa hwekugamuchira dhizaini: ruzivo nezve mutengi, data pane odha yedhairekitori, uye kero yekutumira inotariswa. 

Iyo information system interface yaitaridzika seizvi...

Shanduro yekutanga kubva muna Gumiguru 2011:

Yakavandudzwa zvishoma muna Ndira 2012

Information system Dodo Pizza Delivery Pizza Restaurant

Zviwanikwa zvekugadzira yekutanga odha yekutora module yaive shoma. Zvakanga zvakakodzera kuita zvakawanda, nokukurumidza uye neboka duku. Chikwata chidiki chine vagadziri ve2 vakateya hwaro hwese remangwana system.

Sarudzo yavo yekutanga yakaronga ramangwana reiyo tekinoroji stack:

  • Backend paASP.NET MVC, C# mutauro. Vagadziri vacho vaive madoti; stack iyi yaizivikanwa uye yainakidza kwavari.

  • Mberi paBootstrap uye JQuery: mushandisi anopindirana zvichienderana netsika masitaera uye zvinyorwa. 

  • MySQL database: hapana mari yerezinesi, iri nyore kushandisa.

  • Masevha ari paWindows Server, nekuti .NET ipapo yaigona kunge iri paWindows (hatizokurukura Mono).

Panyama, izvi zvese zvakaratidzwa mu "hoster's desk." 

Architecture yeodha yekugamuchira application

Panguva iyoyo, munhu wose akanga atotaura nezve microservices, uye SOA yakashandiswa mumapurojekiti makuru kwemakore anenge mashanu, somuenzaniso, WCF yakabudiswa muna 5. Asi zvino vakasarudza mhinduro yakavimbika uye yakaratidza.

Hezvinoi.

Architectural Nhoroondo yeDodo IS: An Early Monolith

Asp.Net MVC iRazor, iyo, pakukumbira kubva pafomu kana kubva kumutengi, inogadzira peji reHTML rine kupa pane server. Pane mutengi, CSS neJS zvinyorwa zvinotoratidza ruzivo uye, kana zvichidikanwa, ita zvikumbiro zveAJAX kuburikidza neJQuery.

Zvikumbiro pasevha zvinowira mu * Controller makirasi, uko nzira inobata uye inogadzira yekupedzisira HTML peji. Vatongi vanoita zvikumbiro kune dhizaini yepfungwa inonzi *Services. Imwe neimwe yemasevhisi yaienderana neimwe chikamu chebhizinesi:

  • Semuenzaniso, DepartmentStructureService yakapa ruzivo nezve pizzerias nemadhipatimendi. Dhipatimendi iboka repizzerias rinotungamirirwa nemumwe franchisee.

  • ReceivingOrdersService yakagamuchirwa uye yakaverengerwa zviri mukati meodha.

  • Uye SmsService yakatumira SMS nekufonera API masevhisi ekutumira SMS.

Iwo masevhisi akagadzirisa data kubva kudhatabhesi uye akachengetwa bhizinesi pfungwa. Sevhisi yega yega yaive neimwe kana kupfuura *Repositories ine zita rakakodzera. Vaive vatove nemibvunzo kune yakachengetwa maitiro mudhatabhesi uye dhizaini yemepu. Iwo marekodhi aive nebhizinesi pfungwa, kunyanya mazhinji acho aiburitsa data rekubika. ORM haina kushandiswa, munhu wese aivimba neruoko-rakanyorwa sql. 

Paivawo nechikamu cheiyo domain model uye general mubatsiri makirasi, semuenzaniso, iyo Order class, iyo yakachengeta kurongeka. Ikoko, muchidimbu, pakanga pane mubatsiri wekushandura zvinyorwa zvekuratidzira maererano nemari yakasarudzwa.

Zvose izvi zvinogona kumiririrwa nemuenzaniso uyu:

Architectural Nhoroondo yeDodo IS: An Early Monolith

Order way

Ngatitarisei nzira yakareruka yekutanga kugadzira kurongeka kwakadaro.

Architectural Nhoroondo yeDodo IS: An Early Monolith

Pakutanga nzvimbo yacho yakanga yakamira. Paive nemitengo pairi, uye kumusoro kwaive nenhamba yerunhare uye yakanyorwa kuti "Kana iwe uchida pizza, fonera iyo nhamba uye kurongeka." Kuti tiodha, isu tinofanirwa kuita kuyerera kuri nyore: 

  • Mutengi anoenda kune static webhusaiti nemitengo, anosarudza zvigadzirwa uye anodana nhamba yakanyorwa pawebhusaiti.

  • Mutengi anodoma zvigadzirwa zvaanoda kuwedzera kuodha.

  • Anopa kero yake nezita.

  • Mushandi anogamuchira odha.

  • Kurongeka kunoratidzwa mune inogamuchirwa mirairo interface.

Izvo zvese zvinotanga nemenu kuratidza. Mushandisi anopinda-mukati anogamuchira odha imwe chete panguva. Naizvozvo, ngoro yekudhirowa inogona kuchengetwa muchikamu chayo (chikamu chemushandisi chinochengetwa mundangariro). Pane chinhu cheCart chine zvigadzirwa uye ruzivo rwevatengi.

Mutengi anotumidza chigadzirwa, mushandisi anodzvanya pa + pedyo nechigadzirwa, uye chikumbiro chinotumirwa kune server. Ruzivo nezve chigadzirwa chinoburitswa kubva mudhatabhesi uye ruzivo nezve chigadzirwa chinowedzerwa mungoro.

Architectural Nhoroondo yeDodo IS: An Early Monolith

taura pfungwa. Hongu, pano iwe haufanirwe kudhonza chigadzirwa kubva mudhatabhesi, asi kuendesa kubva kumucheto kumberi. Asi nekujekesa, ndakaratidza chaizvo nzira kubva pachigadziko. 

Zvadaro, isa kero yemutengi uye zita. 

Architectural Nhoroondo yeDodo IS: An Early Monolith

Paunodzvanya "Gadzira odha":

  • Isu tinotumira chikumbiro kuOrderController.SaveOrder().

  • Isu tinowana Cart kubva muchikamu, kune zvigadzirwa muhuwandu hwatinoda.

  • Isu tinowedzera Cart neruzivo nezve mutengi uye tinoipfuudza kune iyo AddOrder nzira yeReceivingOrderService kirasi, iyo inochengetwa kune dhatabhesi. 

  • Iyo dhatabhesi ine matafura ane kurongeka, zviri mukati meodha, mutengi, uye zvese zvakabatana.

  • Iyo yekurongeka inoratidzira interface inoenda uye inodhonza kunze maodha azvino uye oaratidza.

New modules

Kugamuchira odha kwaikosha uye kwaidiwa. Iwe haugone kuita bhizinesi repizza kana usina odha yekutengesa. Naizvozvo, hurongwa akatanga kuwana kushanda - kubva anenge 2012 kusvika 2015. Munguva iyi, mabhuroko mazhinji akasiyana ehurongwa akaonekwa, andichadaidza modules, kusiyana nepfungwa yebasa kana chigadzirwa. 

A module seti yemabasa akabatanidzwa neimwe chinangwa chebhizinesi chakafanana. Uyezve, ivo vari mumuviri vari mune imwechete application.

Modules inogona kunzi system blocks. Semuenzaniso, iyi module yekubika, admin interfaces, kicheni chigadzirwa tracker, mvumo. Aya ese akasiyana mashandisirwo emushandisi, mamwe anotove akasiyana ekuona masitaera. Uyezve, zvese zviri mukati meimwe application, imwe inomhanya maitiro. 

Nehunyanzvi, ma module akagadzirwa seNzvimbo (iyi pfungwa yakatoramba irimo asp.net core) Paive nemafaira akaparadzana epamberi, modhi, pamwe nemakirasi avo ekudzora. Nekuda kweizvozvo, iyo system yakashandurwa kubva kune yakadaro ...

Architectural Nhoroondo yeDodo IS: An Early Monolith

... kune izvi:

Architectural Nhoroondo yeDodo IS: An Early Monolith

Mamwe mamodule anoitwa nenzvimbo dzakaparadzana (zvinoitwa purojekiti), nekuda kweakaparadzana zvachose kushanda uye pamwe nekuda kwekusiyana kwakasiyana, kwakatarisana nekusimudzira. Izvi:

  • Site - yekutanga shanduro webhusaiti dopizza.ru.

  • ekisipoti: kudhawunirodha mishumo kubva kuDodo IS ye1C. 

  • Personal -akaundi yevashandi. Yakagadzirwa zvakasiyana uye ine yayo yekupinda poindi uye yakaparadzana dhizaini.

  • fs - purojekiti ye static hosting. Gare gare takasuduruka pairi, tichifambisa zvese zvirimo kuAkamai CDN. 

Mablock akasara aive muBackOffice application. 

Architectural Nhoroondo yeDodo IS: An Early Monolith

Tsanangudzo yemazita:

  • Cashier - Resitorendi yemari dhesiki.

  • ShiftManager - inopindirana ye "Shift Maneja" basa: nhamba dzekushanda pakutengesa pizzeria, kugona kuisa zvigadzirwa pane yekumira rondedzero, shandura odha.

  • OfficeManager - inopindirana ye "Pizzeria Manager" uye "Franchisee" mabasa. Pano iwe unogona kuwana mabasa ekumisikidza pizzeria, ayo bhonasi kukwidziridzwa, kugamuchira uye kushanda nevashandi, uye mishumo.

  • PublicScreens - nzvimbo dzeTV uye mahwendefa akarembera mupizzeria. MaTV anoratidza menyu, ruzivo rwekushambadzira, uye mamiriro ekurongeka pakutumira. 

Vakashandisa yakajairwa sevhisi layer, yakajairika block yeDodo.Core domain makirasi, uye hwaro hwakajairika. Dzimwe nguva vaigona kutungamirira nemumavhesi kune mumwe nemumwe. Mukuwedzera, nzvimbo dzega, dzakadai sedodopizza.ru kana personal.dodopizza.ru, dzakawanawo mabasa akajairika.

Pakaonekwa mamodule matsva, takaedza kushandisa zvakare zvakanyanya sezvinobvira kodhi yakatogadzirwa yemasevhisi, maitiro akachengetwa uye matafura mudhatabhesi. 

Kuti uwane kunzwisisa kuri nani kwehukuru hwemamodule akagadzirwa muhurongwa, heino dhayagiramu kubva 2012 ine zvirongwa zvebudiriro:

Architectural Nhoroondo yeDodo IS: An Early Monolith

Pakazosvika 2015, zvese zvaive mugwara uye zvakatowanda zvaive mukugadzirwa.

  • Kugamuchirwa kweOdha kwakura kuita yakaparadzana block yeContact Center, uko kurongeka kunogamuchirwa nemushandisi.

  • Veruzhinji masikirini ane menyu uye ruzivo zvakaonekwa mupizzeria.

  • Ikicheni ine module inongoridza otomatiki meseji yezwi "Pizza Itsva" kana odha nyowani yasvika, uye zvakare inodhinda invoice yemutumwa. Izvi zvinorerutsa maitiro mukicheni uye zvinobvumira vashandi kuti varege kutsauswa nehuwandu hukuru hwekushanda kwakapusa.

  • Iyo yekuendesa block yakave yakaparadzana Delivery Cashier, uko rairo yakapihwa kune mutumwa, uyo aive ambotora shanduko yake. Maawa ake ekushanda akaverengerwa pakuverenga muhoro wake. 

Mukufanana, kubva 2012 kusvika 2015, vanopfuura 10 vagadziri vakaonekwa, 35 pizzerias yakavhurwa, sisitimu yakaendeswa kuRomania uye yakagadzirira kuvhurwa kwemapoinzi muUSA. Vagadziri vanga vasingachabatiki mumabasa ese, asi vakakamurwa kuita zvikwata. imwe neimwe yakasarudzika muchikamu chayo chehurongwa. 

Matambudziko

Kusanganisira nekuda kwezvivakwa (asi kwete chete).

Mhirizhonga muhwaro

Imwe base iri nyore. Izvo zvinokwanisika kuwana kuenderana, uye nekudhura kwezvishandiso zvakavakwa muhukama dhatabhesi. Kushanda nayo kwakajairika uye kuri nyore, kunyanya kana paine matafura mashoma uye data shoma.

Asi pamusoro pemakore mana ebudiriro, dhatabhesi yaive neanosvika mazana matanhatu ematafura, 4 akachengetwa maitiro, mazhinji ayo aivewo nepfungwa. Nehurombo, maitiro akachengetwa haapi bhenefiti yakawanda kana uchishanda neMySQL. Izvo hazvina kuvharirwa nedhatabhesi, uye kuchengetedza logic mazviri kunonetsa kusimudzira uye kugadzirisa. Kushandisa kodhi zvakare kwakaoma.

Matafura akawanda akanga asina indekisi dzakakodzera, pane imwe nzvimbo, pane zvinopesana, pakanga pane zvinyorwa zvakawanda, izvo zvakaita kuti kuisa kuoma. Anenge matafura makumi maviri aifanira kugadziridzwa - kutengeserana kugadzira kurongeka kwaigona kutora anenge 20-3 masekonzi. 

Iyo data mumatafura yakanga isiri nguva dzose mufomu yakakodzera. Pane imwe nzvimbo zvaive zvakakodzera kuita denormalisation. Imwe ye data yaigaro gamuchirwa yaive mukoramu muchimiro cheXML chimiro, icho chakawedzera nguva yekuuraya, yakawedzera mibvunzo uye kusimudzira kwakaoma.

Iwo matafura mamwe aitarisirwa zvakanyanya zvikumbiro zvakasiyana-siyana. Matafura akakurumbira, setafura yataurwa pamusoro apa, akabatwa zvakanyanya zvirevo kana matafura pizzeria. Iwo aishandiswa kuratidza mashandiro ekubatanidza mukicheni uye analytics. Iyo saiti zvakare yakabata navo (dopizza.ru), uko zvikumbiro zvakawanda zvaigona kusvika kamwe kamwe chero nguva. 

Data haina kuunganidzwa uye masvomhu akawanda akaitwa panhunzi vachishandisa base. Izvi zvakagadzira zvisingakoshi kuverenga uye kuwedzera mutoro. 

Kazhinji kodhi yaipinda mudhatabhesi payaisagona kudaro. Pane imwe nzvimbo pakanga paine kushaikwa kwekushanda kwakawanda, kumwe kwaizove kuri madikanwa kupatsanura chikumbiro chimwe muzviverengeka kuburikidza nekodhi kuitira kukurumidza uye kuwedzera kuvimbika. 

Kubatana uye Kuvhiringidzika muCode

Iwo ma modules aifanirwa kuve ane mhosva kune yavo chikamu chebhizinesi haana kuzviita nekutendeka. Mamwe acho aive nekudzokorora kwemabasa emabasa. Semuyenzaniso, mushambadzi wepanzvimbo uyo anoona nezvekushambadzira kwenetiweki muguta rake aifanira kushandisa ese ari maviri β€œAdmin” interface (kumisikidza kukwidziridzwa) uye β€œOffice Manager” interface (kuona kukanganiswa kwekusimudzira bhizinesi). Zvechokwadi, mukati mamodules maviri akashandisa sevhisi imwechete, iyo yakashanda nemabhonasi ekusimudzirwa.

Masevhisi (makirasi mukati meimwe monolithic yakakura purojekiti) anogona kufonerana kuti vapfumise data ravo.

Nemakirasi emuenzaniso pachawo anochengeta data, basa mukodhi rakaitwa zvakasiyana. Pane imwe nzvimbo paive nevagadziri vawaigona kudoma minda inodiwa. Pane imwe nzvimbo izvi zvakaitwa kuburikidza nehupfumi hwevanhu. Ehe, kuwana nekushandura data kubva kudhatabhesi kwaive kwakasiyana. 

The logic yaive mu controller kana masevhisi makirasi. 

Izvi zvinoita sezvinetso zvidiki, asi zvakadzikisira kusimudzira uye kuderedzwa kwemhando, zvichiita kuti kusagadzikana uye zvipembenene. 

Kuoma kwekukura kukuru

Matambudziko akamuka mubudiriro pachayo. Zvakanga zvakafanira kugadzira zvidhinha zvakasiyana zvehurongwa, uye mukuwirirana. Zvakaramba zvichiwedzera kuoma kuenderana nezvinodiwa zvechikamu chimwe nechimwe mukodhi imwechete. Zvakanga zvisiri nyore kubvumirana uye kufadza zvese zvikamu panguva imwe chete. Kuwedzerwa kune izvi kwaive kusingakwanisi mune tekinoroji, kunyanya zvine chekuita nehwaro uye kumagumo. Zvaive zvakafanira kusiya JQuery tichifarira masisitimu epamusoro, kunyanya maererano nevatengi masevhisi (webhusaiti).

Zvimwe zvikamu zvehurongwa zvinogona kushandisa dhatabhesi dzakanyanya kukodzera izvi. Semuenzaniso, gare gare takava nemuenzaniso wekuchinja kubva kuRedis kuenda kuCosmosDB kuchengetedza ngoro yekuodha. 

Zvikwata nevagadziri vanoshanda munzvimbo yavo zviri pachena kuti vaida rusununguko rwakawanda rwemasevhisi avo, maererano nebudiriro uye maererano nekuburitswa. Kusawirirana panguva yekubatanidza, matambudziko panguva yekuburitswa. Kana kune vagadziri ve5 dambudziko iri risingakoshi, zvino negumi, uye zvakanyanya nekukura kwakarongwa, zvese zvingave zvakanyanya. Uye chii chaizouya kwaive kuvandudzwa kwenharembozha (yakatanga muna 10, uye muna 2017 pakanga paine kuwa kukuru). 

Zvikamu zvakasiyana zvehurongwa zvaida zviratidzo zvekugadzikana zvakasiyana, asi nekuda kwekubatana kwakasimba kwehurongwa, hatina kukwanisa kupa izvi. Kukanganisa pakugadzira basa idzva mupaneru ye admin inogona kunge yakakonzera kugamuchirwa kwehurongwa pasaiti, nekuti iyo kodhi yakajairika uye inogona kushandiswazve, dhatabhesi uye data zvakafanana.

Zvingave zvichigoneka kudzivirira zvikanganiso izvi uye matambudziko mukati megadziriro yeakadaro monolithic-modular architecture: kugadzira kupatsanurwa kwemabasa, refactor zvese kodhi uye dhatabhesi, zvakajeka kupatsanura zvikamu kubva kune mumwe, uye tarisa mhando zuva rega rega. Asi sarudzo dzakasarudzwa dzekugadzira uye kutarisa kwekukurumidza kuwedzera kushanda kwehurongwa kwakatungamirira kumatambudziko munyaya dzekugadzikana.

Iyo blog Simba rePfungwa inoisa sei marejista emari mumaresitorendi

Kana kukura kwepizzeria network (uye mutoro) yakaramba ichienderera pamwe chete, zvino mushure mechinguva madonhwe angave akadaro kuti hurongwa hurege kupora. Nyaya inotevera inonyatsoratidza matambudziko atakatanga kutarisana nawo muna 2015. 

Mu blog "Simba repfungwa"paive newidget yairatidza mari yemari yegore kune network yese. Iyo widget yakawana yeruzhinji Dodo API, iyo inopa iyi data. Nhamba idzi dzave kuwanikwa pa http://dodopizzastory.com/. Widget yairatidzwa pamapeji ese uye yaita zvikumbiro pane timer mumasekonzi makumi maviri ega ega. Chikumbiro chakaenda ku api.dodopizza.ru ndokubvunza:

  • nhamba yepizzeria mumambure;

  • mari yese network kubva pakutanga kwegore;

  • mari yanhasi.

Chikumbiro chehuwandu hwemari chakananga kune dhatabhesi ndokutanga kukumbira data pamaodha, unganidza iyo data zvakananga panhunzi uye buritsa iyo mari. 

Marejista emari mumaresitorendi akaenda kutafura imwechete yeodha, akaisa runyoro rwemaodha anogamuchirwa nhasi, uye maodha matsva akawedzerwa kwairi. Mabhuku emari aiita zvikumbiro zvavo mumasekonzi mashanu ega ega kana kuti peji paraizorodzwa.

Dhiagiramu yacho yaiita seizvi:

Architectural Nhoroondo yeDodo IS: An Early Monolith

Rimwe zuva mukudonha, Fyodor Ovchinnikov akanyora chinyorwa chakareba uye chakakurumbira pa blog yake. Vanhu vazhinji vakauya kublogi ndokutanga kuverenga zvese zvakanyatsonaka. Nepo mumwe nemumwe wevanhu vakauya achiverenga chinyorwa, iyo widget yemari yakashanda nemazvo uye yakakumbira iyo API masekonzi makumi maviri ese.

Iyo API yakadana maitiro akachengetwa kuverenga huwandu hwemaodha ese kubva pakutanga kwegore kune ese mapizzeria ari munetwork. Iko kuunganidza kwakavakirwa patafura yemirairo, iyo yakakurumbira zvikuru. Ese marejista emari emaresitorendi akavhurika panguva iyoyo enda kwairi. Mabhuku emari akamira kudaira uye maodha haana kugamuchirwa. Ivo zvakare havana kugamuchirwa kubva pane saiti, havana kuoneka pane tracker, uye maneja wekuchinja aisavaona mune yake interface. 

Iyi haisiriyo nyaya chete. Nekudonha kwe2015, Chishanu chega chega mutoro pahurongwa hwaive hwakakosha. Kakawanda takadzima API yeruzhinji, uye takatombodzima saiti nekuti hapana chaibatsira. Paitove nerunyoro rwesevhisi nehurongwa hwekuvhara pasi pemitoro inorema.

Kubva panguva ino zvichienda mberi, kurwa kwedu nemitoro uye kudzikamisa system kunotanga (kubva mumatsutso 2015 kusvika kumatsutso 2018). Ndipo pazvakaitika"Kuwa Kukuru" Kupfuurirazve, dzimwe nguva kwaivawo nekukundikana, kumwe kwacho kwainyanya kuoma, asi nguva yakawanda yekusagadzikana zvino inogona kunzi yapera.

Kukura kwebhizinesi nekukurumidza

Sei zvisingakwanisi "kuitwa zvakanaka pakarepo"? Ingotarisa magirafu anotevera.

Architectural Nhoroondo yeDodo IS: An Early Monolith

Zvakare muna 2014-2015 kwaive nekuvhurwa muRomania uye kuvhurwa muUSA kwaigadzirwa.

Cheni yakakura nekukurumidza, nyika itsva dzakavhurwa, mafomu matsva epizzeria akaonekwa, semuenzaniso, pizzeria yakavhurwa mudare rekudya. Zvese izvi zvaida kutariswa kwakakosha kunyanya kuwedzera mabasa eDodo IS. Pasina mabasa ese aya, pasina kuteedzera mukicheni, kuverengera zvigadzirwa uye kurasikirwa muhurongwa, kuratidza kuendeswa kwemirairo muhoro yedare rekudya, hazvigoneke kuti isu tave kutaura nezve "chaiyo" chivakwa uye "chaiyo." ” nzira yebudiriro.

Chimwe chipingamupinyi pakudzokororwa nenguva kwezvivakwa uye kutarisisa zvakanyanya kumatambudziko ehunyanzvi yaive dambudziko ra2014. Zvinhu zvakadai zvinokuvadza mikana yekukura kwezvikwata, kunyanya kune bhizinesi rechidiki seDodo Pizza.

Mhinduro dzekukurumidza dzakabatsira

Zvinetso zvaida kugadziriswa. Conventionally, mhinduro dzinogona kukamurwa mumapoka maviri:

  • Idzo dzinokurumidza kudzima moto uye dzinotipa muganhu muduku wekuchengeteka uye dzinotitengera nguva yekuchinja.

  • Systemic uye, saka, yakareba. Kugadzirisazve akati wandei mamodule, kupatsanura iyo monolithic architecture kuita akaparadzana masevhisi (akawanda awo haasi madiki, asi macro masevhisi, uye pane zvakawanda pamusoro peizvi. chirevo naAndrey Morevsky). 

Rondedzero yakaoma yekuchinja nekukurumidza ndeye:

Scale up base master

Zvechokwadi, chinhu chekutanga chinoitwa kurwisa mutoro ndechekuwedzera simba revhavha. Izvi zvakaitirwa master database uye web server. Maiwe, izvi zvinogoneka chete kusvika kune imwe muganhu; kupfuura izvo zvinodhura zvakanyanya.

Kubva 2014, takatamira kuAzure; takanyorawo nezvenyaya iyi kumashure muchinyorwa "Iyo Dodo Pizza inoendesa sei pizza uchishandisa iyo Microsoft Azure gore" Asi mushure mekunge nhepfenyuro ye server yawedzera, mutengo webhesi wakasvika pamuganho. 

Database replicas yekuverenga

Isu takagadzira maviri replicas kune base:

ReadReplica yezvikumbiro zvedhairekitori. Inoshandiswa pakuverenga madhairekitori, akadai seguta, mugwagwa, pizzeria, zvigadzirwa (zvishoma nezvishoma zvakachinjwa domain), uye mune iwo mainterface apo kunonoka kudiki kunogamuchirwa. Paive ne2 yeaya makopi, isu takaona kuwanikwa kwawo nenzira imwechete saishe.

ReadReplica yezvikumbiro zveshumo. Iyi dhatabhesi yaive yakaderera kuwanikwa, asi mishumo yese yakaenda kwairi. Vanogona kunge vaine zvikumbiro zvinorema zvekuverengera hombe data, asi hazvikanganise iyo huru dhatabhesi uye yekushanda interfaces. 

Caches mune kodhi

Pakanga pasina cache chero kupi zvako mune kodhi (zvese). Izvi zvakakonzera kuwedzera, kwete nguva dzose zvichidikanwa, zvikumbiro kune yakarodha dhatabhesi. Pakutanga, ma cache aive ari mundangariro uye pane yekunze cache sevhisi, yaive Redis. Zvese zvaive zvisina nguva, zvigadziriso zvakatsanangurwa mukodhi.

Multiple servers for backend

Iyo yekuseri kwechikumbiro zvakare yaifanira kuyerwa kuti imirire mitoro yakawedzera. Zvaive zvakakodzera kugadzira sumbu kubva kune imwe IIS server. Takatama application session kubva mundangariro paRedisCache, izvo zvakaita kuti zvikwanise kugadzira akati wandei maseva kuseri kweyekuremedza mitoro ine denderedzwa robin. Pakutanga, iyo Redis imwechete yakashandiswa seye cache, zvino yakakamurwa kuita akati wandei. 

Nekuda kweizvozvo, iyo dhizaini yakawedzera kuoma ...

Architectural Nhoroondo yeDodo IS: An Early Monolith

...asi imwe tension yakange yapera.

Uye zvino zvaive zvakafanira kudzoreredza zvinhu zvakatakurwa, izvo zvatakatora. Tichataura nezvazvo muchikamu chinotevera.

Source: www.habr.com

Voeg