Nalane ea Dodo IS Architecture: Monolith ea Pele

Kapa k'hamphani e 'ngoe le e' ngoe e sa thabiseng e nang le monolith ha e thabe ka tsela ea eona.

Nts'etsopele ea sistimi ea Dodo IS e qalile hang-hang, joalo ka khoebo ea Dodo Pizza - ka 2011. E ne e ipapisitse le mohopolo oa ho etsa dijithale ka botlalo le ka botlalo lits'ebetsong tsa khoebo, le ka bobona, eo le ka 2011 e ileng ea tsosa lipotso tse ngata le lipelaelo. Empa ka lilemo tse 9 joale re ntse re latela tsela ena - ka tsoelo-pele ea rona, e qalileng ka monolith.

Sengoliloeng sena ke "karabo" ea lipotso tse "Hobaneng ho ngola meralo bocha le ho etsa liphetoho tse kholo le tsa nako e telele?" ho sehlooho se fetileng "Nalane ea meralo ea Dodo IS: tsela ea ofisi e ka morao". Ke tla qala ka hore na tsoelo-pele ea Dodo IS e qalile joang, hore na mohaho oa pele o ne o shebahala joang, hore na li-module tse ncha li hlahile joang, le ka lebaka la mathata afe a lokelang ho etsoa liphetoho tse kholo.

Nalane ea Dodo IS Architecture: Monolith ea Pele

Letoto la lihlooho "Dodo KE Eng?" e bua ka:

  1. Monolith ea pele ho Dodo IS (2011-2015). (U mona)

  2. Tsela e ka Morao-rao ea Ofisi: Metheo e Arohileng le Bese.

  3. Tsela ea lehlakoreng la bareki: facade holim'a motheo (2016-2017). (E mocheng...)

  4. Histori ea li-microservices tsa sebele. (2018-2019). (E mocheng...)

  5. E phethiloe sawing ea monolith le botsitso ba meralo. (E mocheng...)

Mehaho ea pele

Ka 2011, meralo ea Dodo IS e ne e shebahala tjena:

Nalane ea Dodo IS Architecture: Monolith ea Pele

Mojule oa pele oa meralo ke ho amohela taelo. Mokhoa oa khoebo o ne o le tjena:

  • moreki o letsetsa pizzeria;

  • Mookameli o nka mohala;

  • o nka litaelo ka fono;

  • Ka nako e ts'oanang, e e tlatsa ka mokhoa oa ho amohela taelo: tlhahisoleseding e mabapi le mofani, lintlha tse mabapi le lintlha tsa taelo, le aterese ea ho fana li nkoa. 

Sehokelo sa sistimi ea tlhahisoleseling se ne se shebahala tjena...

Phetolelo ea pele ho tloha ka October 2011:

E ntlafalitsoe hanyane ka Pherekhong 2012

Sistimi ea tlhahisoleseling Dodo Pizza Delivery Pizza Restaurant

Lisebelisoa tsa ho etsa mojule oa pele oa ho nka odara li ne li fokola. Ho ne ho hlokahala ho etsa ho hongata, kapele le ka sehlopha se senyenyane. Sehlopha se senyenyane se na le bahlahisi ba 2 ba thehileng motheo oa tsamaiso eohle ea nakong e tlang.

Qeto ea bona ea pele e ile ea etsa qeto ea hore na bokamoso ba theknoloji bo tla ba joang:

  • Backend ho ASP.NET MVC, C # puo. Bahlahisi e ne e le li-dotnetists; stack ena e ne e tloaelehile ebile e le monate ho bona.

  • Frontend ho Bootstrap le JQuery: lihokelo tsa mosebelisi tse ipapisitseng le mekhoa le mengolo ea tloaelo. 

  • MySQL database: ha ho na litšenyehelo tsa laesense, ho bonolo ho e sebelisa.

  • Li-server ho Windows Server, hobane .NET joale e ka ba Windows feela (re ke ke ra buisana ka Mono).

Ka 'mele, sena sohle se hlalositsoe "tafoleng ea moamoheli." 

Mehaho ea kopo ea kamohelo ea taelo

