Tantaran'ny Dodo IS Architecture: The Back Office Path

Manova izao tontolo izao i Habr. Efa herintaona mahery izahay no nitoraka bilaogy. Teo amin'ny enim-bolana lasa izay dia nahazo valiny mitombina avy amin'ny mponina ao Khabrovsk izahay: β€œDodo, miteny na aiza na aiza ianao fa manana ny rafitrao manokana. Karazana rafitra inona izany? Ary nahoana no mila izany ny rojo pizza?”

Nipetraka izahay ary nieritreritra ary nahatsapa fa marina ny teninao. Miezaka manazava ny zava-drehetra amin'ny rantsan-tananay izahay, saingy mipoitra amin'ny rovitra ary tsy misy famaritana feno momba ny rafitra na aiza na aiza. Noho izany dia nanomboka ny dia lavitra fanangonana vaovao, fitadiavana mpanoratra ary fanoratana lahatsoratra maromaro momba ny Dodo IS. Andao!

Fisaorana: Misaotra anao mizara ny hevitrao aminay. Misaotra azy, namaritra ny rafitra izahay tamin'ny farany, nanangona technoradar, ary tsy ho ela dia hamoaka famaritana lehibe momba ny fizotranay. Raha tsy teo ianao dia efa nipetraka toy izao izahay nandritra ny 5 taona.

Tantaran'ny Dodo IS Architecture: The Back Office Path

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

  1. Monolith voalohany tao Dodo IS (2011-2015). (Eo an-dΓ lana...)
  2. Lalan'ny backoffice: misaraka toby sy bus. (Eto ianao)
  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...)

Raha liana amin'ny fianarana zavatra hafa ianao dia manorata ao amin'ny fanehoan-kevitra.

Hevitra momba ny famaritana ny fotoana avy amin'ny mpanoratra
Manao fivoriana tsy tapaka ho an'ny mpiasa vaovao momba ny lohahevitra "System Architecture" aho. Antsoinay hoe "Intro to Dodo IS Architecture" izy io ary ampahany amin'ny fizotry ny onboarding ho an'ny mpamorona vaovao. Raha niresaka tamin'ny endrika iray na hafa momba ny maritranontsika aho, momba ny endri-javatra, dia namolavola fomba fiasa ara-tantara iray momba ny famaritana aho.

