Mbiri ya Dodo IS Architecture: An Early Monolith

Kapena kampani iliyonse yosasangalala yokhala ndi monolith imakhala yosasangalala mwanjira yake.

Kukula kwa dongosolo la Dodo IS kudayamba nthawi yomweyo, monga bizinesi ya Dodo Pizza, mu 2011. Zinakhazikitsidwa pa lingaliro lathunthu komanso kusungitsa ma digito pamabizinesi, ndi paokha, zomwe ngakhale mu 2011 zinayambitsa mafunso ambiri ndi kukayikira. Koma kwa zaka 9 tsopano takhala tikutsatira njira iyi - ndi chitukuko chathu chomwe chinayamba ndi monolith.

Nkhaniyi ndi "yankho" ku mafunso "Chifukwa chiyani mulembenso zomangamanga ndikupanga kusintha kwakukulu komanso kwanthawi yayitali?" kubwerera ku nkhani yapita "Mbiri ya Dodo IS Architecture: The Way of the Back Office". Ndiyamba ndi momwe chitukuko cha Dodo IS chinayambira, momwe zomangamanga zoyambira zimawonekera, momwe ma module atsopano adawonekera, komanso chifukwa cha zovuta zomwe kusintha kwakukulu kunayenera kupangidwa.

Mbiri ya Dodo IS Architecture: An Early Monolith

Mndandanda wa zolemba "Dodo IS?" akutiuza za:

  1. Monolith oyambirira ku Dodo IS (2011-2015). (muli pano)

  2. Njira Yobwerera Kuofesi: Mabasi Osiyana ndi Mabasi.

  3. Njira yamakasitomala: facade pamwamba pa maziko (2016-2017). (Zili mkati...)

  4. Mbiri ya ma microservices enieni. (2018-2019). (Zili mkati...)

  5. Anamaliza macheka a monolith ndi kukhazikika kwa zomangamanga. (Zili mkati...)

Zomangamanga zoyambirira

Mu 2011, zomangamanga za Dodo IS zinkawoneka motere:

Mbiri ya Dodo IS Architecture: An Early Monolith

Gawo loyamba muzomangamanga ndikuvomereza dongosolo. Ndondomeko ya bizinesi inali:

  • kasitomala amatcha pizzeria;

  • bwana akutenga foni;

  • amavomereza kuyitanitsa pafoni;

  • imadzaza mofanana ndi mawonekedwe ovomerezeka a dongosolo: imaganizira zambiri za kasitomala, deta pazambiri, adilesi yobweretsera. 

Mawonekedwe a dongosolo lazidziwitso adawoneka motere ...

Mtundu woyamba kuchokera mu Okutobala 2011:

Zinasintha pang'ono mu Januwale 2012

Dodo Pizza Information System Delivery Restaurant Malo Odyera a Pizza

Zothandizira pakukulitsa gawo loyamba lotenga gawo zinali zochepa. Tinayenera kuchita zambiri, mwachangu komanso ndi gulu laling'ono. Gulu laling'ono ndi opanga 2 omwe adayika maziko a dongosolo lonse lamtsogolo.

Lingaliro lawo loyamba lidatsimikizira tsogolo la tekinoloje:

  • Backend pa ASP.NET MVC, C # chinenero. Madivelopa anali dotnetchiki, stack iyi inali yodziwika bwino komanso yosangalatsa kwa iwo.

  • Frontend pa Bootstrap ndi JQuery: mawonekedwe a ogwiritsa ntchito pamasitayelo odzilemba okha ndi zolemba. 

  • MySQL database: palibe ndalama zalayisensi, yosavuta kugwiritsa ntchito.

  • Ma seva pa Windows Server, chifukwa .NET ndiye atha kukhala pansi pa Windows (sitidzakambirana za Mono).

Mwathupi, zonsezi zidafotokozedwa mu "dedic at the hoster". 

Order Intake Application Architecture

Ndiye aliyense anali kale kulankhula za microservices, ndi SOA ntchito ntchito zazikulu zaka 5, mwachitsanzo, WCF linatulutsidwa mu 2006. Koma kenako adasankha njira yodalirika komanso yotsimikiziridwa.

Nachi.

Mbiri ya Dodo IS Architecture: An Early Monolith