Ka nako eo, e mong le e mong o ne a se a ntse a bua ka li-microservices, 'me SOA e ne e sebelisitsoe merero e meholo ka lilemo tse ka bang 5, mohlala, WCF e ile ea lokolloa ka 2006. Empa joale ba khetha tharollo e tšepahalang le e netefalitsoeng.

Ke ena.

Nalane ea Dodo IS Architecture: Monolith ea Pele

Asp.Net MVC ke Razor, eo, ka kopo ho tsoa ho foromo kapa ho tsoa ho moreki, e hlahisang leqephe la HTML le nang le phetolelo ho seva. Ho moreki, mangolo a CSS le JS a se a ntse a bonts'a tlhahisoleseling, 'me, ha ho hlokahala, etsa likopo tsa AJAX ka JQuery.

Likopo ho seva li oela ho lihlopha tsa *Taolo, moo mokhoa o sebetsang le ho hlahisa leqephe la ho qetela la HTML. Balaoli ba etsa likopo ho leta la logic le bitsoang *Services. E 'ngoe le e' ngoe ea litšebeletso e ne e tsamaisana le karolo e itseng ea khoebo:

  • Mohlala, DepartmentStructureService e fane ka leseli ka li-pizzeria le mafapha. Lefapha ke sehlopha sa li-pizzeria tse laoloang ke mohoebi a le mong.

  • ReceivingOrdersService e amohetsoe le ho bala likahare tsa odara.

  • Mme SmsService e rometse SMS ka ho letsetsa lits'ebeletso tsa API bakeng sa ho romella SMS.

Litšebeletso li sebelitse data ho tsoa polokelong ea litaba le ho boloka mohopolo oa khoebo. Tšebeletso e 'ngoe le e 'ngoe e ne e e-na le polokelo ea * e le 'ngoe kapa ho feta tse nang le lebitso le nepahetseng. Li ne li se li ntse li e-na le lipotso mabapi le lits'ebetso tse bolokiloeng sebakeng sa polokelo ea litaba le sehlopha sa limmapa. Libaka tsa polokelo li ne li e-na le mohopolo oa khoebo, haholo-holo tse ngata tsa tsona tse hlahisang lintlha tsa tlaleho. ORM e ne e sa sebelisoe, e mong le e mong o ne a itšetlehile ka sql e ngotsoeng ka letsoho. 

Hape ho ne ho e-na le lera la mohlala oa domain le lihlopha tsa bathusi ba kakaretso, mohlala, sehlopha sa Order, se neng se boloka taelo. Moo, ka lera, ho ne ho e-na le mothusi bakeng sa ho fetola mongolo oa pontšo ho latela chelete e khethiloeng.

Sena sohle se ka emeloa ke mohlala ona:

Nalane ea Dodo IS Architecture: Monolith ea Pele

Odara tsela

Ha re nahaneng ka mokhoa o nolofalitsoeng oa pele oa ho theha odara e joalo.

Nalane ea Dodo IS Architecture: Monolith ea Pele

Qalong sebaka seo se ne se tsitsitse. Ho ne ho e-na le litheko ho eona, 'me ka holimo ho ne ho e-na le nomoro ea mohala le mongolo "Haeba u batla pizza, letsetsa nomoro le taelo." Ho odara, re hloka ho kenya tšebetsong phallo e bonolo: 

  • Moreki o ea webosaeteng e sa fetoheng e nang le litheko, o khetha lihlahisoa ebe o letsetsa nomoro e thathamisitsoeng sebakeng sa marang-rang.

  • Moreki o bolela lihlahisoa tseo a batlang ho li kenya odareng.

  • E fana ka aterese le lebitso la hae.

  • Opareitara e amohela taelo.

  • Taelo e bonts'oa ka har'a sebopeho se amohelehang sa litaelo.

Tsohle li qala ka pontšo ea menu. Mosebelisi ea keneng o amohela odara e le 'ngoe feela ka nako. Ka hona, kariki ea moralo e ka bolokoa nakong ea eona (nako ea mosebelisi e bolokiloe mohopolong). Ho na le ntho ea Cart e nang le lihlahisoa le lintlha tsa bareki.