Amin'ny fomba nentim-paharazana, mijery ny rafitra ho toy ny fitambaran'ny singa (ara-teknika na ambony), maody fandraharahana izay mifandray amin'ny tsirairay mba hahatratrarana tanjona sasany. Ary na dia ara-drariny ho an'ny famolavolana aza ny fomba fijery toy izany, dia tsy mety amin'ny famaritana sy ny fahatakarana izany. Misy antony maromaro:

  • Tsy mitovy amin’ny an-taratasy ny zava-misy. Tsy mandeha araka ny nokasaina ny zava-drehetra. Ary liana amin'ny fandehan'ny zava-drehetra sy ny fandehany izahay.
  • Fampisehoana tsy tapaka ny vaovao. Raha ny marina, afaka mandeha araka ny vanim-potoana manomboka amin'ny fiandohana mankany amin'ny fanjakana ankehitriny ianao.
  • Manomboka amin'ny tsotra mankany amin'ny sarotra. Tsy universal, fa amin'ny tranga misy antsika dia izany. Ny Architecture dia nifindra avy amin'ny fomba tsotra kokoa mankany amin'ny fomba sarotra kokoa. Matetika, amin'ny alΓ lan'ny fahasarotana, ny olana amin'ny hafainganam-pandehan'ny fampiharana sy ny fahamarinan-toerana, ary koa ny fananana am-polony hafa avy amin'ny lisitry ny fepetra tsy miasa (eto miresaka tsara momba ny fahasarotana mifanohitra amin'ny fepetra hafa).

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

Tantaran'ny Dodo IS Architecture: The Back Office Path

Tamin'ny taona 2020, nanjary sarotra kokoa izany ary nanjary toy izao:

Tantaran'ny Dodo IS Architecture: The Back Office Path

Ahoana no nitrangan'io evolisiona io? Nahoana no ilaina ny ampahany samihafa amin'ny rafitra? Inona no fanapahan-kevitra momba ny maritrano noraisina ary nahoana? Andeha hojerentsika ato amin'ity andian-dahatsoratra ity.

Ny olana voalohany amin'ny 2016: nahoana ny serivisy no tokony hiala amin'ny monolith?

Ny lahatsoratra voalohany amin'ny andiany dia momba ny serivisy izay nisaraka voalohany tamin'ny monolith. Mba hampidirana anao amin'ny teny manodidina, holazaiko aminao izay olana nananantsika tao amin'ny rafitra tamin'ny fiandohan'ny taona 2016, izay tsy maintsy niatrehantsika ny fisarahan'ny serivisy.

Angon-drakitra MySql tokana izay nanoratan'ny fampiharana rehetra nisy tamin'izany fotoana izany tao amin'ny Dodo IS ny firaketany. Ny vokany dia:

  • Enta-mavesatra (miaraka amin'ny 85% amin'ny fangatahana novakiana).
  • Nitombo ny fototra. Noho izany dia nanjary olana ny vidiny sy ny fanohanana.
  • Teboka tokana tsy fahombiazana. Raha toa ny fampiharana iray manoratra amin'ny angon-drakitra dia nanomboka nanao izany tamin'ny fomba mavitrika kokoa, dia nahatsapa ny fiantraikany ny fampiharana hafa.
  • Ny tsy fahombiazan'ny fitahirizana sy ny fanontaniana. Matetika ny angon-drakitra dia voatahiry ao amin'ny rafitra sasany mety ho an'ny toe-javatra sasany fa tsy ho an'ny hafa. Ny fanondroana dia manafaingana ny asa sasany, fa afaka mampiadana ny hafa.
  • Ny sasany amin'ireo olana dia voavaha tamin'ny alΓ lan'ny cache natao haingana sy ny kopia vakiana amin'ny angon-drakitra (horesahina ao amin'ny lahatsoratra mitokana), saingy namela anay hanana fotoana fotsiny izy ireo ary tsy namaha ny olana.

Ny olana dia ny fisian'ny monolith mihitsy. Ny vokany dia:

  • Famoahana miavaka sy tsy fahita firy.
  • Ny fahasarotana dia eo amin'ny fiaraha-miasa amin'ny fampandrosoana ny olona marobe.
  • Tsy fahafahana mampiditra teknolojia vaovao, rafitra vaovao ary tranomboky.

Ny olana amin'ny fototra sy ny monolith dia nofaritana imbetsaka, ohatra, amin'ny tontolon'ny fianjerana tamin'ny fiandohan'ny taona 2018 (Manaova toa an'i Munch, na teny vitsivitsy momba ny trosa ara-teknika, Ny andro nijanonan'i Dodo IS. script asynchronous ΠΈ Ny tantaran'ny vorona Dodo avy amin'ny fianakaviana Phoenix. Ny fianjeran'ny Dodo IS), ka tsy hipetraka be loatra aho. MamelΓ  ahy fotsiny fa te hanome fahafaham-po bebe kokoa izahay rehefa mamolavola serivisy. Voalohany indrindra, mahakasika ireo izay be entana sy faka indrindra amin'ny rafitra manontolo - Auth sy Tracker.

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

Fikarohana Toko

  1. Skema ny monolith 2016
  2. Manomboka mamoaka ny monolith izahay: fisarahana ny Auth sy Tracker
  3. Inona no ataon'i Auth?
  4. Avy aiza ny entana?
  5. Famoahana ny Auth
  6. Inona no ataon'ny Tracker?
  7. Avy aiza ny entana?
  8. Famoahana ny Tracker

Skema ny monolith 2016

Ireto ny singa fototra amin'ny monolith 2016 Dodo IS, ary eto ambany dia misy ny fandravana ny asany fototra.
Tantaran'ny Dodo IS Architecture: The Back Office Path
Biraon'ny livraison. Kaonty ho an'ny iraka, famoahana baiko ho an'ny iraka.
Foibem-pifandraisana. Manaiky baiko amin'ny alalan'ny mpandraharaha.
Site. Ny tranokalanay (dodopizza.ru, dodopizza.co.uk, dodopizza.by, sns.).
Auth. Serivisy fanomezan-dΓ lana sy fanamarinana ho an'ny backoffice.
tracker. Mpanara-maso baikon'ny lakozia. Serivisy hanamarihana ny sata fahavononana rehefa manomana baiko.
Biraon'ny trano fisakafoanana. Mandray baiko ao amin'ny trano fisakafoanana, interface tsara amin'ny cashier.
Export. Mampakatra tatitra amin'ny 1C ho an'ny kaonty.
Fanairana sy faktiora. Fibaikoana feo ao an-dakozia (ohatra, "Tonga ny pizza vaovao") + fanontana faktiora ho an'ny iraka.
Mpitantana Shift. Interfaces ho an'ny asan'ny mpitantana shift: lisitry ny baiko, tabilao vokatra, mitondra ny mpiasa amin'ny fiovana.
Birao mpitantana. Interfaces ho an'ny asan'ny franchisee sy ny mpitantana: fandraisana mpiasa, tatitra momba ny asan'ny pizzeria.
Birao fisakafoanana. Fampisehoana sakafo amin'ny fahitalavitra amin'ny pizzeria.
Admin. Fikirana ho an'ny pizzeria manokana: sakafo, vidiny, kaonty, kaody fampiroboroboana, fampiroboroboana, sora-baventy ho an'ny tranokala, sns.
Kaonty manokan'ny mpiasa. Ny fandaharam-potoanan'ny mpiasa, fampahalalana momba ny mpiasa.
Kitchen Motivation Board. Efijery misaraka mihantona ao an-dakozia ary mampiseho ny hafainganam-pandehan'ny mpanao pizza.
Fifandraisana. Fandefasana sms sy mailaka.
FileStorage. Serivisy manokana amin'ny fandraisana sy famoahana rakitra static.

Nanampy anay ny fanandramana voalohany hamahana olana, saingy fitsaharana vetivety fotsiny izany. Tsy lasa vahaolana rafitra izy ireo, ka nazava fa misy zavatra tsy maintsy atao amin'ny fototra. Zarao, ohatra, ny angon-drakitra ankapobeny ho maromaro manokana.

Manomboka mamoaka ny monolith izahay: fisarahana ny Auth sy Tracker

Ny serivisy lehibe izay nanoratra sy namaky avy amin'ny angon-drakitra mihoatra noho ny hafa:

  1. Auth. Serivisy fanomezan-dΓ lana sy fanamarinana ho an'ny backoffice.
  2. Tracker. Mpanara-maso baikon'ny lakozia. Serivisy hanamarihana ny sata fahavononana rehefa manomana baiko.

Inona no ataon'i Auth?

Auth dia serivisy ahafahan'ny mpampiasa miditra ao amin'ny birao aoriana (misy fidirana tsy miankina amin'ny lafiny mpanjifa). Voaresaka ao amin'ny fangatahana ihany koa izy io mba hahazoana antoka fa misy ny zo fidirana marina ary tsy niova ireo zo ireo hatramin'ny fidirana farany. Ny fitaovana dia miditra amin'ny pizzeria amin'ny alalan'izany.

Ohatra, tiantsika ny hanokatra fampisehoana misy ny satan'ny baiko vita amin'ny fahitalavitra mihantona ao amin'ny efitrano. Avy eo dia manokatra ny auth.dodopizza.ru izahay, mifidiana "Midira ho fitaovana", misy kaody miseho izay azo ampidirina amin'ny pejy manokana amin'ny solosain'ny mpitantana shift, manondro ny karazana fitaovana (fitaovana). Ny fahitalavitra mihitsy dia handeha amin'ny interface tiana ho an'ny pizzeria ary hanomboka hampiseho eo ny anaran'ireo mpanjifa izay efa vonona ny baiko.

Tantaran'ny Dodo IS Architecture: The Back Office Path

Avy aiza ny entana?

Ny mpampiasa backoffice miditra tsirairay dia mandeha any amin'ny angon-drakitra ho an'ny fangatahana tsirairay, mankany amin'ny latabatra mpampiasa, misintona ny mpampiasa avy ao amin'ny alΓ lan'ny fangatahana sql ary manamarina raha manana ny fidirana sy ny zo ilaina amin'ity pejy ity izy.

Ny fitaovana tsirairay dia manao toy izany ihany amin'ny latabatra fitaovana, manamarina ny anjara asany sy ny fidirana. Ny fangatahana marobe amin'ny angon-drakitra master dia mitarika amin'ny famenoana sy fandaniam-bola amin'ny loharanon-drakitra ankapobeny amin'ireo asa ireo.

Famoahana ny Auth

Ny Auth dia manana sehatra mitoka-monina, izany hoe ny angona momba ny mpampiasa, ny fidirana na ny fitaovana dia miditra amin'ny serivisy (ho avy amin'izao fotoana izao) ary mijanona ao. Raha misy olona mila azy ireo dia handeha amin'ity serivisy ity izy haka angona.

IZA. Ny fizotry ny asa dia toy izao tamin'ny voalohany:

Tantaran'ny Dodo IS Architecture: The Back Office Path

Te hanazava kely aho ny fomba fiasa:

  1. Ny fangatahana ivelany dia tonga any amin'ny backend (Asp.Net MVC any), mitondra cookie session, izay ampiasaina hahazoana angon-drakitra avy amin'ny Redis(1). Na misy fampahalalana momba ny fidirana, ary avy eo misokatra ny fidirana amin'ny mpanara-maso (3,4), na tsia.
  2. Raha tsy misy ny fidirana dia mila mandeha amin'ny fomba fanomezan-dΓ lana ianao. Eto, ho an'ny fahatsorana, dia aseho ho ampahany amin'ny lalana amin'ny toetra mitovy, na dia fifindrana mankany amin'ny pejy fidirana aza izany. Raha misy toe-javatra tsara, dia hahazo fivoriana feno tsara isika ary hankany amin'ny Backoffice Controller.
  3. Raha misy angon-drakitra, dia mila manamarina izany ianao amin'ny maha-zava-dehibe azy amin'ny angon-drakitra mpampiasa. Niova ve ny andraikiny, tsy tokony havela hiditra amin'ny pejy ve izy izao? Amin'ity tranga ity, aorian'ny fandraisana ny fivoriana (1), mila mandeha mivantana any amin'ny angon-drakitra ianao ary manamarina ny fidirana amin'ny mpampiasa amin'ny alΓ lan'ny sosona lojika fanamarinana (2). Manaraka, mandehana any amin'ny pejy fidirana na mandehana any amin'ny mpanara-maso. Ity dia rafitra tsotra, saingy tsy manara-penitra tanteraka.
  4. Raha vita ny dingana rehetra, dia mitsambikina bebe kokoa amin'ny lojika amin'ny fanaraha-maso sy ny fomba.

Ny angon-drakitra mpampiasa dia misaraka amin'ny angon-drakitra hafa rehetra, voatahiry ao anaty latabatra maha-mpikambana misaraka, mety ho lasa fomba API ny fiasa avy amin'ny sosona lojika AuthService. Ny fetran'ny sehatra dia voafaritra mazava tsara: ny mpampiasa, ny andraikiny, ny fidirana amin'ny angona, ny famoahana ary ny fanafoanana ny fidirana. Toa azo afindra amina tolotra mitokana ny zava-drehetra.

LASA. Izany no nataon'izy ireo:

Tantaran'ny Dodo IS Architecture: The Back Office Path

Manana olana maromaro io fomba fiasa io. Ohatra, ny fiantsoana fomba ao anaty dingana iray dia tsy mitovy amin'ny fiantsoana serivisy ivelany amin'ny http. Hafa tanteraka ny faharetana, ny fahatokisana, ny fanohanana ary ny mangarahara amin'ny fandidiana. Andrey Morevsky dia niresaka tamin'ny antsipiriany momba ireo olana ireo tao amin'ny tatitra nataony "50 aloky ny microservices".

Ny serivisy fanamarinana ary miaraka amin'izany ny serivisy fitaovana dia ampiasaina amin'ny birao aoriana, izany hoe, ho an'ny serivisy sy interface ampiasaina amin'ny famokarana. Ny fanamarinana ho an'ny serivisy mpanjifa (toy ny tranokala na fampiharana finday) dia mitranga misaraka tsy mampiasa Auth. Naharitra herintaona teo ho eo ny fisarahana, ary ankehitriny dia miasa indray amin'ity lohahevitra ity izahay, mamindra ny rafitra amin'ny serivisy fanamarinana vaovao (miaraka amin'ny protocols mahazatra).