Asp.Net MVC ndi Razor, yomwe, ikafunsidwa kuchokera ku fomu kapena kuchokera kwa kasitomala, imapereka tsamba la HTML lomwe lili ndi seva. Pa kasitomala, zolemba za CSS ndi JS zikuwonetsa kale zambiri ndipo, ngati kuli kofunikira, chitani zopempha za AJAX kudzera pa JQuery.

Zopempha pa seva zimathera m'makalasi a * Controller, kumene kukonza ndi kupanga tsamba lomaliza la HTML kumachitika mu njira. Oyang'anira amapanga zopempha pamndandanda wamalingaliro otchedwa *Services. Utumiki uliwonse unkafanana ndi mbali ina ya bizinesi:

  • Mwachitsanzo, DepartmentStructureService idapereka zambiri zama pizzeria, pamadipatimenti. Dipatimenti ndi gulu la pizzeria zomwe zimayendetsedwa ndi franchisee m'modzi.

  • ReceivingOrdersService idavomera ndikuwerengetsa momwe maoda.

  • Ndipo SmsService idatumiza SMS poyimba ma API kuti atumize SMS.

Services adakonza data kuchokera munkhokwe, malingaliro osungidwa abizinesi. Utumiki uliwonse unali ndi *Nkhokwe imodzi kapena zingapo zokhala ndi dzina loyenerera. Iwo anali kale ndi mafunso osungidwa mu nkhokwe ndi gulu la mamapu. Panali malingaliro abizinesi muzosungirako, makamaka zambiri mwazomwe zidapereka lipoti. ORM sinagwiritsidwe ntchito, aliyense adadalira sql yolembedwa pamanja. 

Panalinso gawo lachitsanzo cha domain ndi makalasi othandizira wamba, mwachitsanzo, kalasi ya Order yomwe idasunga dongosolo. Pamalo omwewo, mu wosanjikiza, panali wothandizira kusintha malemba owonetsera malinga ndi ndalama zosankhidwa.

Zonsezi zikhoza kuimiridwa ndi chitsanzo chotere:

Mbiri ya Dodo IS Architecture: An Early Monolith

Order Way

Ganizirani njira yoyambira yosavuta yopangira dongosolo lotere.

Mbiri ya Dodo IS Architecture: An Early Monolith

Poyamba, tsambalo linali lokhazikika. Zinali ndi mitengo pa izo, ndipo pamwamba - nambala ya foni ndi zolembedwa "Ngati mukufuna pizza - itanani nambala ndi dongosolo." Kuti tichite zimenezi, tiyenera kutsatira njira yosavuta: 

  • Wogula amayendera malo osasunthika ndi mitengo, amasankha malonda ndikuyimba nambala yomwe ili patsamba.

  • Makasitomala amatchula zinthu zomwe akufuna kuwonjezera pakupanga.

  • Amapereka adilesi yake ndi dzina lake.

  • Wogwira ntchitoyo amavomereza dongosolo.

  • Dongosolo likuwonetsedwa mu mawonekedwe ovomerezeka ovomerezeka.

Zonse zimayamba ndikuwonetsa menyu. Wogwiritsa ntchito wolowera amavomereza kuyitanitsa kamodzi kokha. Chifukwa chake, ngolo yolembera imatha kusungidwa mu gawo lake (gawo la wogwiritsa ntchito limasungidwa kukumbukira). Pali chinthu cha Ngolo chomwe chili ndi zinthu komanso zambiri zamakasitomala.

Wogula amatchula chinthucho, woyendetsa amadina + pafupi ndi malonda, ndipo pempho limatumizidwa kwa seva. Zambiri zokhudzana ndi malonda zimatulutsidwa kuchokera ku database ndipo zambiri zamalonda zimawonjezedwa m'ngolo.

Mbiri ya Dodo IS Architecture: An Early Monolith

ndemanga. Inde, apa simungathe kukoka malonda kuchokera ku database, koma kusamutsa kuchokera kutsogolo. Koma kuti zimveke bwino, ndidawonetsa ndendende njira yochokera ku database. 

Kenako, lowetsani adilesi ndi dzina la kasitomala. 

Mbiri ya Dodo IS Architecture: An Early Monolith