Moreki o bolela sehlahisoa, opareitara e tobetsa ho eona + haufi le sehlahisoa, 'me kopo e romelloa ho seva. Tlhahisoleseding e mabapi le sehlahisoa e ntšoa ho tswa ho database mme tlhahisoleseding e mabapi le sehlahisoa e kenngoa kariking.

Nalane ea Dodo IS Architecture: Monolith ea Pele

mantsoe. E, mona ha ho hlokahale hore u hule sehlahisoa ho tsoa ho database, empa u se fetise ho tloha pheletsong e ka pele. Empa bakeng sa ho hlaka, ke bontšitse hantle tsela e tsoang botlaaseng. 

E latelang, kenya aterese le lebitso la moreki. 

Nalane ea Dodo IS Architecture: Monolith ea Pele

Ha o tobetsa "Etsa odara":

  • Re romela kopo ho OrderController.SaveOrder().

  • Re fumana Cart ho tloha sebokeng, ho na le lihlahisoa ka bongata boo re bo hlokang.

  • Re tlatselletsa Cart ka tlhahisoleseling mabapi le moreki ebe re e fetisetsa ho mokhoa oa AddOrder oa sehlopha sa ReceivingOrderService, moo e bolokiloeng polokelong ea litaba. 

  • Database e na le litafole tse nang le tatellano, litaba tsa tatellano, moreki, 'me kaofela li hokahane.

  • Sebopeho sa pontšo ea odara se ea 'me se ntša litaelo tsa morao-rao ebe se li bontša.

Li-module tse ncha

Ho amohela taelo ho ne ho le bohlokoa ebile ho hlokahala. U ke ke ua tsamaisa khoebo ea pizza haeba u se na taelo ea ho e rekisa. Ka hona, tsamaiso ea qala ho fumana tshebetso - ho tloha hoo e ka bang 2012 ho 2015. Nakong ena, ho ile ha hlaha li-blocks tse ngata tse fapaneng tsa tsamaiso, tseo ke tla li bitsa li-module, ho fapana le mohopolo wa tshebeletso kapa sehlahiswa. 

Mojule ke sete ea mesebetsi e kopantsoeng ke sepheo se itseng se tšoanang sa khoebo. Ho feta moo, li fumaneha 'meleng ka ts'ebeliso e tšoanang.

Li-module li ka bitsoa li-blocks tsa sistimi. Mohlala, ona ke mojule oa tlaleho, li-interface tsa admin, kitchen product tracker, tumello. Tsena ke lihokelo tse fapaneng tsa basebelisi, tse ling li bile li na le mekhoa e fapaneng ea pono. Ho feta moo, ntho e 'ngoe le e' ngoe e ka har'a kopo e le 'ngoe, ts'ebetso e le' ngoe e sebetsang. 

Ka botekgeniki, li-module li entsoe joalo ka Sebaka (mohopolo ona o bile oa lula o le teng asp.net mantlha). Ho ne ho e-na le lifaele tse arohaneng bakeng sa frontend, mehlala, hammoho le lihlopha tsa bona tsa taolo. Ka lebaka leo, tsamaiso e ile ea fetoloa ho tloha ho ...

Nalane ea Dodo IS Architecture: Monolith ea Pele

... ho sena:

Nalane ea Dodo IS Architecture: Monolith ea Pele

Li-module tse ling li kengoa ts'ebetsong ke libaka tse arohaneng (morero o ka phethisoang), ka lebaka la ts'ebetso e arohaneng ka botlalo mme karolo e 'ngoe e bakoa ke nts'etsopele e fapaneng, e tsepamisitsoeng haholo. Sena:

  • Site - phetolelo ea pele websaeteng dopizza.ru.

  • Export: ho khoasolla litlaleho ho tsoa ho Dodo IS bakeng sa 1C. 

  • Personal - ak'haonte ea hau ea mohiruoa. E entsoe ka thoko 'me e na le sebaka sa eona sa ho kena le moralo o arohaneng.

  • fs - morero oa ho amohela static. Hamorao re ile ra tloha ho eona, ra tsamaisa litaba tsohle tse tsitsitseng ho Akamai CDN. 