Nahoana no naharitra ela ny fisarahana?
Nisy olana maro teny an-dalana izay nampiadana anay:

  1. Tianay ny hamindra angona momba ny mpampiasa, ny fitaovana ary ny fanamarinana avy amin'ny angon-drakitra ao amin'ny firenena ho iray. Mba hanaovana izany dia tsy maintsy namindra ny latabatra sy ny fampiasana rehetra avy amin'ny int identifier mankany amin'ny global UUId identifier izahay (vaovao vao haingana ity code ity. Roman Bukin "Uuid - tantara lehibe momba ny rafitra kely" ary tetikasa open source Primitives). Ny fitehirizana angon-drakitra mpampiasa (satria fampahalalana manokana ity) dia misy fetrany ary ho an'ny firenena sasany dia ilaina ny mitahiry azy manokana. Saingy tsy maintsy misy ID mpampiasa manerantany.
  2. Tabilao maro ao amin'ny angon-drakitra no manana fampahafantarana fanamarinana momba ny mpampiasa nanao ny fandidiana. Nitaky mekanika fanampiny izany mba hiantohana ny tsy fitoviana.
  3. Taorian'ny namoronana ny serivisy API dia nisy fotoana lava sy niandalana nifindra tany amin'ny rafitra hafa. Ny switch dia tsy maintsy natao tsy nisy olana ho an'ny mpampiasa ary nitaky asa tanana.