Mukadina "Pangani Order":

  • Pempho latumizidwa ku OrderController.SaveOrder().

  • Timapeza Ngolo kuchokera ku gawoli, pali zinthu zomwe timafunikira.

  • Timawonjezera Ngoloyo ndi zambiri za kasitomala ndikuzipereka ku njira ya AddOrder ya kalasi ya ReceivingOrderService, komwe imasungidwa ku database. 

  • Nawonso database ili ndi matebulo okhala ndi dongosolo, kapangidwe ka dongosolo, kasitomala, ndipo onse amalumikizidwa.

  • Mawonekedwe owonetsera amapita ndikutulutsa madongosolo aposachedwa ndikuwawonetsa.

Ma module atsopano

Kutenga dongosolo kunali kofunika komanso kofunikira. Simungachite bizinesi ya pizza ngati mulibe oda kuti mugulitse. Choncho, dongosolo anayamba kupeza magwiridwe antchito - pafupifupi 2012 mpaka 2015. Panthawiyi, midadada yambiri yosiyanasiyana ya dongosolo idawonekera, yomwe ndidzayitcha ma modules, mosiyana ndi lingaliro la utumiki kapena mankhwala. 

Module ndi gulu la ntchito zomwe zimagwirizanitsidwa ndi cholinga china chabizinesi. Panthawi imodzimodziyo, iwo ali mwakuthupi mu ntchito yofanana.

Ma modules amatha kutchedwa ma block block. Mwachitsanzo, iyi ndi gawo la malipoti, mawonekedwe a admin, chakudya tracker kukhitchini, chilolezo. Izi ndi mawonekedwe osiyanasiyana ogwiritsa ntchito, ena amakhala ndi mawonekedwe osiyanasiyana. Panthawi imodzimodziyo, chirichonse chiri mkati mwa dongosolo la ntchito imodzi, ndondomeko imodzi yothamanga. 

Mwaukadaulo, ma module adapangidwa ngati Dera (lingaliro lotere lidakhalabe momwemo asp.net core). Panali mafayilo osiyana a frontend, zitsanzo, komanso makalasi awo olamulira. Zotsatira zake, dongosololi linasinthidwa kuchokera ku ...

Mbiri ya Dodo IS Architecture: An Early Monolith

... mu izi:

Mbiri ya Dodo IS Architecture: An Early Monolith

Ma modules ena amakhazikitsidwa ndi masamba osiyana (projekiti yotheka), chifukwa cha magwiridwe antchito osiyana ndipo mwina chifukwa cha chitukuko chosiyana, chokhazikika kwambiri. Izi:

  • Site - Baibulo loyamba site dopizza.ru.

  • Tumizani: kukweza malipoti kuchokera ku Dodo IS a 1C. 

  • Personal - akaunti yamunthu wantchito. Idapangidwa padera ndipo ili ndi malo ake olowera komanso kapangidwe kake.

  • fs - projekiti yochititsa ma statics. Pambuyo pake tinachokapo, ndikusuntha ma statics onse ku Akamai CDN. 

Ma block ena onse anali mu BackOffice application. 

Mbiri ya Dodo IS Architecture: An Early Monolith

Kufotokozera dzina:

  • Cashier - Cashier wodyera.

  • ShiftManager - mawonekedwe a gawo la "Shift Manager": ziwerengero zogwirira ntchito pazogulitsa za pizzeria, kuthekera koyika zinthu pamndandanda woyimitsa, sinthani dongosolo.

  • OfficeManager - mawonekedwe a "Pizzeria Manager" ndi "Franchisee". Pano pali ntchito zomwe zasonkhanitsidwa pokhazikitsa pizzeria, kukwezedwa kwa bonasi, kulandira ndi kugwira ntchito ndi antchito, malipoti.

  • PublicScreens - mawonekedwe a TV ndi mapiritsi atapachikidwa mu pizzerias. Ma TV amawonetsa mindandanda yazakudya, zidziwitso zotsatsa, kuyitanitsa pakubweretsa. 

Anagwiritsa ntchito wosanjikiza wamba, malo wamba a Dodo.Core domain class, ndi maziko wamba. Nthawi zina amatha kutsogolera kusinthana wina ndi mnzake. Kuphatikizirapo malo amodzi, monga dodopizza.ru kapena personal.dodopizza.ru, adapita kuzinthu zonse.

Pamene ma modules atsopano adawonekera, tinayesera kugwiritsanso ntchito ndondomeko zomwe zapangidwa kale, ndondomeko zosungidwa ndi matebulo mu database mpaka pamlingo waukulu. 

