Tantaran'ny Architecture Dodo IS: Monolith voalohany

Na ny orinasa rehetra tsy faly manana monolith dia tsy faly amin'ny fombany.

Nanomboka avy hatrany ny fampandrosoana ny rafitra Dodo IS, toy ny orinasa Dodo Pizza, tamin'ny taona 2011. Izany dia nifototra tamin'ny hevitra momba ny fanitarana feno sy tanteraka ny fizotran'ny raharaham-barotra, ary samirery, izay na dia tamin'ny 2011 aza dia niteraka fanontaniana sy fisalasalana maro. Saingy nandritra ny 9 taona izao dia nanaraka io lalana io izahay - miaraka amin'ny fivoarantsika manokana, izay nanomboka tamin'ny monolith.

Ity lahatsoratra ity dia "valiny" amin'ireo fanontaniana hoe "Nahoana no manoratra indray ny maritrano ary manao fiovana lehibe sy lava toy izany?" miverina amin'ny lahatsoratra teo aloha "History of the Dodo IS Architecture: The Way of the Back Office". Hanomboka amin'ny fomba nanombohan'ny fivoaran'ny Dodo IS aho, ny endriky ny maritrano tany am-boalohany, ny fomba nipoiran'ny maody vaovao, ary noho ny olana tsy maintsy natao ny fanovana lehibe.

Tantaran'ny Architecture Dodo IS: Monolith voalohany

Andian-dahatsoratra "Inona no atao hoe Dodo IS?" milaza momba ny:

  1. Monolith voalohany tao Dodo IS (2011-2015). (eto ianao)

  2. Ny lalan'ny Back Office: Toby sy fiara fitateram-bahoaka misaraka.

  3. Ny lalan'ny mpanjifa: facade amin'ny fototra (2016-2017). (Eo an-dΓ lana...)

  4. Ny tantaran'ny tena microservices. (2018-2019). (Eo an-dΓ lana...)

  5. Vita ny fanatsofana ny monolith sy ny fanamafisana ny maritrano. (Eo an-dΓ lana...)

Architecture voalohany

Tamin'ny 2011, toy izao ny maritrano Dodo IS:

Tantaran'ny Architecture Dodo IS: Monolith voalohany

Ny module voalohany amin'ny maritrano dia ny fanekena ny baiko. Ny fizotran'ny raharaham-barotra dia:

  • miantso ny pizzeria ny mpanjifa;

  • mandray ny telefaonina ny mpitantana;

  • manaiky baiko an-telefaonina;

  • mameno azy amin'ny parallΓ¨le amin'ny interface tsara fanekena: mandray ny fampahalalana momba ny mpanjifa, ny angona momba ny antsipirian'ny baiko, ny adiresy fandefasana. 

Ny interface an'ny rafitra fampahalalam-baovao dia toa tahaka izao ...

Dika voalohany tamin'ny Oktobra 2011:

Nihatsara kely tamin'ny Janoary 2012

Dodo Pizza Information System Fanaterana Pizza Restaurant

Ny loharanon-karena ho an'ny fampandrosoana ny baiko voalohany maka Module dia voafetra ihany. Tsy maintsy nanao zavatra betsaka izahay, haingana ary niaraka tamina ekipa kely. Ny ekipa kely dia mpamorona 2 izay nametraka ny fototra ho an'ny rafitra ho avy manontolo.

Ny fanapahan-kevitr'izy ireo voalohany no namaritra ny hiafaran'ny fitambaran'ny teknolojia:

  • Backend amin'ny ASP.NET MVC, fiteny C#. Donetchiki ny mpamorona, nahazatra sy nahafinaritra azy ireo ity stack ity.

  • Frontend amin'ny Bootstrap sy JQuery: fifandraisana amin'ny mpampiasa amin'ny fomba sy soratra nosoratan-tena. 

  • MySQL database: tsy misy fahazoan-dΓ lana, mora ampiasaina.

  • Servers amin'ny Windows Server, satria ny .NET dia mety ho eo ambanin'ny Windows ihany (Tsy hiresaka momba ny Mono isika).

Ara-batana, izany rehetra izany dia naseho tao amin'ny "dedic at the hoster". 