Li-blocks tse setseng li ne li le ka har'a kopo ea BackOffice. 

Nalane ea Dodo IS Architecture: Monolith ea Pele

Tlhaloso ea mabitso:

  • Cashier - Tafole ea chelete ea Reschorenteng.

  • ShiftManager - li-interfaces bakeng sa karolo ea "Shift Manager": lipalo-palo tsa ts'ebetso ea thekiso ea pizzeria, bokhoni ba ho beha lihlahisoa lethathamong la ho emisa, ho fetola odara.

  • OfficeManager - lihokelo tsa mesebetsi ea "Pizzeria Manager" le "Franchisee". Mona o ka fumana mesebetsi ea ho theha pizzeria, lipapatso tsa bonase, ho amohela le ho sebetsa le basebetsi, le litlaleho.

  • PublicScreens - likhokahano tsa li-TV le matlapa a leketlileng ka har'a li-pizzeria. Lithelevishene li bonts'a lenane, tlhahisoleseding ea papatso, le boemo ba ho laela ha ho tsamaisoa. 

Ba ne ba sebelisa lera le tloaelehileng la tšebeletso, sebaka se tloaelehileng sa lihlopha tsa Dodo.Core, le setsi se tloaelehileng. Ka linako tse ling ba ne ba ntse ba ka tsamaisana ka liphasejeng. Ho phaella moo, libaka tsa batho ka bomong, tse kang dodopizza.ru kapa personal.dodopizza.ru, le tsona li fumane litšebeletso tse tloaelehileng.

Ha li-module tse ncha li hlaha, re ile ra leka ho sebelisa hape ka hohle kamoo ho ka khonehang khoutu e seng e entsoe bakeng sa lits'ebeletso, mekhoa e bolokiloeng le litafole sebakeng sa polokelo ea litaba. 

Bakeng sa kutloisiso e betere ea boholo ba li-module tse entsoeng tsamaisong, mona ke setšoantšo sa 2012 se nang le merero ea nts'etsopele:

Nalane ea Dodo IS Architecture: Monolith ea Pele

Ka 2015, ntho e 'ngoe le e' ngoe e ne e le tseleng 'me le ho feta e ne e le tlhahiso.

  • Kamohelo ea odara e se e holile ho ba boloko bo arohaneng ba Setsi sa Kopano, moo taelo e amoheloang ke opareitara.

  • Lits'oants'o tsa sechaba tse nang le menyetla le tlhaiso-leseling li hlahile libakeng tsa pizzeria.

  • Kichine e na le mojule o bapalang molaetsa oa lentsoe "Pizza e Ncha" ka bo eona ha odara e ncha e fihla, hape e hatisa invoice bakeng sa motho ea tsamaisang melaetsa. Sena se nolofatsa haholo lits'ebetso ka kichineng mme se lumella basebetsi hore ba se ke ba sitisoa ke palo e kholo ea ts'ebetso e bonolo.

  • Sebaka sa ho tsamaisa thepa se ile sa fetoha Delivery Cashier e arohaneng, moo taelo e ileng ea fuoa motho ea tsamaisang melaetsa, eo pele a neng a nkile mosebetsi oa hae. Lihora tsa hae tsa ho sebetsa li ile tsa hlokomeloa ha ho baloa moputso oa hae. 

Ka mokhoa o ts'oanang, ho tloha 2012 ho isa 2015, ho ile ha hlaha baetsi ba fetang 10, li-pizzeria tse 35 li ile tsa buloa, tsamaiso e ile ea romeloa Romania 'me ea lokisetsoa ho buloa ha lintlha USA. Bahlahisi ba ne ba se ba sa kopanele mesebetsing eohle, empa ba arotsoe ka lihlopha. e 'ngoe le e' ngoe e ikhethile ka karolo ea eona ea sistimi. 

Mathata

Ho kenyeletsoa ka lebaka la meralo (empa eseng feela).

Moferefere motheong

Setsi se le seng se loketse. Hoa khoneha ho finyella botsitso, 'me ka litšenyehelo tsa lisebelisoa tse hahiloeng ho li-database tsa likamano. Ho sebetsa le eona ho tloaelehile ebile ho bonolo, haholo haeba ho na le litafole tse fokolang le data e nyane.