Kuti mumvetse bwino kukula kwa ma module opangidwa mu dongosololi, nachi chithunzi cha 2012 chokhala ndi mapulani achitukuko:

Mbiri ya Dodo IS Architecture: An Early Monolith

Pofika chaka cha 2015, zonse zinali pamapu ndipo zina zambiri zidapangidwa.

  • Kuvomereza madongosolo kwakula kukhala gawo losiyana la Contact Center, pomwe dongosolo limavomerezedwa ndi woyendetsa.

  • Panali zowonetsera pagulu zokhala ndi mindandanda yazakudya ndi zidziwitso zopachikidwa muzakudya za pizzeria.

  • Khitchini ili ndi gawo lomwe limangoyimba uthenga wa mawu "Pizza Yatsopano" pomwe dongosolo latsopano lifika, komanso kusindikiza ma invoice kwa wotumiza. Izi zimachepetsa kwambiri njira mukhitchini, zimalola antchito kuti asasokonezedwe ndi ntchito zambiri zosavuta.

  • Chigawo chotumizira chinakhala chosiyana ndi Delivery Checkout, pomwe lamuloli linaperekedwa kwa mthenga yemwe adatengapo kale. Nthawi yake yogwira ntchito idaganiziridwa powerengera malipiro. 

Mofananamo, kuyambira 2012 mpaka 2015, opanga oposa 10 adawonekera, ma pizzeria 35 adatsegulidwa, adatumiza dongosolo ku Romania ndikukonzekera kutsegulidwa kwa malo ogulitsa ku United States. Madivelopa sanagwirenso ntchito zonse, koma adagawidwa m'magulu. lililonse lili ndi gawo lake la dongosolo. 

Mavuto

Kuphatikizapo chifukwa cha zomangamanga (koma osati).

Chisokonezo m'munsi

M'munsi umodzi ndiwothandiza. Kusasinthika kungathe kupezedwa mmenemo, komanso kuwonongera zida zomwe zimapangidwa muzosungirako zaubale. Kugwira ntchito ndi izo ndizodziwika bwino komanso zosavuta, makamaka ngati pali matebulo ochepa komanso deta yochepa.

Koma pazaka 4 zachitukuko, nkhokweyo idakhala ndi matebulo pafupifupi 600, njira zosungidwa 1500, zambiri zomwe zinali ndi malingaliro. Tsoka ilo, njira zosungidwa sizibweretsa phindu lalikulu mukamagwira ntchito ndi MySQL. Sanasungidwe ndi maziko, ndipo kusunga logic mwa iwo kumapangitsa kuti chitukuko ndi kukonzanso. Kugwiritsanso ntchito ma code ndikovuta.

Matebulo ambiri analibe zolozera zoyenera, kwinakwake, mosiyana, panali zolemba zambiri, zomwe zinapangitsa kuti zikhale zovuta kuziyika. Zinali zofunikira kusintha magome 20 - kugulitsa kupanga dongosolo kungatenge masekondi 3-5. 

Zomwe zili m'matebulo sizinali zoyenera nthawi zonse. Penapake kunali koyenera kuchita denormalisation. Zina mwazinthu zomwe zimalandiridwa pafupipafupi zinali mumndandanda wamtundu wa XML, izi zidawonjezera nthawi yoperekera, kukulitsa mafunso ndikupangitsa kuti chitukuko chikhale chovuta.

Ku matebulo omwewo adapangidwa kwambiri zopempha zosiyanasiyana. Magome otchuka anavutika makamaka, monga tebulo tatchulazi. madongosolo kapena matebulo Malo ogulitsira pizza. Amagwiritsidwa ntchito kuwonetsa mawonekedwe ogwirira ntchito kukhitchini, ma analytics. Tsamba lina lidalumikizana nawo (dopizza.ru), pomwe nthawi iliyonse zopempha zambiri zitha kubwera mwadzidzidzi. 

Zambiri sizinaphatikizidwe ndipo mawerengedwe ambiri anachitika pa ntchentche pogwiritsa ntchito maziko. Izi zidapanga mawerengedwe osafunikira komanso katundu wowonjezera. 

Nthawi zambiri code idapita ku database pomwe sizikadatha kutero. Penapake panalibe ntchito zambiri zokwanira, kwinakwake kukanakhala kofunikira kufalitsa pempho limodzi kukhala angapo kudzera mu code kuti mufulumizitse ndi kuonjezera kudalirika. 