Tetika fisoratana anarana fitaovana amin'ny pizzeria:

Tantaran'ny Dodo IS Architecture: The Back Office Path

Architecture ankapobeny taorian'ny nanasarahana ny serivisy Auth sy Devices:

Tantaran'ny Dodo IS Architecture: The Back Office Path

fanamarihana. Amin'ny taona 2020, miasa amin'ny dika vaovaon'ny Auth izahay, izay mifototra amin'ny fenitry ny fanomezan-dΓ lana OAuth 2.0. Ity fenitra ity dia somary sarotra, saingy ilaina amin'ny famolavolana serivisy fanamarinana farany. Ao amin'ny lahatsoratra "Soso-kevitra momba ny fanomezan-dΓ lana: topimaso momba ny teknolojia OAuth 2.0Β» izahay Alexey Chernyaev dia niezaka niresaka momba ny fenitra amin'ny fomba tsotra sy mazava araka izay azo atao mba hitsitsiana fotoana amin'ny fandalinana azy.

Inona no ataon'ny Tracker?

Ankehitriny eo amin'ny faharoa amin'ny serivisy feno entana. Ny tracker dia manao andraikitra roa:

  • Amin'ny lafiny iray, ny asany dia ny hampiseho amin'ny mpiasa ao an-dakozia ny baiko izay mandeha amin'izao fotoana izao, inona ny vokatra tokony homanina amin'izao fotoana izao.
  • Amin'ny lafiny iray, atao nomerika ny dingana rehetra ao an-dakozia.