Architecture Application Intake Order

Avy eo dia efa niresaka momba ny microservice ny rehetra, ary ny SOA dia nampiasaina tamin'ny tetikasa lehibe nandritra ny 5 taona, ohatra, ny WCF dia nivoaka tamin'ny 2006. Nifidy vahaolana azo antoka sy voaporofo anefa izy ireo avy eo.

Indro Ilay izy.

Tantaran'ny Architecture Dodo IS: Monolith voalohany

Asp.Net MVC dia Razor, izay, amin'ny fangatahana avy amin'ny endrika na avy amin'ny mpanjifa, dia manome pejy HTML miaraka amin'ny rendering server. Amin'ny mpanjifa, ny script CSS sy JS dia efa mampiseho fampahalalana ary, raha ilaina, dia manatanteraka ny fangatahana AJAX amin'ny JQuery.

Ny fangatahana amin'ny mpizara dia miafara any amin'ny kilasy *Controller, izay ahitana ny fomba fiasa sy ny famoahana ny pejy HTML farany. Manao fangatahana amin'ny sosona lojika antsoina hoe *Services ny mpanara-maso. Ny tolotra tsirairay dia nifanaraka tamin'ny lafiny sasany amin'ny orinasa:

  • Ohatra, ny DepartmentStructureService dia nanome fampahalalana momba ny pizzeria, momba ny departemanta. Ny departemanta dia vondron'ny pizzeria tantanin'ny franchisee tokana.

  • ReceivingOrdersService dia nanaiky sy nanao kajy ny firafitry ny baiko.

  • Ary nandefa SMS ny SmsService tamin'ny fiantsoana ny serivisy API handefasana SMS.

Ny serivisy dia manodina angona avy amin'ny angon-drakitra, lojika fandraharahana voatahiry. Ny serivisy tsirairay dia nanana *Repositories iray na maromaro miaraka amin'ny anarana mety. Efa nisy fanontaniana momba ny fomba fiasa voatahiry ao amin'ny angon-drakitra sy ny soson'ny sarintany izy ireo. Nisy lojikan'ny fandraharahana tao amin'ny fitahirizana, indrindra fa betsaka tamin'ireo namoaka angona momba ny tatitra. Tsy nampiasaina ny ORM, niantehitra tamin'ny sql sora-tanana ny rehetra. 

Nisy ihany koa ny soson'ny modely sehatra sy kilasy mpanampy mahazatra, ohatra, ny kilasy Order izay nitahiry ny baiko. Teo amin'io toerana io ihany, tao amin'ny sosona, dia nisy mpanampy amin'ny famadihana ny lahatsoratry ny fampisehoana araka ny vola voafantina.

Izany rehetra izany dia azo aseho amin'ny modely toy izany:

Tantaran'ny Architecture Dodo IS: Monolith voalohany

Fomba fibaikoana

Diniho ny fomba voalohany notsorina mba hamoronana lamina toy izany.

Tantaran'ny Architecture Dodo IS: Monolith voalohany

Tany am-boalohany dia static ilay tranokala. Nisy vidiny teo aminy, ary teo an-tampony - ny nomeraon-telefaonina sy ny soratra hoe "Raha te pizza - antsoy ny isa sy ny baiko." Mba hanomanana dia mila mampihatra zotra tsotra isika: 

  • Ny mpanjifa dia mitsidika tranokala static miaraka amin'ny vidiny, mifidy vokatra ary miantso ny laharana voatanisa ao amin'ilay tranokala.

  • Ny mpanjifa dia manonona ny vokatra tiany ampidirina amin'ny baiko.

  • Manome ny adiresiny sy ny anarany.

  • Manaiky ny baiko ny mpandraharaha.

  • Ny baiko dia aseho ao amin'ny interface tsara baiko ekena.