Kulumikizana ndi kusokoneza mu code

Ma module omwe amayenera kukhala ndi udindo pa gawo lawo la bizinesi sanachite moona mtima. Ena mwa iwo anali ndi ntchito zobwerezabwereza za maudindo. Mwachitsanzo, wamalonda wakumaloko yemwe amayang'anira ntchito zotsatsa pa netiweki mumzinda wake adayenera kugwiritsa ntchito mawonekedwe a "Admin" (kuti apange zotsatsa) ndi mawonekedwe a "Office Manager" (kuti awone momwe kukwezera malonda kukhudzidwira). Zachidziwikire, mkati mwa ma module onsewo munagwiritsa ntchito ntchito yomweyi yomwe imagwira ntchito ndi kukwezedwa kwa bonasi.

Ntchito (makalasi mkati mwa projekiti imodzi yayikulu ya monolithic) amatha kuyimbirana wina ndi mnzake kuti alemeretse deta yawo.

Ndi makalasi achitsanzo omwe amasunga deta, ntchito mu code inachitika mosiyana. Penapake panali omanga omwe anali kotheka kutchula magawo ofunikira. Penapake izi zidachitika kudzera mu katundu wa anthu. Zachidziwikire, kupeza ndikusintha deta kuchokera ku database kunali kosiyanasiyana. 

Zolingazo zinali mu olamulira kapena m'magulu a utumiki. 

Izi zikuwoneka ngati zazing'ono, koma zimachedwetsa kwambiri chitukuko ndikuchepetsa khalidwe, zomwe zimayambitsa kusakhazikika ndi ziphuphu. 

Kuvuta kwa chitukuko chachikulu

Zovuta zidayamba pakutukuka komweko. Zinali zofunikira kupanga midadada yosiyana ya dongosolo, komanso mofanana. Kuyika zofunikira za gawo lililonse mu code imodzi kunakhala kovuta kwambiri. Sizinali zophweka kuvomereza ndikukondweretsa zigawo zonse panthawi imodzi. Zowonjezera pa izi zinali zoperewera mu teknoloji, makamaka ponena za maziko ndi kutsogolo. Zinali zofunikira kusiya jQuery kupita kuzinthu zapamwamba, makamaka pokhudzana ndi ntchito zamakasitomala (tsamba lawebusayiti).

M'madera ena a dongosolo, nkhokwe zosungirako zoyenerera izi zingagwiritsidwe ntchito.. Mwachitsanzo, pambuyo pake tinali ndi vuto losamuka kuchokera ku Redis kupita ku CosmosDB kukasunga dengu laoda. 

Magulu ndi otukula omwe akuchita nawo gawo lawo amafuna kudziyimira pawokha pazantchito zawo, pokhudzana ndi chitukuko ndi kutulutsa. Gwirizanitsani mikangano, kumasula nkhani. Ngati kwa opanga 5 vutoli liri lochepa, ndiye kuti ndi 10, ndipo makamaka ndi kukula kokonzekera, chirichonse chidzakhala chachikulu kwambiri. Ndipo kutsogolo kunali kupangidwa kwa pulogalamu yam'manja (kunayamba mu 2017, ndipo mu 2018 kunali kugwa kwakukulu). 

Mbali zosiyanasiyana za dongosololi zinkafuna kuti pakhale bata, koma chifukwa cha kulumikizana mwamphamvu kwa dongosololi, sitinathe kupereka izi. Cholakwika pakupanga ntchito yatsopano mu gulu la admin chikhoza kuchitika pakuvomereza dongosolo patsambalo, chifukwa kachidindoko ndi kofala komanso kogwiritsidwanso ntchito, nkhokwe ndi data ndizofanana.

Zingakhale zotheka kupewa zolakwika ndi mavutowa mkati mwa zomangamanga za monolithic-modular: kupanga magawano a udindo, refactor onse code ndi database, momveka bwino kulekanitsa zigawo wina ndi mzake, kuwunika khalidwe tsiku lililonse. Koma mayankho osankhidwa a zomangamanga ndi kuyang'ana pa kukula kwachangu kwa machitidwe a dongosololi kunayambitsa mavuto ponena za bata.

Momwe Power of the Mind blog imayika zolembera ndalama m'malesitilanti