Tantaran'ny Dodo IS Architecture: The Back Office Path

Rehefa misy vokatra vaovao (ohatra, pizza) miseho amin'ny filaharana, dia mankany amin'ny fiantsonan'ny mpanara-maso "Rolling". Ao amin'io fiantsonana io dia misy mpanamboatra pizza izay maka mofo amin'ny habeny ilaina ary manodina azy, ary avy eo dia manamarika eo amin'ny takelaka tracker fa nahavita ny asany izy ary mampita ny tobin'ny koba mihodinkodina mankany amin'ny fiantsonana manaraka - "Famenoana" .

Ao, ny mpanao pizza manaraka dia mametraka ny pizza, avy eo dia manamarika eo amin'ny takelaka fa vitany ny asany ary mametraka ny pizza ao anaty lafaoro (izany koa dia fiantsonana manokana izay mila marika eo amin'ny takelaka). Ny rafitra toy izany dia efa nisy hatrany am-boalohany tao Dodo ary hatrany am-piandohan'ny Dodo IS. Izy io dia ahafahanao manara-maso sy manao digitize ny asa rehetra. Ho fanampin'izany, ny mpanara-maso dia manoro hevitra ny fomba hanomanana vokatra iray manokana, manatanteraka ny karazana vokatra tsirairay araka ny rafitra famokarana azy manokana, mitahiry ny fotoana mahandro sakafo tsara indrindra ho an'ny vokatra, ary manara-maso ny asa rehetra amin'ny vokatra.