Empa ka lilemo tse 4 tsa nts'etsopele, database e ne e na le litafole tse ka bang 600, lits'ebetso tse bolokiloeng tse 1500, tseo bongata ba tsona li neng li e-na le mabaka. Ka bomalimabe, mekhoa e bolokiloeng ha e fane ka molemo o moholo ha o sebetsa le MySQL. Ha li bolokoe ke database, 'me ho boloka logic ho tsona ho thatafatsa nts'etsopele le ho lokisa liphoso. Ho sebelisa khoutu hape ho thata.

Litafole tse ngata li ne li se na li-index tse loketseng, kae-kae, ho fapana le hoo, ho ne ho e-na le li-index tse ngata, tse ileng tsa etsa hore ho kenya ho be thata. Litafole tse ka bang 20 li ile tsa tlameha ho fetoloa - khoebo ea ho theha odara e ka nka metsotsoana e 3-5. 

Lintlha tse litafoleng e ne e se kamehla li leng ka mokhoa o nepahetseng ka ho fetisisa. Kae-kae ho ne ho hlokahala ho etsa denormalization. Lintlha tse ling tse amoheloang khafetsa li ne li le kholomong ka sebopeho sa XML, se neng se eketsa nako ea ts'ebetso, lipotso tse telele le nts'etsopele e rarahaneng.

Litafole tse tšoanang li ne li laoloa haholo likopo tse fapaneng. Litafole tse tummeng, joalo ka tafole e boletsoeng ka holimo, li ile tsa ameha ka ho khetheha ditaelo kapa litafole Lebenkele la li-pizza. Li ne li sebelisetsoa ho bonts'a li-interfaces tsa ts'ebetso ka kichineng le li-analytics. Sebaka sena se ile sa boela sa ikopanya le bona (dopizza.ru), moo likopo tse ngata li neng li ka fihla ka tšohanyetso nako efe kapa efe. 

Lintlha ha lia kopanngoa 'me lipalo tse ngata li etsahetse ka fofa ho sebelisa setsi. Sena se ile sa etsa lipalo tse sa hlokahaleng le mojaro o eketsehileng. 

Hangata khoutu e ne e kena polokelong ea polokelo ha e ka be e sa etsa joalo. Kae-kae ho ne ho e-na le khaello ea mesebetsi e mengata, kae-kae ho ne ho tla hlokahala ho arola kopo e le 'ngoe ho tse' maloa ka khoutu e le ho potlakisa le ho eketsa botšepehi. 

Momahano le Pherekano ho Khoutu

Li-module tse neng li lokela ho ikarabella bakeng sa karolo ea bona ea khoebo ha lia ka tsa e etsa ka botšepehi. Tse ling tsa tsona li ne li e-na le likopi tsa mesebetsi bakeng sa likarolo. Mohlala, morekisi oa lehae ea ikarabellang bakeng sa papatso ea marang-rang motseng oa habo o ile a tlameha ho sebelisa sebopeho sa "Admin" (ho theha lipapatso) le "Office Manager" (ho bona phello ea lipapatso ho khoebo). Ha e le hantle, ka hare ho li-module ka bobeli ho ne ho sebelisoa tšebeletso e tšoanang, e neng e sebetsa le lipapatso tsa bonase.