Ngati kukula kwa netiweki ya pizzeria (ndi katundu) kupitilira pa liwiro lomwelo, ndiye pakapita nthawi kugwa kudzakhala kotero kuti dongosolo silingawuke. Ikuwonetsa bwino mavuto omwe tidayamba kukumana nawo pofika 2015, nayi nkhani yotere. 

Mu blog "Mphamvu zamaganizidwe” inali widget yomwe imasonyeza deta pa ndalama za chaka cha intaneti yonse. Widget idafikira pa Dodo public API, yomwe imapereka izi. Chiwerengerochi chikupezeka pano http://dodopizzastory.com/. Widget idawonetsedwa patsamba lililonse ndikufunsira pa chowerengera masekondi 20 aliwonse. Pempholo lidapita ku api.dodopizza.ru ndikufunsa kuti:

  • kuchuluka kwa pizzeria pamaneti;

  • ndalama zonse zapaintaneti kuyambira chiyambi cha chaka;

  • ndalama za lero.

Pempho la ziwerengero pazachuma linapita molunjika ku database ndikuyamba kupempha deta pamaoda, kusonkhanitsa deta pa ntchentche ndikupereka ndalamazo. 

Madesiki a ndalama m'malesitilanti adapita patebulo lomwelo la maoda, ndikutsitsa mndandanda wamaoda omwe alandilidwa lero, ndipo maoda atsopano adawonjezedwa kwa iwo. Ma regista a ndalama adapanga zopempha zawo masekondi 5 aliwonse kapena kutsitsimutsa patsamba.

Chithunzicho chinkawoneka chonchi:

Mbiri ya Dodo IS Architecture: An Early Monolith

Kugwa kumodzi, Fyodor Ovchinnikov analemba nkhani yayitali komanso yotchuka pa blog yake. Anthu ambiri anabwera ku blog ndikuyamba kuwerenga zonse mosamala. Pomwe aliyense wa anthu omwe adabwera akuwerenga nkhaniyi, widget ya ndalama idagwira ntchito bwino ndikufunsa API masekondi 20 aliwonse.

API imatcha njira yosungidwa yowerengera kuchuluka kwa maoda onse kuyambira kuchiyambi kwa chaka kwa pizzerias zonse mu unyolo. Kuphatikizikako kudakhazikitsidwa patebulo lamadongosolo, lomwe ndi lotchuka kwambiri. Madesiki onse azandalama a malo odyera onse otseguka panthawiyo amapitako. Madesiki a ndalama adasiya kuyankha, malamulo sanavomerezedwe. Sanavomerezedwenso pamalowa, sanawonekere pa tracker, woyang'anira zosinthira samatha kuwawona pamawonekedwe ake. 

Iyi si nkhani yokha. Pofika kugwa kwa 2015, Lachisanu lililonse katundu pa dongosolo anali wovuta. Kangapo tidazimitsa API yapagulu, ndipo kamodzi, tidayenera kuzimitsa tsambalo, chifukwa palibe chomwe chidathandiza. Panali ngakhale mndandanda wa mautumiki okhala ndi dongosolo lotseka pansi pa katundu wolemetsa.

Kuyambira pano, kulimbana kwathu ndi katundu komanso kukhazikika kwa dongosolo kumayamba (kuyambira autumn 2015 mpaka autumn 2018). Ndi pamene zidachitika"kugwa kwakukulu". Komanso, zolephera nthawi zina zinkachitika, zina zinali zovuta kwambiri, koma nthawi yonse ya kusakhazikika ikhoza kuonedwa ngati yadutsa.

Kukula mwachangu kwabizinesi

Chifukwa chiyani sizikanatheka nthawi yomweyo? Tangoyang'anani ma chart otsatirawa.

Mbiri ya Dodo IS Architecture: An Early Monolith

Komanso mu 2014-2015 kunali kutsegulidwa ku Romania ndipo kutsegula ku USA kunali kukonzedwa.

Maukonde adakula mwachangu, maiko atsopano adatsegulidwa, mitundu yatsopano ya pizzeria idawonekera, mwachitsanzo, pabwalo lazakudya adatsegulidwa pizzeria. Zonsezi zimafuna chidwi chachikulu makamaka pakukulitsa ntchito za Dodo IS. Popanda ntchito zonsezi, popanda kutsatira kukhitchini, kuwerengera katundu ndi zotayika mu dongosolo, kuwonetsa kuperekedwa kwa lamulo mu holo ya khothi lazakudya, sitingakhale tikulankhula za "zolondola" zomangamanga ndi njira "yolondola" chitukuko tsopano.