Tantaran'ny Dodo IS Architecture: The Back Office PathToy izao ny ecran tablette ao amin'ny tobim-piantsonan'i Raskatka.

Avy aiza ny entana?

Ny pizza tsirairay dia manana takelaka dimy eo ho eo misy tracker. Tamin'ny taona 2016 dia nanana pizzeria maherin'ny 100 izahay (ary mihoatra ny 600 ankehitriny). Ny takelaka tsirairay dia manao fangatahana any amin'ny backend isaky ny 10 segondra ary manangona angon-drakitra avy amin'ny latabatra fibaikoana (rohy miaraka amin'ny mpanjifa sy adiresy), ny firafitry ny baiko (rohy miaraka amin'ny vokatra sy ny famantarana ny isa), ary ny latabatra fanentanana (manaraka izany. ny fotoana fanerena). Rehefa manindry vokatra eo amin'ny mpanara-maso ny mpanamboatra pizza iray, dia havaozina ny rakitra ao amin'ireo latabatra rehetra ireo. Ny latabatra filaharana dia ankapobeny, miaraka amin'izany dia misy fampidirana rehefa manaiky baiko, fanavaozana avy amin'ny faritra hafa amin'ny rafitra, ary famakiana maro, ohatra, amin'ny fahitalavitra mihantona amin'ny pizzeria ary mampiseho baiko efa vita amin'ny mpanjifa.

Nandritra ny vanim-potoanan'ny ady amin'ny enta-mavesatra, rehefa voatahiry ny zava-drehetra sy ny rehetra ary nafindra tany amin'ny dika mitovy amin'ny angon-drakitra, dia nitohy nankany amin'ny angon-drakitra master ireo asa ireo miaraka amin'ny tracker. Tsy tokony hisy fahatarana eto, ny angon-drakitra dia tsy maintsy manara-penitra, tsy azo ekena.

Ary koa, ny tsy fisian'ny latabatra sy ny fanondroanay manokana amin'izy ireo dia tsy namela anay hanoratra fanontaniana manokana kokoa natokana ho an'ny fampiasanay. Ohatra, mety hahomby amin'ny mpanara-dia ny manana tondro ho an'ny pizza eo amin'ny latabatry ny baikony. Manaraka foana ny baiko pizzeria avy amin'ny angon-drakitra tracker izahay. Mandritra izany fotoana izany, mba hanaiky ny baiko, tsy dia zava-dehibe loatra izay pizzeria latsaka ao, ny zava-dehibe kokoa dia ny mpanjifa nanao izany baiko. Midika izany fa tsy maintsy misy index ny mpanjifa. Tsy ilaina ihany koa ho an'ny tracker ny fitahirizana ny ID ny tapakila vita pirinty na ny fampiroboroboana bonus mifandraika amin'ny baiko ao amin'ny latabatra filaharana. Tsy liana amin'ity vaovao ity ny serivisy mpanara-maso anay. Ao amin'ny angona monolitika mahazatra, ny tabilao dia mety ho marimaritra iraisana eo amin'ny mpampiasa rehetra. Io no iray amin'ireo olana tany am-boalohany.

IZA. Tamin'ny voalohany ny architecture dia toy izao:

Tantaran'ny Dodo IS Architecture: The Back Office Path

Na dia taorian'ny nisarahana tamin'ny dingana samihafa aza, ny ankamaroan'ny fototry ny kaody dia nijanona ho an'ny serivisy samihafa. Ny zava-drehetra eo ambanin'ny mpanara-maso dia niray hina ary nipetraka tao anaty tahiry iray. Ny fomba mahazatra amin'ny serivisy, ny fitahirizana ary ny angon-drakitra mahazatra misy tabilao mahazatra dia nampiasaina.