Litšebeletso (lihlopha ka har'a morero o le mong o moholo oa monolithic) li ka bitsana ho ntlafatsa lintlha tsa bona.

Ka litlelase tsa mohlala ka botsona tse bolokang data, mosebetsi ka khoutu e ne e etsoa ka tsela e fapaneng. Kae-kae ho ne ho e-na le lihahi tseo ka tsona u neng u ka bolela libaka tse hlokahalang. Kae-kae sena se ne se etsoa ka thepa ea sechaba. Ehlile, ho fumana le ho fetola data ho tsoa ho database ho ne ho fapane. 

Maikutlo a ne a le balaoli kapa lihlopha tsa litšebeletso. 

Tsena li bonahala eka ke mathata a manyane, empa li ile tsa liehisa nts'etsopele le ho fokotsa boleng, e leng se lebisang ho se tsitseng le liphoso. 

Ho rarahana ha ntshetsopele e kgolo

Mathata a ile a hlaha tsoelopeleng ka boeona. Ho ne ho hlokahala ho theha li-blocks tse fapaneng tsa sistimi, 'me ka ho ts'oana. Ho ile ha e-ba thata le ho feta ho kopanya litlhoko tsa karolo ka 'ngoe hore e be khoutu e le 'ngoe. Ho ne ho se bonolo ho lumellana le ho khahlisa likarolo tsohle ka nako e le 'ngoe. Ho phaella ho sena ho ne ho e-na le mefokolo ea theknoloji, haholo-holo mabapi le motheo le pele. Ho ne ho hlokahala ho lahla JQuery molemong oa meralo ea maemo a holimo, haholoholo mabapi le lits'ebeletso tsa bareki (webosaete).

Likarolo tse ling tsa sistimi li ka sebelisa li-database tse loketseng sena. Mohlala, hamorao re bile le mohlala oa ho tloha Redis ho ea CosmosDB ho boloka kariki ea odara. 

Lihlopha le bahlahisi ba sebetsang sebakeng sa bona ho hlakile hore ba ne ba batla boipuso bo eketsehileng bakeng sa lits'ebeletso tsa bona, ka bobeli mabapi le nts'etsopele le ho phatlalatsoa. Likhohlano nakong ea ho kopanya, mathata nakong ea ho lokolloa. Haeba ho bahlahisi ba 5 bothata bona bo se na thuso, joale ka 10, le ho feta ka kholo e reriloeng, ntho e 'ngoe le e' ngoe e tla ba e tebileng haholoanyane. Mme se neng se tla tla ke nts'etsopele ea sesebelisoa sa mohala (e qalile ka 2017, mme ka 2018 ho bile le ho wela ho hoholo). 

Likarolo tse fapaneng tsa tsamaiso li ne li hloka matšoao a fapaneng a botsitso, empa ka lebaka la khokahanyo e matla ea tsamaiso, ha rea ​​ka ra fana ka sena. Phoso ha ho etsoa ts'ebetso e ncha ho phanele ea admin e ka be e entse hore ho amoheloe tatellano setšeng, hobane khoutu e tloaelehile ebile e ka sebelisoa hape, database le data li ts'oana.

Mohlomong ho ka khoneha ho qoba liphoso le mathata ana ka har'a moralo oa mohaho o joalo oa monolithic-modular: ho theha karohano ea boikarabelo, refactor ka bobeli khoutu le database, ka ho hlaka likarolo tse arohaneng ho tloha ho tse ling, le ho shebella boleng letsatsi le leng le le leng. Empa litharollo tse khethiloeng tsa meralo le ho tsepamisa maikutlo ho atoloseng ka potlako ts'ebetso ea sistimi ho lebisitse mathateng litabeng tsa botsitso.

Kamoo blog Power of Mind e behang lirekoto tsa chelete lireschorenteng

Haeba kholo ea marang-rang ea pizzeria (le mojaro) e ne e tsoela pele ka lebelo le le leng, joale ka mor'a nakoana marotholi a ne a tla ba joalo hoo tsamaiso e ke keng ea hlaphoheloa. Pale e latelang e bontša hantle mathata ao re qalileng ho tobana le ona ka 2015. 

Ka blog "Matla a kelello"Ho ne ho e-na le widget e bontšang data ea chelete bakeng sa selemo bakeng sa marang-rang kaofela. Widget e fihlile ho Dodo API ea sechaba, e fanang ka data ena. Lipalopalo tsena li se li fumaneha ho http://dodopizzastory.com/. Widget e ne e bontšoa leqepheng le leng le le leng 'me e etsa likopo ka sebali metsotsoana e meng le e meng e 20. Kopo e ile ea ea ho api.dodopizza.ru mme ea botsa:

  • palo ea li-pizzerias marang-rang;

  • kakaretso ea chelete ea marang-rang ho tloha qalong ea selemo;

  • chelete ea kajeno.

Kopo ea lipalo-palo tsa lekeno e ile ea ea ka kotloloho polokelong ea litaba mme ea qala ho kopa data ka litaelo, ea kopanya data ka kotloloho ho fofa le ho fana ka chelete eo. 

Lirekoto tsa chelete lireschorenteng li ile tsa ea tafoleng e le 'ngoe ea liodara, tsa kenya lethathamo la liodara tse amoheloang kajeno,' me ho ile ha eketsoa litaelo tse ncha ho eona. Litokomane tsa chelete li ile tsa etsa likopo tsa tsona metsotsoana e meng le e meng e 5 kapa ha leqephe le nchafatsoa.

Setšoantšo se ne se shebahala tjena:

Nalane ea Dodo IS Architecture: Monolith ea Pele

Ka letsatsi le leng hoetla, Fyodor Ovchinnikov o ile a ngola sehlooho se selelele le se tummeng ho blog ea hae. Batho ba bangata ba ile ba tla ho blog mme ba qala ho bala ntho e 'ngoe le e' ngoe ka hloko. Ha e mong le e mong oa batho ba tlileng a ntse a bala sengoloa, widget ea chelete e sebetsa hantle mme e kopa API metsotsoana e meng le e meng ea 20.

API e bitsitse mokhoa o bolokiloeng oa ho bala palo ea litaelo tsohle ho tloha qalong ea selemo bakeng sa li-pizzeria tsohle tse marang-rang. Kakaretso e ne e thehiloe tafoleng ea litaelo, e tsebahalang haholo. Lirekoto tsohle tsa chelete tsa lireschorente tsohle tse bulehileng ka nako eo li ea ho eona. Lichelete li ile tsa khaotsa ho arabela 'me litaelo ha lia ka tsa amoheloa. Li ne li boetse li sa amoheloe setšeng, ha lia ka tsa hlaha ho tracker, mme mookameli oa ts'ebetso o ne a sa li bone sebopehong sa hae. 

Ena hase eona feela pale. Ka hoetla ha 2015, Labohlano le leng le le leng mojaro oa tsamaiso o ne o le boima. Ka makhetlo a 'maloa re ile ra tima API ea sechaba, 'me hang re ile ra tlameha ho tima sebaka sena hobane ho ne ho se letho le thusang. Ho ne ho bile ho e-na le lethathamo la litšebeletso tse nang le taelo ea ho koala tlas'a meroalo e boima.

Ho tloha nakong ena ho ea pele, ntoa ea rona le meroalo le bakeng sa botsitso ba tsamaiso e qala (ho tloha ka hoetla 2015 ho fihlela hoetla 2018). Ke ha e etsahetse"Ho Wa ho Hoholo" Ho feta moo, ka linako tse ling ho ne ho boetse ho e-na le liphoso, tseo tse ling tsa tsona li neng li le hlokolosi haholo, empa nako e akaretsang ea ho hloka botsitso e ka nkoa e felile.

Khōlo e potlakileng ea khoebo

Ke hobane'ng ha e ke ke ea "etsahala hantle hang-hang"? Sheba feela li-graph tse latelang.

Nalane ea Dodo IS Architecture: Monolith ea Pele

Hape ho 2014-2015 ho ne ho e-na le ho buloa Romania 'me ho ne ho lokisetsoa ho buloa USA.

Ketane e ile ea hola ka potlako, linaha tse ncha tsa buloa, ho ile ha hlaha mefuta e mecha ea li-pizzeria, mohlala, pizzeria e ile ea buloa lebaleng la lijo. Sena sohle se ne se hloka tlhokomelo ea bohlokoa ka ho khetheha ho atoloseng mesebetsi ea Dodo IS. Ntle le mesebetsi ena kaofela, ntle le ho latela ka kichineng, ho ikarabella bakeng sa lihlahisoa le tahlehelo ka har'a sistimi, ho bonts'a phano ea litaelo ka holong ea lekhotla la lijo, ha ho na monyetla oa hore joale re ka bua ka meaho e "nepahetseng" le "e nepahetseng". ” katamelo ea ntlafatso.

Tšitiso e 'ngoe ea ntlafatso e nakong ea meralo le tlhokomelo e akaretsang mathateng a tekheniki e bile koluoa ​​​​ea 2014. Lintho tse joalo li senya menyetla ea kholo ea lihlopha, haholo-holo bakeng sa khoebo e nyenyane e kang Dodo Pizza.

Litharollo tse potlakileng tse thusitseng

Mathata a ne a hloka tharollo. Ka tloaelo, litharollo li ka aroloa ka lihlopha tse 2:

  • Tse potlakileng tse timang mollo le ho re fa sebaka se senyenyane sa polokeho le ho re rekela nako ea ho fetoha.

  • Systemic 'me, ka hona, nako e telele. Ho nchafatsa li-module tse 'maloa, ho arola meaho ea monolithic ka lits'ebeletso tse arohaneng (boholo ba tsona ha se tse nyane, empa ke lits'ebeletso tse kholo, mme ho na le tse ling ka sena. tlaleho ea Andrey Morevsky). 