Izany rehetra izany dia manomboka amin'ny fampisehoana ny sakafo. Ny mpampiasa mpampiasa iray dia tsy mandray baiko iray ihany isaky ny mandeha. Noho izany dia azo tehirizina ao anatin'ny fotoam-pivoriana ny sarety drafitra (voatahiry ao anaty fitadidiana ny fotoam-piasan'ny mpampiasa). Misy zavatra sarety misy vokatra sy fampahalalana momba ny mpanjifa.

Ny mpanjifa dia manonona ny vokatra, manindry ny mpandraharaha + eo akaikin'ny vokatra, ary misy fangatahana alefa any amin'ny mpizara. Ny fampahalalana momba ny vokatra dia nesorina tao amin'ny angon-drakitra ary ny fampahalalana momba ny vokatra dia ampidirina amin'ny sarety.

Tantaran'ny Architecture Dodo IS: Monolith voalohany

fanamarihana. Eny, eto dia tsy afaka misintona ny vokatra avy amin'ny angon-drakitra ianao, fa mamindra izany amin'ny frontend. Fa mba hanazavana dia nasehoko tsara ny lalana avy amin'ny angon-drakitra. 

Manaraka, ampidiro ny adiresy sy ny anaran'ny mpanjifa. 

Tantaran'ny Architecture Dodo IS: Monolith voalohany

Rehefa tsindrio ny "Create Order":

  • Ny fangatahana dia alefa any amin'ny OrderController.SaveOrder().

  • Mahazo Cart avy amin'ny fotoam-pivoriana izahay, misy vokatra amin'ny habetsahana ilainay.

  • Ampidiro amin'ny fampahalalana momba ny mpanjifa ny Cart ary ampita amin'ny fomba AddOrder an'ny kilasy ReceivingOrderService, izay voatahiry ao amin'ny tahiry. 

  • Ny angon-drakitra dia misy tabilao misy ny baiko, ny firafitry ny baiko, ny mpanjifa, ary mifandray daholo izy ireo.

  • Mandeha sy mamoaka ny baiko farany ary mampiseho azy ireo ny interface display order.

Modules vaovao

Zava-dehibe sy nilaina ny fandraisana ny baiko. Tsy afaka manao raharaham-barotra pizza ianao raha tsy manana baiko hamidy. Noho izany, nanomboka nahazo fonctionnaire ny rafitra - eo amin'ny 2012 ka hatramin'ny 2015. Nandritra io fotoana io dia nisy sakana maro samihafa tamin'ny rafitra niseho, izay hantsoiko modules, mifanohitra amin'ny hevitra momba ny serivisy na vokatra. 

Ny maody dia andiana fiasa izay mitambatra amin'ny tanjona iraisana. Amin'izay fotoana izay ihany koa dia mitovy amin'ny fampiharana ara-batana izy ireo.

Ny Modules dia azo antsoina hoe block system. Ohatra, ity dia maody fanaovana tatitra, interface tsara admin, sakafo tracker ao an-dakozia, fanomezan-dΓ lana. Ireo dia samy hafa mpampiasa interface tsara, ny sasany aza manana fomba fijery samy hafa. Mandritra izany fotoana izany, ny zava-drehetra dia ao anatin'ny rafitry ny fampiharana iray, dingana iray mihazakazaka. 

Ara-teknika, ny modules dia natao ho Area (ny hevitra toy izany dia nijanona tao asp.net core). Nisy rakitra misaraka ho an'ny frontend, modely, ary koa ny kilasin'izy ireo manokana. Vokatr'izany, niova ny rafitra tamin'ity ...

Tantaran'ny Architecture Dodo IS: Monolith voalohany

... amin'ity:

Tantaran'ny Architecture Dodo IS: Monolith voalohany

Ny maody sasany dia ampiharina amin'ny tranokala misaraka (tetikasa azo tanterahina), noho ny fiasa misaraka tanteraka ary ny ampahany noho ny fivoarana misaraka kely sy mifantoka kokoa. ity:

  • Site - dikan-teny voalohany tranokala dodopizza.ru.

  • Export: fampiakarana tatitra avy amin'ny Dodo IS ho an'ny 1C. 

  • Personal - kaonty manokana ny mpiasa. Izy io dia novolavolaina mitokana ary manana ny toerana idirany sy ny endriny manokana.

  • fs - tetikasa fampiantranoana statika. Taty aoriana dia nifindra niala tamin'izany izahay, namindra ny statika rehetra tao amin'ny Akamai CDN. 

Ny sisa amin'ireo sakana dia tao amin'ny fampiharana BackOffice. 

Tantaran'ny Architecture Dodo IS: Monolith voalohany

Fanazavana anarana:

  • Cashier - Mpanjifa trano fisakafoanana.

  • ShiftManager - interface tsara ho an'ny andraikitry ny "Shift Manager": antontan'isa momba ny varotra pizzeria, ny fahafahana mametraka vokatra amin'ny lisitry ny fiatoana, manova ny baiko.

  • OfficeManager - fifandraisana amin'ny andraikitry ny "Pizzeria Manager" sy ny "Franchisee". Ireto misy asa angonina amin'ny fananganana pizzeria, ny fampiroboroboana ny bonus, ny fandraisana sy ny fiaraha-miasa amin'ny mpiasa, hoy ny tatitra.

  • PublicScreens - fifandraisana amin'ny fahitalavitra sy takelaka mihantona amin'ny pizzeria. Ny fahitalavitra dia mampiseho menus, fampahafantarana momba ny dokam-barotra, sata famandrihana rehefa manatitra. 

Nampiasa sosona serivisy iraisana izy ireo, sakana kilasin'ny sehatra Dodo.Core mahazatra, ary fototra iraisana. Indraindray izy ireo dia mbola afaka mitarika amin'ny fifindrana amin'ny tsirairay. Anisan'izany ny tranokala tsirairay, toy ny dodopizza.ru na personal.dodopizza.ru, nandeha tamin'ny serivisy ankapobeny.

Rehefa nipoitra ny maody vaovao, dia nanandrana nampiasa indray ny fehezan-dalΓ na efa noforonina momba ny serivisy, ny fomba fitahirizana ary ny latabatra ao amin'ny angon-drakitra izahay. 

Raha mila fahatakarana tsara kokoa ny halehiben'ny maody vita amin'ny rafitra dia indro ny kisary tamin'ny taona 2012 miaraka amin'ny drafitra fampandrosoana:

Tantaran'ny Architecture Dodo IS: Monolith voalohany

Tamin'ny taona 2015, teo amin'ny sarintany ny zava-drehetra ary mbola betsaka kokoa aza ny famokarana.

  • Ny fanekena ny kaomandy dia nitombo ho vondrona misaraka amin'ny Foibem-pifandraisana, izay eken'ny mpandraharaha ny baiko.

  • Nisy efijery ho an'ny daholobe misy sakafo sy fampahalalana mihantona amin'ny pizzeria.

  • Ny lakozia dia manana maody izay mandeha ho azy ny hafatra feo "New Pizza" rehefa tonga ny baiko vaovao, ary koa manonta faktiora ho an'ny iraka. Izany dia manamora ny dingana ao an-dakozia, mamela ny mpiasa tsy ho variana amin'ny asa tsotra be dia be.

  • Ny sampan-draharahan'ny fanaterana dia lasa Checkout Delivery misaraka, izay navoakan'ny didy tamin'ny iraka izay nandray ny fiovana teo aloha. Noraisina tamin’ny kajy ny karama ny fotoana niasany. 

Mifanitsy amin'izany, nanomboka tamin'ny 2012 ka hatramin'ny 2015, mpamorona maherin'ny 10 no niseho, pizzeria 35 no nisokatra, nametraka ny rafitra tany Romania ary nanomana ny fanokafana toeram-pivarotana any Etazonia. Tsy nikarakara ny asa rehetra intsony ireo mpamorona, fa nozaraina ho ekipa. tsirairay manokana amin'ny ampahany amin'ny rafitra. 

olana

Anisan'izany noho ny maritrano (fa tsy izany ihany).

Fikorontanana ao amin'ny fototra

Ny fototra iray dia mety. Ny tsy fitoviana dia azo atao ao anatin'izany, ary amin'ny fandaniana ny fitaovana natsangana ao anaty angon-drakitra mifandraika. Ny miasa miaraka aminy dia mahazatra sy mety, indrindra raha vitsy ny latabatra sy kely angona.

Saingy nandritra ny 4 taona nisian'ny fampandrosoana, ny angon-drakitra dia nahitana tabilao 600 teo ho eo, fomba fiasa voatahiry 1500, ary maro amin'izy ireo no nanana lojika. Indrisy, ny fomba voatahiry dia tsy mitondra tombony be rehefa miasa amin'ny MySQL. Tsy voatahiry amin'ny fototra izy ireo, ary ny fitehirizana lojika ao aminy dia manasarotra ny fampandrosoana sy ny debugging. Sarotra ihany koa ny fampiasana kaody.

Tabilao maro no tsy nanana indeksa sahaza, any ho any, ny mifanohitra amin'izany, be dia be ny indexes, izay nanasarotra ny fampidirana. Ilaina ny manova latabatra 20 eo ho eo - mety haharitra 3-5 segondra eo ho eo ny fifampiraharahana hamoronana baiko. 

Ny angona tao amin'ny tabilao dia tsy tamin'ny endrika mety indrindra. Tany amin'ny toerana iray dia nilaina ny nanao denormalization. Ny ampahany amin'ny angona voaray tsy tapaka dia tao anaty tsanganana amin'ny endrika rafitra XML, izany dia nampitombo ny fotoana famonoana, nanitatra ny fanontaniana ary nanasarotra ny fampandrosoana.

Ho an'ny latabatra mitovy ihany no navoaka fangatahana tsy mitovy. Nijaly indrindra ny latabatra malaza, toy ny tabilao voalaza etsy ambony. baiko na latabatra Fivarotana pizza. Nampiasaina izy ireo mba hampisehoana interface tsara ao an-dakozia, analytics. Nisy tranonkala hafa nifandray tamin'izy ireo (dodopizza.ru), izay mety ho tonga tampoka ny fangatahana be dia be amin'ny fotoana rehetra. 

Tsy natambatra ny angona ary kajikajy maro no natao an-tongotra tamin'ny fampiasana ny fototra. Niteraka kajikajy tsy ilaina sy entana fanampiny izany. 

Matetika ny code dia nandeha tany amin'ny database rehefa tsy afaka nanao izany. Any amin'ny toerana tsy ampy ny fampandehanana betsaka, any amin'ny toerana iray dia ilaina ny manaparitaka fangatahana iray ho maromaro amin'ny alΓ lan'ny kaody mba hanafainganana sy hampitombo ny fahatokisana. 

Cohesion sy obfuscation amin'ny code

Ireo Modules izay tokony ho tompon'andraikitra amin'ny ampahany amin'ny orinasa dia tsy nanao izany tamim-pahatsorana. Ny sasany tamin'izy ireo dia nanana dika mitovy amin'ny andraikitra. Ohatra, ny mpivarotra eo an-toerana izay tompon'andraikitra amin'ny hetsika ara-barotra amin'ny tambajotra ao an-tanΓ nany dia tsy maintsy nampiasa ny interface "Admin" (hamorona fampiroboroboana) sy ny interface "Office Manager" (mba hijerena ny fiantraikan'ny fampiroboroboana eo amin'ny orinasa). Mazava ho azy, ao anatin'ireo modules roa ireo dia nampiasa serivisy mitovy izay niasa tamin'ny fampiroboroboana bonus.

Ny serivisy (kilasy ao anatin'ny tetikasa lehibe monolitika) dia afaka mifampiantso mba hanatsara ny angonany.

Miaraka amin'ireo kilasy modely izay mitahiry data, ny asa ao amin'ny code dia natao tamin'ny fomba hafa. Tany amin'ny toerana iray dia nisy mpanorina izay ahafahana mamaritra saha ilaina. Tamin'ny alalan'ny fananam-bahoaka no nanaovana izany. Mazava ho azy fa isan-karazany ny fahazoana sy ny fanovana ny angona avy amin'ny tahiry. 

Ny lojika dia na tao amin'ny mpanara-maso na tao amin'ny kilasy serivisy. 

Toa olana madinidinika ireo, saingy nampihena be ny fivoarana sy nampihena ny kalitao, nitarika ny tsy fandriam-pahalemana sy ny bibikely. 

Ny fahasarotan'ny fampandrosoana lehibe

Nitranga ny fahasahiranana teo amin’ny fampandrosoana mihitsy. Tsy maintsy nanao sakana samihafa ny rafitra, ary mifanitsy. Nanjary sarotra ny fametrahana ny filan'ny singa tsirairay ao anaty fehezan-dalΓ na tokana. Tsy mora ny nanaiky ary nampifaly ny singa rehetra tamin'ny fotoana iray. Nanampy tamin'izany ny famerana ny teknolojia, indrindra momba ny fototra sy ny frontend. Ilaina ny miala amin'ny jQuery mankany amin'ny rafitra avo lenta, indrindra amin'ny resaka serivisy mpanjifa (tranonkala).

Any amin'ny faritra sasany amin'ny rafitra dia azo ampiasaina ny angon-drakitra mety kokoa amin'izany.. Ohatra, taty aoriana dia nanana tranga fampiasana ny fifindran'ny Redis mankany CosmosDB mba hitahiry harona baiko. 

Ny ekipa sy ny developer tafiditra amin'ny sahan'izy ireo dia mazava ho azy fa naniry ny fizakan-tena bebe kokoa amin'ny serivisiny, na eo amin'ny lafiny fampandrosoana na ny famoahana. Ampifandraiso ny fifandirana, famoahana olana. Raha ho an'ny mpamorona 5 dia tsy dia misy dikany io olana io, avy eo amin'ny 10, ary mihoatra noho izany amin'ny fitomboana efa nomanina dia ho lasa matotra kokoa ny zava-drehetra. Ary mialoha ny fampandrosoana ny fampiharana finday (nanomboka tamin'ny 2017 izany, ary tamin'ny 2018 dia fahalavoana lehibe). 

Ny ampahany samihafa amin'ny rafitra dia nitaky ambaratonga samihafa amin'ny fahamarinan-toerana, saingy noho ny fifandraisana matanjaka amin'ny rafitra dia tsy afaka nanome izany izahay. Ny hadisoana amin'ny famolavolana fiasa vaovao ao amin'ny tontolon'ny admin dia mety ho nitranga tamin'ny fanekena baiko tao amin'ny tranokala, satria ny code dia mahazatra sy azo ampiasaina, ny angon-drakitra sy ny angon-drakitra dia mitovy ihany koa.

Mety ho azo atao ny misoroka ireo hadisoana sy olana ireo ao anatin'ny rafitry ny maritrano monolithic-modular toy izany: manaova fizarana andraikitra, refactor ny code sy ny database, manasaraka mazava tsara ny sosona, manara-maso ny kalitao isan'andro. Saingy ny vahaolana ara-javakanto voafidy sy ny fifantohana amin'ny fanitarana haingana ny fiasan'ny rafitra dia nitarika olana amin'ny resaka fitoniana.

Ahoana no nametrahan'ny bilaogy Power of the Mind ny rejisitra amin'ny trano fisakafoanana

Raha nitohy tamin'ny hafainganam-pandeha mitovy ny fitomboan'ny tambajotra pizzeria (sy ny entana), dia ho toy izany ny fianjerana rehefa afaka kelikely ka tsy hitsangana ny rafitra. Mampiseho tsara ny olana natomboka tamin'ny taona 2015, ity misy tantara toy izany. 

Ao amin'ny bilaogy "Hery saina” dia widget iray mampiseho angon-drakitra momba ny fidiram-bola ho an'ny taonan'ny tambajotra iray manontolo. Ny widget dia niditra tao amin'ny Dodo public API, izay manome ity data ity. Ity antontan'isa ity dia misy amin'izao fotoana izao ao amin'ny http://dodopizzastory.com/. Naseho isaky ny pejy ny widget ary nanao fangatahana tamin'ny fameram-potoana isaky ny 20 segondra. Nandeha tao amin'ny api.dodopizza.ru ny fangatahana ary nangataka:

  • ny isan'ny pizzeria ao amin'ny tambajotra;

  • ny totalin'ny fidiram-bolan'ny tambajotra hatramin'ny fiandohan'ny taona;

  • fidiram-bola androany.

Ny fangatahana antontan'isa momba ny fidiram-bola dia nandeha mivantana tany amin'ny angon-drakitra ary nanomboka nangataka angona momba ny baiko, nanangona angon-drakitra teo am-pandehanana ary nanome ny vola. 

Ny biraon'ny karama ao amin'ny trano fisakafoanana dia nandeha tamin'ny latabatry ny kaomandy iray ihany, namoaka ny lisitry ny baiko voaray androany, ary nisy baiko vaovao nampiana izany. Ny rejisitra dia nanao ny fangatahany isaky ny 5 segondra na fanavaozana pejy.

Toy izao ilay diagram:

Tantaran'ny Architecture Dodo IS: Monolith voalohany

Indray mandeha, Fyodor Ovchinnikov dia nanoratra lahatsoratra lava sy malaza tao amin'ny bilaoginy. Betsaka ny olona tonga tao amin'ny bilaogy ary nanomboka namaky tsara ny zava-drehetra. Raha teo am-pamakiana ilay lahatsoratra ny olona tonga tsirairay, dia niasa tsara ny Widget fidiram-bola ary nangataka ny API isaky ny 20 segondra.

Ny API dia niantso fomba voatahiry hanisa ny fitambaran'ny baiko rehetra hatramin'ny fiandohan'ny taona ho an'ny pizza rehetra ao amin'ny rojo. Ny fanangonana dia nifototra tamin'ny latabatra baiko, izay malaza be. Mandeha amin’izany ny biraom-bola rehetra amin’ny trano fisakafoanana misokatra rehetra amin’io fotoana io. Nijanona tsy namaly ny biraon'ny vola, tsy noraisina ny baiko. Tsy nekena tao amin'ny tranokala ihany koa izy ireo, tsy hita tao amin'ny tracker, tsy hitan'ny mpitantana ny shift izy ireo tao amin'ny interface-ny. 

Tsy io ihany no tantara. Tamin'ny faramparan'ny taona 2015, isaky ny zoma dia nitsikera ny enta-mavesatra amin'ny rafitra. Imbetsaka izahay no namono ny API ho an'ny daholobe, ary indray mandeha, dia tsy maintsy namono ny tranokala mihitsy aza izahay, satria tsy nisy nanampy. Nisy mihitsy aza ny lisitr'ireo serivisy misy baiko fanakatonana eo ambanin'ny entana mavesatra.

Manomboka izao dia manomboka ny tolona ataontsika amin'ny enta-mavesatra sy ny fanamafisana ny rafitra (manomboka amin'ny fararano 2015 ka hatramin'ny fararano 2018). Tamin'izay no nitranga izany"fahalavoana lehibe". Ankoatra izany, nisy tsy fahombiazana ihany koa indraindray, ny sasany tena saro-pady, fa ny vanim-potoana ankapobeny ny tsy fandriam-pahalemana dia azo heverina ho lany.

Fampandrosoana haingana

Nahoana no tsy vita avy hatrany? Jereo fotsiny ireto tabilao manaraka ireto.

Tantaran'ny Architecture Dodo IS: Monolith voalohany

Tamin'ny taona 2014-2015 ihany koa dia nisy ny fanokafana tany Romania ary ny fanokafana tany Etazonia dia efa nomanina.

Nitombo haingana ny tambajotra, nisokatra ny firenena vaovao, nipoitra ny endrika pizzeria vaovao, ohatra, nisy pizzeria nisokatra teo amin'ny toeram-pisakafoanana. Izany rehetra izany dia nitaky fiheverana manokana manokana ny fanitarana ny asa Dodo IS. Raha tsy misy ireo asa rehetra ireo, tsy misy fanaraha-maso ao an-dakozia, kaonty amin'ny vokatra sy ny fatiantoka ao amin'ny rafitra, mampiseho ny famoahana baiko ao amin'ny efitrano fitsarana sakafo, dia zara raha hiresaka momba ny maritrano "marina" sy ny fomba "marina" isika. fampandrosoana izao.

Sakana iray hafa amin'ny fanavaozana ara-potoana ny maritrano ary amin'ny ankapobeny ny fiheverana ny olana ara-teknika dia ny krizy 2014. Ny zavatra tahaka izao dia namely mafy ny fahafahan'ny ekipa hitombo, indrindra ho an'ny orinasa tanora toa an'i Dodo Pizza.

Vahaolana haingana izay nanampy

Mila vahaolana ny olana. Conventionally, ny vahaolana dia azo zaraina ho vondrona 2:

  • Ireo haingana izay mamono ny afo sy manome fiarovana kely ary manome fotoana antsika hiova.

  • Systemika ary, noho izany, lava. Reengineering ny modules maromaro, fizarana ny maritrano monolithic ho serivisy samihafa (ny ankamaroan'izy ireo dia tsy micro, fa serivisy macro, ary misy zavatra momba izany Tatitra nataon'i Andrey Morevskiy). 

Ny lisitra maina amin'ny fanovana haingana dia toy izao manaraka izao:

Ampitomboy ny master base

Mazava ho azy fa ny zavatra voalohany atao amin'ny fiatrehana ny enta-mavesatra dia ny fampitomboana ny fahafahan'ny mpizara. Izany dia natao ho an'ny database master sy ho an'ny mpizara tranonkala. Indrisy, izany dia tsy azo atao afa-tsy amin'ny fetra sasany, dia lasa lafo loatra.

Nanomboka tamin'ny 2014, nifindra tany Azure izahay, nanoratra momba ity lohahevitra ity ihany koa izahay tamin'io fotoana io tao amin'ny lahatsoratra "Ahoana ny fanateran'i Dodo Pizza ny pizza amin'ny alΓ lan'ny Microsoft Azure Cloud". Saingy taorian'ny fisondrotan'ny mpizara ho an'ny fototra dia nanohitra ny vidiny izy ireo. 

Replika fototra ho an'ny famakiana

Replika roa natao ho an'ny fototra:

ReadReplica ho an'ny fangatahana reference. Izy io dia ampiasaina hamakiana lahatahiry, karazana, tanΓ na, arabe, pizzeria, vokatra (sehatra niova tsikelikely), ary amin'ireo fifandraisana izay azo ekena ny fahatarana kely. Nisy 2 tamin'ireo kopia ireo, niantoka ny fisian'izy ireo mitovy amin'ny an'ny tompony izahay.

ReadReplica ho an'ny fangatahana tatitra. Ity angon-drakitra ity dia manana fahafahana ambany kokoa, fa ny tatitra rehetra dia nandeha tany. Avelao izy ireo hanana fangatahana mavesatra ho an'ny kajy angon-drakitra goavana, saingy tsy misy fiantraikany amin'ny angon-drakitra lehibe sy ny fifandraisana miasa. 

Caches amin'ny code

Tsy nisy cache na taiza na taiza tao amin'ny kaody (amin'ny ankapobeny). Niteraka fangatahana fanampiny, tsy ilaina foana, amin'ny angon-drakitra feno entana izany. Ny cache dia samy ao anaty fitadidiana sy amin'ny serivisy cache ivelany, izany hoe Redis. Nofoanan'ny fotoana ny zava-drehetra, voatondro ao amin'ny kaody ny fanovana.

Mpizara backend marobe

Ny lamosin'ny rindranasa ihany koa dia nila nohamafisina mba hiatrehana ireo enta-mavesatra mitombo. nilaina ny nanamboatra cluster avy amin'ny iis-server iray. Naveriny ny fandaharam-potoana fivoriana fampiharana avy amin'ny fitadidiana mankany amin'ny RedisCache, izay nahafahana nanamboatra mpizara maromaro ao ambadiky ny mpandrindra entana tsotra miaraka amin'ny round robin. Tamin'ny voalohany dia Redis ihany no nampiasaina ho an'ny cache, avy eo dia nizarazara ho maromaro. 

Vokatr'izany dia nanjary sarotra kokoa ny maritrano ...

Tantaran'ny Architecture Dodo IS: Monolith voalohany

… saingy nesorina ny fihenjanana sasany.

Ary avy eo dia nilaina ny namerina ireo singa feno entana, izay nataontsika. Hiresaka momba izany isika amin’ny ampahany manaraka.

Source: www.habr.com

Add a comment