Famoahana ny Tracker

Ny olana lehibe amin'ny tracker dia ny hoe ny angon-drakitra dia tsy maintsy ampifandraisina amin'ny angon-drakitra samihafa. Io ihany koa no mahasamihafa azy indrindra amin'ny fizarana ny serivisy Auth; ny baiko sy ny sata dia afaka miova ary tokony aseho amin'ny serivisy isan-karazany.

Manaiky baiko izahay ao amin'ny Restaurant Checkout (serivisy ity), voatahiry ao anaty tahiry ao amin'ny sata "Ekena". Rehefa afaka izany, dia tokony ho any amin'ny tracker, izay hanova ny toe-javatra imbetsaka: avy amin'ny "Kitchen" ho "Packed". Amin'ity tranga ity dia mety hisy fiantraikany ivelany avy amin'ny Cashier na ny interface Shift Manager miaraka amin'ny baiko. Homeko ny sata fibaikoana miaraka amin'ny famaritana azy ireo eo amin'ny latabatra:

Tantaran'ny Dodo IS Architecture: The Back Office Path
Toy izao ny tetik'asa fanovana satan'ny baiko:

Tantaran'ny Dodo IS Architecture: The Back Office Path

Miova ny sata eo amin'ny rafitra samihafa. Ary eto ny tracker dia tsy ny rafitra farany izay mihidy ny angon-drakitra. Nahita fomba maro azo atao amin'ny fisarahana isika amin'ny tranga toy izany:

  1. Ampifantoka amin'ny serivisy iray ny hetsika fibaikoana rehetra. Aminay, ity safidy ity dia mitaky serivisy be loatra amin'ny fanodinana ny baiko. Raha nijanona teo izahay dia ho nifarana tamin'ny monolith faharoa. Tsy ho voavaha ny olana.
  2. Ny rafitra iray dia manao antso amin'ny iray hafa. Ny safidy faharoa dia mahaliana kokoa. Saingy miaraka amin'izany, misy rojom-pifandraisana azo atao (tsy fahombiazana cascading), avo kokoa ny fifandraisan'ireo singa, ary sarotra kokoa ny mitantana.
  3. Mikarakara hetsika izahay, ary ny serivisy tsirairay dia mifanakalo amin'ny hafa amin'ny alalan'ireo hetsika ireo. Vokatr'izany dia nofidiana ny safidy fahatelo, izay manomboka mifanakalo hetsika amin'ny serivisy rehetra.

Ny nisafidy ny safidy fahatelo dia midika fa ny tracker dia hanana ny angon-drakitra manokana, ary isaky ny fiovana ao amin'ny filaharana dia handefa hetsika momba izany, izay serivisy hafa hisoratra anarana ary ho tafiditra ao amin'ny tahiry master. Mba hanaovana izany dia mila serivisy izahay izay hiantoka ny fandefasana hafatra eo amin'ny serivisy.

Tamin'izany fotoana izany dia efa nanana RabbitMQ izahay tao amin'ny stack, noho izany ny fanapahan-kevitra farany hampiasa azy io ho mpizara hafatra. Ny kisary dia mampiseho ny fifindran'ny baiko avy amin'ny Restaurant Cashier amin'ny alΓ lan'ny Tracker, izay manova ny satany sy ny fisehoany eo amin'ny interface of the Manager's Orders. lasa:

Tantaran'ny Dodo IS Architecture: The Back Office Path