Lenane le omileng la liphetoho tse potlakileng ke:

Eketsa base master

Ha e le hantle, ntho ea pele e etsoang ho loantša mojaro ke ho eketsa matla a seva. Sena se ile sa etsoa bakeng sa database ea master le li-server tsa webo. Oho, sena se ka khoneha feela ho fihlela moeli o itseng; ho feta moo e ba theko e boima haholo.

Ho tloha ka 2014, re falletse Azure; hape re ngotse ka taba ena ka nako eo sengolong "Joang Dodo Pizza e tsamaisa pizza e sebelisa leru la Microsoft Azure" Empa ka mor'a hore letoto la seva le eketsehe, litšenyehelo tsa setsi li fihlile moeling. 

Database replicas bakeng sa ho bala

Re entse likopi tse peli tsa motheo:

BalaReplica bakeng sa likopo tsa directory. E sebelisetsoa ho bala li-directory, joalo ka toropo, seterata, pizzeria, lihlahisoa (setereke se fetotsoeng butle), le lihokelong tseo tieho e nyane e amohelehang. Ho ne ho e-na le 2 ea likopi tsena, re ile ra netefatsa hore li fumaneha ka tsela e tšoanang le ea monghali.

ReadReplica bakeng sa likopo tsa tlaleho. Sebaka sena sa polokelo ea boitsebiso se ne se fumaneha ka tlaase, empa litlaleho tsohle li ile tsa ea ho sona. Ba kanna ba ba le likopo tse boima bakeng sa lipalo tse kholo tsa data, empa ha li ame database ea mantlha le li-interfaces tsa ts'ebetso. 