Cholepheretsa china pakukonzanso kwanthawi yake kwa zomangamanga komanso chidwi chazovuta zaukadaulo chinali zovuta za 2014. Zinthu ngati izi zimagunda kwambiri mwayi woti magulu akule, makamaka kwa bizinesi yaying'ono ngati Dodo Pizza.

Mayankho Ofulumira Amene Anathandiza

Mavuto amafunikira njira zothetsera. Conventionally, mayankho akhoza kugawidwa m'magulu 2:

  • Ofulumira omwe amazimitsa moto ndikupereka malire ang'onoang'ono a chitetezo ndi kutigulira nthawi yosintha.

  • Zokhudza zonse, motero, zazitali. Kukonzanso ma module angapo, kugawidwa kwa zomangamanga za monolithic kukhala mautumiki osiyana (ambiri aiwo sali ang'onoang'ono, koma mautumiki akuluakulu, ndipo pali china chake pa izi. Lipoti la Andrey Morevskiy). 

Mndandanda wowuma wa zosintha mwachangu ndi motere:

Onjezani base master

Inde, chinthu choyamba chomwe chimachitidwa kuti athane ndi katundu ndikuwonjezera mphamvu ya seva. Izi zidachitika ku database yayikulu komanso ma seva apaintaneti. Tsoka, izi zimatheka mpaka malire ena, ndiye zimakhala zodula kwambiri.

Kuyambira 2014, tasamukira ku Azure, tidalembanso za mutuwu panthawiyo m'nkhani yakuti "Momwe Dodo Pizza Imaperekera Pizza Pogwiritsa Ntchito Microsoft Azure Cloud". Koma pambuyo pakuwonjezereka kwa seva pazida zoyambira, adabwera motsutsana ndi mtengowo. 

Zofanizira zoyambira zowerengera

Zofanizira ziwiri zidapangidwira mazikowo:

WerenganiReplica kwa zofunsira. Amagwiritsidwa ntchito powerenga maulalo, mtundu, mzinda, msewu, pizzeria, zinthu (zosinthidwa pang'onopang'ono), komanso m'malo omwe kuchedwa pang'ono ndikovomerezeka. Panali 2 mwa zofananirazi, tinatsimikizira kupezeka kwawo mofanana ndi ambuye.

ReadReplica for Report Requests. Nawonso databaseyi inali ndi kupezeka kochepa, koma malipoti onse adapitako. Aloleni iwo akhale ndi zopempha zolemera za kuwerengeranso kwakukulu kwa deta, koma sizimakhudza nkhokwe yaikulu ndi malo ogwirira ntchito. 

Caches mu kodi

Panalibe zosungira kulikonse mu code (konse). Izi zidapangitsa kuti pakhale zopempha zowonjezera, osati nthawi zonse, ku database yodzaza. Cache poyamba anali mu-memory komanso pa cache cache service, ameneyo anali Redis. Chilichonse chinali chosavomerezeka ndi nthawi, zoikamo zidafotokozedwa mu code.

Ma seva angapo akumbuyo

Kumbuyo kwa pulogalamuyo kunafunikiranso kukulitsidwa kuti kuthetsere kuchuluka kwa ntchito. Zinali zofunikira kupanga gulu kuchokera ku iis-server imodzi. Tasintha nthawi gawo lofunsira kuchokera kukumbukira kupita ku RedisCache, zomwe zidapangitsa kuti zitheke kupanga ma seva angapo kumbuyo kwa chojambulira chosavuta chokhala ndi robin yozungulira. Poyamba, Redis yemweyo adagwiritsidwa ntchito ngati cache, kenako adagawanika kukhala angapo. 

Zotsatira zake, zomangamanga zakhala zovuta kwambiri ...

Mbiri ya Dodo IS Architecture: An Early Monolith

…koma zina mwazovutazo zidachotsedwa.

Ndiyeno kunali koyenera kukonzanso zigawo zodzaza, zomwe tinapanga. Tikambirana izi mu gawo lotsatira.

Source: www.habr.com

Kuwonjezera ndemanga