Manaova lalana tsikelikely
Ny lalan'ny kaomandy dia manomboka amin'ny iray amin'ireo tolotra loharanon-kafatra. Ity ny Restaurant Cashier:

  1. Efa vonona tanteraka ny baiko ao amin'ny Checkout, ary tonga ny fotoana handefasana izany any amin'ny mpanara-maso. Ny hetsika izay nisoratra anarana ny tracker dia atsipy.
  2. Ny tracker, manaiky baiko, dia mitahiry izany ao amin'ny tahiry manokana, manao ny hetsika "Order Accepted by Tracker" ary mandefa izany any amin'ny RMQ.
  3. Mpitantana maromaro no efa misoratra anarana amin'ny fiara fitateram-bahoaka mahazatra. Ho anay dia zava-dehibe ilay mitambatra amin'ny angon-drakitra monolithic.
  4. Ny mpikarakara dia mandray ny hetsika, mifidy avy aminy ny angon-drakitra manan-danja amin'izany: amin'ny tranga misy antsika, ity no toeran'ny baiko "Eken'ny Tracker" ary manavao ny orinasan'ny baiko ao amin'ny tahiry fototra.

Raha misy olona mila baiko manokana avy amin'ny latabatra baiko monolithic, dia afaka mamaky izany avy eo koa izy. Ohatra, izao no ilain'ny Interface Orders ao amin'ny Shift Manager:

Tantaran'ny Dodo IS Architecture: The Back Office Path

Ny serivisy hafa rehetra dia afaka misoratra anarana amin'ny famandrihana hetsika avy amin'ny tracker mba hampiasana azy ireo ho an'ny tenany.

Raha toa ka misy baiko noraisina ho amin'ny famokarana rehefa afaka kelikely, dia miova aloha ny sata ao amin'ny angon-drakitra (database Tracker), ary avy eo dia mipoitra avy hatrany ny hetsika "OrderInWork". Izy io koa dia miditra ao amin'ny RMQ, izay atambatra ao anaty tahiry monolitika ary atolotra amin'ny serivisy hafa. Mety misy olana isan-karazany amin'ity lalana ity; ny antsipiriany bebe kokoa momba azy ireo dia azo jerena ao amin'ny tatitry ny Zhenya Peshkov momba ny antsipirian'ny fampiharana ny Fifanarahana farany amin'ny Tracker.

Ny maritrano farany aorian'ny fanovana ao amin'ny Auth sy Tracker

Tantaran'ny Dodo IS Architecture: The Back Office Path

Raha fintinina: Tany am-boalohany dia nanana hevitra aho handrafetana ny tantaran'ny rafitra Dodo IS naharitra sivy taona ho lahatsoratra iray. Te hiresaka haingana sy tsotra momba ny dingan'ny evolisiona aho. Na izany aza, rehefa nipetraka mba handalina ny fitaovana aho, dia nahatsapa fa ny zava-drehetra dia sarotra kokoa sy mahaliana kokoa noho ny toa.

Rehefa nisaintsaina ny tombotsoa (na ny tsy fahampian'izany) amin'ny fitaovana toy izany aho, dia tonga tamin'ny fanatsoahan-kevitra fa ny fampandrosoana mitohy dia tsy azo atao raha tsy misy tantara feno momba ny zava-nitranga, famerenana amin'ny antsipiriany ary famakafakana ny fanapahan-kevitra taloha.

Manantena aho fa nahasoa sy nahaliana anao ny mianatra momba ny dianay. Ankehitriny aho dia miatrika safidy izay ampahany amin'ny rafitra Dodo IS holazaina amin'ny lahatsoratra manaraka: manorata ao amin'ny fanehoan-kevitra na mifidy.

Ireo mpampiasa voasoratra anarana ihany no afaka mandray anjara amin'ny fanadihadiana. HiditraPlease.

Inona no ampahany amin'ny Dodo IS tianao ho fantatra ao amin'ny lahatsoratra manaraka?

  • 24,1%Monolith voalohany tao Dodo IS (2011-2015)14

  • 24,1%Olana voalohany sy ny vahaolana (2015-2016)14

  • 20,7%Lalana amin'ny ampahany amin'ny mpanjifa: fasana ambonin'ny fototra (2016-2017)12

  • 36,2%Tantaran'ny tena microservices (2018-2019)21

  • 44,8%Vita ny fanapahana ny monolith sy ny fanamafisana ny maritrano26

  • 29,3%Momba ny drafitra fanampiny ho an'ny fampandrosoana ny rafitra17

  • 19,0%Tsy te hahalala na inona na inona momba ny Dodo IS11 aho

Mpampiasa 58 no nifidy. Mpampiasa 6 no nifady.

Source: www.habr.com

Add a comment