Cache ka khoutu

Ho ne ho se na li-cache kae kapa kae khoutu (ho hang). Sena se ile sa lebisa ho likopo tse eketsehileng, eseng kamehla tse hlokahalang, ho database e kentsoeng. Qalong, li-cache li ne li le mohopolong le ts'ebeletso ea cache ea kantle, e ne e le Redis. Ntho e 'ngoe le e' ngoe e ne e sa sebetse ka nako, litlhophiso li ne li hlalositsoe khoutu.

Li-server tse ngata bakeng sa backend

Karolo e ka morao ea kopo le eona e ne e tlameha ho fokotsoa ho mamella meroalo e ntseng e eketseha. Ho ne ho hlokahala ho etsa sehlopha ho tsoa ho seva se le seng sa IIS. Re ile ra falla lenaneo la kopo ho tloha mohopolong ho RedisCache, e entseng hore ho khonehe ho theha li-server tse 'maloa ka mor'a tekanyo e bonolo ea mojaro e nang le robin e chitja. Qalong, Redis e tšoanang e ne e sebelisoa bakeng sa li-cache, ebe li aroloa ka tse 'maloa. 

Ka lebaka leo, mohaho o ile oa fetoha o rarahaneng haholoanyane ...

Nalane ea Dodo IS Architecture: Monolith ea Pele

... empa tsitsipano e 'ngoe e ile ea kokobela.

'Me joale ho ne ho hlokahala ho tsosolosa likarolo tse jereng, e leng seo re ileng ra se nka. Re tla bua ka sena karolong e latelang.

Source: www.habr.com

Eketsa ka tlhaloso