Keeb Kwm ntawm Dodo IS Architecture: Txoj Kev Back Office

Habr yog hloov lub ntiaj teb no. Peb tau blogging ntau tshaj ib xyoos tam sim no. Txog rau lub hlis dhau los, peb tau txais cov lus pom zoo los ntawm Khabrovites: β€œDodo, koj hais txhua qhov chaw uas koj muaj koj tus kheej. Thiab qhov no yog dab tsi? Thiab vim li cas thiaj xav tau ib lub pizza saw?

Peb zaum, xav thiab paub tias koj hais yog lawm. Peb sim piav qhia txhua yam ntawm peb cov ntiv tes, tab sis nws tawm los ntawm cov khoom tawg thiab tsis muaj qhov chaw ua tiav ntawm qhov system. Yog li pib taug kev ntev ntawm kev sau cov ntaub ntawv, tshawb nrhiav cov kws sau ntawv thiab sau cov ntawv xov xwm txog Dodo IS. Wb mus!

Kev lees paub: Ua tsaug rau koj qhia koj cov lus qhia nrog peb. Ua tsaug rau nws, thaum kawg peb tau piav qhia txog lub kaw lus, suav nrog cov txheej txheem radar thiab yuav sai sai no nthuav tawm cov lus piav qhia loj ntawm peb cov txheej txheem. Yog tsis muaj koj, peb yuav tau zaum ntawm 5 xyoos ntxiv.

Keeb Kwm ntawm Dodo IS Architecture: Txoj Kev Back Office

Cov kab lus "Dodo yog dab tsi?" qhia txog:

  1. Thaum ntxov monolith hauv Dodo IS (2011-2015). (Nyob rau hauv kev kawm ...)
  2. Txoj kev rov qab mus rau chaw ua haujlwm: cais cov hauv paus thiab tsheb npav. (koj nyob ntawm no)
  3. Cov neeg sab nrauv txoj kev: facade hla lub hauv paus (2016-2017). (Nyob rau hauv kev kawm ...)
  4. Keeb kwm ntawm microservices tiag. (2018-2019). (Nyob rau hauv kev kawm ...)
  5. Ua tiav sawing ntawm monolith thiab stabilization ntawm architecture. (Nyob rau hauv kev kawm ...)

Yog tias koj xav paub lwm yam - sau rau hauv cov lus.

Kev xav ntawm lub sijhawm piav qhia los ntawm tus sau
Kuv niaj hnub tuav lub rooj sib tham rau cov neeg ua haujlwm tshiab ntawm lub ncauj lus "System Architecture". Peb hu nws "Intro to Dodo IS Architecture" thiab nws yog ib feem ntawm cov txheej txheem onboarding rau cov neeg tsim khoom tshiab. Qhia nyob rau hauv ib daim ntawv los yog lwm yam txog peb architecture, hais txog nws cov yam ntxwv, kuv tau yug los ib tug tej yam keeb kwm mus kom ze rau cov lus piav qhia.

Kev lig kev cai, peb saib cov txheej txheem raws li cov txheej txheem (cov txheej txheem los yog qib siab dua), cov qauv kev lag luam uas cuam tshuam nrog ib leeg kom ua tiav qee lub hom phiaj. Thiab yog tias qhov kev pom zoo li no yog tsim nyog rau kev tsim, ces nws tsis haum rau kev piav qhia thiab kev nkag siab. Muaj ntau ntau yam ntawm no:

  • Kev muaj tiag txawv ntawm qhov muaj nyob rau ntawm daim ntawv. Tsis yog txhua yam ua haujlwm raws li kev npaj. Thiab peb txaus siab nyob rau hauv yuav ua li cas nws tau tig tawm thiab ua haujlwm.
  • Kev nthuav qhia zoo ib yam ntawm cov ntaub ntawv. Qhov tseeb, koj tuaj yeem mus chronologically txij thaum pib mus rau lub xeev tam sim no.
  • Los ntawm yooj yim mus rau complex. Tsis yog universally, tab sis nyob rau hauv peb cov ntaub ntawv nws yog. Lub architecture tau hloov los ntawm kev yooj yim dua mus rau ntau qhov nyuaj. Feem ntau los ntawm cov teeb meem, cov teeb meem ntawm kev siv ceev thiab kev ruaj ntseg raug daws, nrog rau ntau ntau lwm yam khoom los ntawm cov npe ntawm cov kev cai tsis ua haujlwm (no zoo hais txog qhov sib txawv ntawm qhov sib txawv nrog lwm cov kev xav tau).

Xyoo 2011, Dodo IS architecture zoo li no:

Keeb Kwm ntawm Dodo IS Architecture: Txoj Kev Back Office

Los ntawm 2020, nws tau dhau los ua qhov nyuaj me ntsis thiab tau ua zoo li no:

Keeb Kwm ntawm Dodo IS Architecture: Txoj Kev Back Office

Qhov no evolution tshwm sim li cas? Vim li cas qhov txawv ntawm qhov system xav tau? Qhov kev txiav txim siab ntawm vaj tsev li cas thiab vim li cas? Cia peb kawm paub hauv cov kab lus no.

Thawj qhov teeb meem ntawm 2016: vim li cas cov kev pabcuam yuav tsum tawm ntawm lub monolith

Thawj cov ntawv los ntawm lub voj voog yuav yog hais txog cov kev pabcuam uas yog thawj zaug cais tawm ntawm monolith. Txhawm rau muab koj rau hauv cov ntsiab lus, Kuv yuav qhia koj tias peb muaj teeb meem dab tsi hauv qhov system thaum pib ntawm 2016, uas peb yuav tsum tau ua nrog kev sib cais ntawm cov kev pabcuam.

Ib qho MySql database, uas txhua daim ntawv thov uas muaj nyob rau lub sijhawm ntawd hauv Dodo IS tau sau lawv cov ntaub ntawv. Qhov tshwm sim yog:

  • Hnyav load (nrog 85% ntawm kev thov suav nrog kev nyeem ntawv).
  • Lub hauv paus tau loj hlob. Vim li no, nws cov nqi thiab kev txhawb nqa tau dhau los ua teeb meem.
  • Ib qho kev ua tsis tiav. Yog tias ib daim ntawv thov sau rau hauv cov ntaub ntawv dheev pib ua nws nquag, ces lwm daim ntawv thov xav tias nws ntawm lawv tus kheej.
  • Inefficiency hauv kev khaws cia thiab cov lus nug. Feem ntau cov ntaub ntawv tau muab khaws cia rau hauv qee cov qauv uas yooj yim rau qee qhov xwm txheej tab sis tsis haum rau lwm tus. Indexs ua kom qee qhov kev ua haujlwm, tab sis tuaj yeem ua rau lwm tus qeeb.
  • Qee qhov teeb meem raug tshem tawm los ntawm kev ua nrawm nrawm thiab nyeem-replicas rau hauv lub hauv paus (qhov no yuav yog ib tsab ntawv cais), tab sis lawv tsuas yog tso cai rau lawv kom tau txais lub sijhawm thiab tsis tau daws qhov teeb meem.

Qhov teeb meem yog lub xub ntiag ntawm lub monolith nws tus kheej. Qhov tshwm sim yog:

  • Ib leeg thiab tsis tshua muaj kev tso tawm.
  • Kev nyuaj hauv kev sib koom ua ke ntawm cov neeg coob coob.
  • Tsis muaj peev xwm nqa tau cov thev naus laus zis tshiab, lub moj khaum tshiab thiab cov tsev qiv ntawv.

Teeb meem nrog lub hauv paus thiab monolith tau piav qhia ntau zaus, piv txwv li, hauv cov ntsiab lus ntawm kev sib tsoo thaum ntxov 2018 (Ua zoo li Munch, lossis ob peb lo lus hais txog kev qiv nyiaj, Hnub Dodo IS nres. Asynchronous Script ΠΈ Zaj dab neeg ntawm Dodo noog los ntawm tsev neeg Phoenix. Lub Caij Nplooj Ntoos Zeeg Loj ntawm Dodo IS), yog li kuv yuav tsis nyob ntau dhau. Cia kuv hais tias peb xav muab kev hloov pauv ntau dua thaum tsim cov kev pabcuam. Ua ntej ntawm tag nrho cov, qhov no txhawj xeeb cov uas yog cov feem ntau loaded thiab lub hauv paus nyob rau hauv tag nrho cov system - Auth thiab Tracker.

Txoj Kev Back Office: Separate Bases and Bus

Tshooj navigation

  1. Monolith tswvyim 2016
  2. Pib Unload lub Monolith: Auth thiab Tracker Separation
  3. Auth ua dab tsi?
  4. Cov loads nyob qhov twg?
  5. Unloading Auth
  6. Tracker ua dab tsi?
  7. Cov loads nyob qhov twg?
  8. Unloading Tracker

Monolith tswvyim 2016

Ntawm no yog cov blocks tseem ceeb ntawm Dodo IS 2016 monolith, thiab hauv qab no yog cov ntawv sau tseg ntawm lawv cov haujlwm tseem ceeb.
Keeb Kwm ntawm Dodo IS Architecture: Txoj Kev Back Office
Tus Cashier Delivery. Accounting rau couriers, muab kev txiav txim rau couriers.
Hu rau center. Txais kev txiav txim los ntawm tus neeg teb xov tooj.
site. Peb lub vev xaib (dodopizza.ru, dodopizza.co.uk, dodopizza.by, thiab lwm yam).
Auth. Kev tso cai thiab kev lees paub kev pabcuam rau lub chaw ua haujlwm tom qab.
tracker. Order tracker hauv chav ua noj. Kev pabcuam rau kev kos cov xwm txheej npaj txhij thaum npaj kev txiav txim.
Nyiaj txiag rooj ntawm lub tsev noj mov. Kev txiav txim hauv tsev noj mov, tus neeg txais nyiaj interfaces.
export. Uploading qhia hauv 1C rau accounting.
Cov ntawv ceeb toom thiab cov ntawv xa nyiaj. Lub suab lus txib hauv chav ua noj (piv txwv li, "Tshiab pizza tuaj txog") + invoice printing rau couriers.
Shift Manager. Interfaces rau kev ua haujlwm ntawm tus thawj tswj haujlwm: cov npe ntawm kev txiav txim, cov duab ua haujlwm, hloov cov neeg ua haujlwm mus rau kev ua haujlwm.
Tus Thawj Saib Xyuas Haujlwm. Interfaces rau kev ua hauj lwm ntawm franchisee thiab tus thawj tswj: txais tos cov neeg ua hauj lwm, qhia txog kev ua hauj lwm ntawm lub pizzeria.
Tsev noj mov Scoreboard. Cov ntawv qhia zaub mov hauv TVs hauv pizzerias.
admin. Kev teeb tsa hauv ib qho tshwj xeeb pizzeria: ntawv qhia zaub mov, nqi, accounting, promo codes, promotions, website banners, etc.
Tus Neeg Ua Haujlwm Tus Kheej Tus Kheej. Cov sijhawm ua haujlwm ntawm cov neeg ua haujlwm, cov ntaub ntawv hais txog cov neeg ua haujlwm.
Chav ua noj Motivation Board. Ib qho screen cais uas dai rau hauv chav ua noj thiab qhia qhov ceev ntawm cov neeg ua pizza.
Kev sib txuas lus. Xa sms thiab email.
FileStorage. Tus kheej kev pabcuam rau kev txais thiab muab cov ntaub ntawv zoo li qub.

Thawj qhov kev sim daws cov teeb meem tau pab peb, tab sis lawv tsuas yog kev so ib ntus xwb. Lawv tsis tau dhau los ua cov kev daws teeb meem, yog li nws pom tseeb tias qee yam yuav tsum tau ua nrog cov hauv paus. Piv txwv li, faib cov ntaub ntawv dav dav rau ntau qhov tshwj xeeb.

Pib Unload lub Monolith: Auth thiab Tracker Separation

Cov kev pabcuam tseem ceeb uas tau kaw thiab nyeem los ntawm cov ntaub ntawv ntau dua li lwm tus:

  1. Auth. Kev tso cai thiab kev lees paub kev pabcuam rau lub chaw ua haujlwm tom qab.
  2. Tracker. Order tracker hauv chav ua noj. Kev pabcuam rau kev kos cov xwm txheej npaj txhij thaum npaj kev txiav txim.

Auth ua dab tsi?

Auth yog ib qho kev pabcuam uas cov neeg siv nkag mus rau hauv lub chaw ua haujlwm tom qab (muaj ib qho kev nkag sab nraud ntawm tus neeg siv khoom). Nws tseem raug hu ua raws li hauv kev thov kom paub tseeb tias cov cai nkag mus tau tam sim no thiab cov cai no tsis tau hloov pauv txij li kev nkag mus dhau los. Los ntawm nws, cov khoom siv nkag mus rau hauv pizzeria.

Piv txwv li, peb xav qhib ib qho zaub nrog cov xwm txheej ntawm kev txiav txim tiav ntawm lub TV dai rau hauv chav. Tom qab ntawd peb qhib auth.dodopizza.ru, xaiv "ID nkag mus raws li lub cuab yeej", ib tus lej tshwm tuaj yeem nkag mus rau hauv nplooj ntawv tshwj xeeb ntawm tus tswj hwm hloov pauv lub khoos phis tawj, qhia txog hom khoom siv (duab). Lub TV nws tus kheej yuav hloov mus rau qhov xav tau interface ntawm nws cov pizzeria thiab pib tso tawm cov npe ntawm cov neeg siv khoom uas nws xaj tau npaj muaj.

Keeb Kwm ntawm Dodo IS Architecture: Txoj Kev Back Office

Cov loads nyob qhov twg?

Txhua tus neeg siv ntawm lub chaw ua haujlwm rov qab mus rau hauv cov ntaub ntawv, mus rau lub rooj neeg siv rau txhua qhov kev thov, rub tawm tus neeg siv los ntawm cov lus nug sql thiab xyuas seb nws puas muaj cai nkag mus rau nplooj ntawv no.

Txhua yam ntawm cov cuab yeej ua tib yam nkaus xwb nrog lub rooj ntaus ntawv, xyuas nws lub luag haujlwm thiab kev nkag mus. Ib tug loj tus naj npawb ntawm kev thov mus rau tus tswv database ua rau nws loading thiab pov tseg ntawm cov kev pab cuam ntawm ib tug database rau cov kev khiav hauj lwm.

Unloading Auth

Auth muaj ib qho chaw cais, uas yog, cov ntaub ntawv hais txog cov neeg siv, kev nkag lossis cov khoom siv nkag mus rau qhov kev pabcuam (rau lub sijhawm) thiab tseem nyob ntawd. Yog tias ib tug neeg xav tau lawv, ces nws yuav mus rau qhov kev pabcuam no rau cov ntaub ntawv.

YOG. Thawj txheej txheem ntawm kev ua haujlwm yog raws li hauv qab no:

Keeb Kwm ntawm Dodo IS Architecture: Txoj Kev Back Office

Kuv xav piav me ntsis seb nws ua haujlwm li cas:

  1. Ib qho kev thov los ntawm sab nraud tuaj rau lub backend (muaj Asp.Net MVC), nqa nrog nws cov khoom qab zib sib tham, uas yog siv los txais cov ntaub ntawv sib kho los ntawm Redis(1). Nws ob leeg muaj cov ntaub ntawv hais txog kev nkag mus, thiab tom qab ntawd nkag mus rau tus maub los qhib (3,4), lossis tsis.
  2. Yog tias tsis muaj kev nkag mus, koj yuav tsum mus dhau ntawm txoj kev tso cai. Ntawm no, rau kev yooj yim, nws tau pom tias yog ib feem ntawm txoj hauv kev hauv tib tus cwj pwm, txawm hais tias nws yog kev hloov pauv mus rau nplooj ntawv nkag. Hauv qhov xwm txheej zoo, peb yuav tau txais kev sib kho kom raug thiab mus rau Backoffice Controller.
  3. Yog tias muaj cov ntaub ntawv, ces koj yuav tsum tau xyuas nws kom muaj feem cuam tshuam hauv cov neeg siv khoom. Puas yog nws lub luag haujlwm tau hloov pauv, nws puas yuav tsum tsis tso cai rau nplooj ntawv tam sim no? Hauv qhov no, tom qab tau txais qhov kev sib kho (1), koj yuav tsum tau ncaj qha mus rau hauv cov ntaub ntawv thiab xyuas cov neeg siv kev nkag mus siv cov txheej txheem authentication logic (2). Tom ntej no, mus rau nplooj ntawv nkag, lossis mus rau tus tswj hwm. Xws li ib tug yooj yim system, tab sis tsis heev tus qauv.
  4. Yog tias tag nrho cov txheej txheem dhau, ces peb hla mus ntxiv hauv cov logic hauv cov tswj thiab cov txheej txheem.

Cov neeg siv cov ntaub ntawv raug cais los ntawm tag nrho lwm cov ntaub ntawv, nws tau muab cia rau hauv ib lub rooj sib tham ua tswv cuab, kev ua haujlwm los ntawm AuthService logic txheej yuav zoo dhau los ua api txoj kev. Domain ciam teb yog txhais tau meej heev: cov neeg siv, lawv lub luag haujlwm, cov ntaub ntawv nkag, tso cai thiab tshem tawm kev nkag. Txhua yam zoo li kom nws tuaj yeem raug tshem tawm hauv ib qho kev pabcuam cais.

TUAJ. Yog li lawv tau ua:

Keeb Kwm ntawm Dodo IS Architecture: Txoj Kev Back Office

Txoj kev no muaj ntau yam teeb meem. Piv txwv li, hu rau ib txoj hauv kev tsis zoo ib yam li hu rau kev pabcuam sab nraud ntawm http. Latency, kev cia siab, kev ruaj ntseg, pob tshab ntawm kev ua haujlwm yog txawv kiag li. Andrey Morevskiy tau hais ntau ntxiv txog cov teeb meem no hauv nws daim ntawv tshaj tawm. "50 Duab ntxoov ntxoo ntawm Microservices".

Cov kev pabcuam authentication thiab, nrog rau nws, cov cuab yeej pabcuam yog siv rau lub chaw ua haujlwm tom qab, uas yog, rau cov kev pabcuam thiab kev sib txuas siv hauv kev tsim khoom. Kev lees paub rau cov neeg siv khoom (xws li lub vev xaib lossis daim ntawv thov mobile) tshwm sim sib cais yam tsis siv Auth. Kev sib cais tau siv li ib xyoos, thiab tam sim no peb rov hais txog cov ncauj lus no, hloov lub kaw lus mus rau cov kev pabcuam kev lees paub tshiab (nrog cov qauv kev cai).

Vim li cas kev sib cais thiaj li ntev?
Muaj ntau yam teeb meem ntawm txoj kev uas ua rau peb qeeb:

  1. Peb xav txav cov neeg siv, ntaus ntawv, thiab kev lees paub cov ntaub ntawv los ntawm cov ntaub ntawv tshwj xeeb hauv lub tebchaws rau hauv ib qho. Txhawm rau ua qhov no, peb yuav tsum txhais tag nrho cov lus thiab kev siv los ntawm int identifier mus rau lub ntiaj teb UUId tus cim (tsis ntev los no rov ua haujlwm no code Roman Bukin "Uuid - zaj dab neeg loj ntawm cov qauv me me" thiab qhib qhov project Keeb kwm). Kev khaws cia cov neeg siv cov ntaub ntawv (vim nws yog cov ntaub ntawv ntiag tug) muaj nws cov kev txwv thiab rau qee lub tebchaws nws yog qhov tsim nyog yuav tsum khaws lawv cais. Tab sis tus neeg siv lub ntiaj teb no id yuav tsum yog.
  2. Ntau lub rooj hauv cov ntaub ntawv muaj cov ntaub ntawv tshawb xyuas txog tus neeg siv uas ua haujlwm. Qhov no yuav tsum tau muaj ib tug ntxiv mechanism rau kev sib xws.
  3. Tom qab tsim cov kev pabcuam api, muaj lub sijhawm ntev thiab maj mam hloov mus rau lwm qhov system. Kev hloov pauv yuav tsum muaj seamless rau cov neeg siv thiab xav tau phau ntawv ua haujlwm.

Cov txheej txheem sau npe ntaus ntawv hauv pizzeria:

Keeb Kwm ntawm Dodo IS Architecture: Txoj Kev Back Office

General architecture tom qab rho tawm ntawm Auth thiab Devices kev pabcuam:

Keeb Kwm ntawm Dodo IS Architecture: Txoj Kev Back Office

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Rau 2020, peb tab tom ua haujlwm ntawm Auth version tshiab, uas yog raws li OAuth 2.0 tus qauv tso cai. Cov qauv no yog qhov nyuaj heev, tab sis nws muaj txiaj ntsig zoo rau kev tsim cov kev pabcuam dhau los ntawm kev lees paub. Hauv tsab xov xwm "Subtleties ntawm kev tso cai: cov ntsiab lus ntawm OAuth 2.0 thev naus laus zisΒ» peb Alexey Chernyaev sim qhia txog tus qauv yooj yim thiab meej li sai tau kom koj txuag sijhawm rau kev kawm.

Tracker ua dab tsi?

Tam sim no hais txog qhov thib ob ntawm cov kev pabcuam thauj khoom. Tus tracker ua ob lub luag haujlwm:

  • Ntawm ib sab, nws txoj haujlwm yog qhia cov neeg ua haujlwm hauv chav ua noj seb qhov kev txiav txim tam sim no hauv kev ua haujlwm, yam khoom twg yuav tsum tau ua kom siav tam sim no.
  • Ntawm qhov tod tes, kom digitize tag nrho cov txheej txheem hauv chav ua noj.

Keeb Kwm ntawm Dodo IS Architecture: Txoj Kev Back Office

Thaum cov khoom tshiab tshwm nyob rau hauv ib qho kev txiav txim (piv txwv li, pizza), nws mus rau Rolling out tracker station. Nyob rau ntawm qhov chaw nres tsheb no, muaj ib tug pizza txiag uas siv ib tug bun ntawm qhov yuav tsum tau loj thiab yob nws tawm, tom qab uas nws sau rau ntawm lub tracker ntsiav tshuaj hais tias nws tau ua tiav nws txoj hauj lwm thiab hloov lub dov lub khob noom cookie mus rau tom ntej no chaw nres tsheb - "Kev pib" .

Nyob ntawd, tus neeg tsim khoom pizza tom ntej sau cov pizza, tom qab ntawv sau rau ntawm lub ntsiav tshuaj tias nws tau ua tiav nws txoj haujlwm thiab muab pizza tso rau hauv qhov cub (qhov no kuj yog ib qho chaw nres tsheb sib cais uas yuav tsum tau sau rau hauv cov ntsiav tshuaj). Xws li ib tug system yog los ntawm thaum pib ntawm Dodo thiab los ntawm thaum pib ntawm lub hav zoov ntawm Dodo IS. Nws tso cai rau koj mus taug qab thiab digitize tag nrho cov kev lag luam. Tsis tas li ntawd, tus tracker qhia txog yuav ua li cas ua noj ib yam khoom, qhia txhua yam khoom raws li nws cov txheej txheem tsim khoom, khaws lub sijhawm ua noj kom zoo rau cov khoom, thiab taug qab txhua txoj haujlwm ntawm cov khoom.

Keeb Kwm ntawm Dodo IS Architecture: Txoj Kev Back OfficeQhov no yog li cas lub vijtsam ntawm cov ntsiav tshuaj zoo li ntawm qhov chaw nres tsheb ntawm tus tracker "Raskatka"

Cov loads nyob qhov twg?

Txhua lub pizzerias muaj txog tsib ntsiav tshuaj nrog tus tracker. Xyoo 2016, peb muaj ntau tshaj 100 pizzerias (thiab tam sim no ntau dua 600). Txhua lub ntsiav tshuaj ua ib qho kev thov mus rau lub backend ib zaug txhua 10 vib nas this thiab khawb cov ntaub ntawv los ntawm lub rooj txiav txim (kev sib txuas nrog tus neeg siv khoom thiab chaw nyob), kev txiav txim muaj pes tsawg leeg (kev sib txuas nrog cov khoom thiab qhia txog qhov ntau), cov lus txhawb nqa nyiaj txiag (lub lub sijhawm nias yog taug qab hauv nws). Thaum tus neeg tsim khoom pizza nyem rau ntawm cov khoom ntawm tus tracker, cov ntawv nkag hauv tag nrho cov lus no tau hloov kho. Lub rooj txiav txim yog dav dav, nws kuj muaj cov lus ntxig thaum lees txais qhov kev txiav txim, hloov tshiab los ntawm lwm qhov ntawm lub kaw lus thiab nyeem ntau heev, piv txwv li, ntawm lub TV uas dai rau hauv lub pizzeria thiab qhia cov lus txiav txim tiav rau cov neeg siv khoom.

Thaum lub sij hawm ntawm kev tawm tsam nrog loads, thaum txhua yam thiab txhua yam yog cached thiab pauv mus rau lub asynchronous replica ntawm lub hauv paus, cov kev khiav hauj lwm nrog tus tracker txuas ntxiv mus rau tus tswv puag. Yuav tsum tsis txhob muaj kev lag luam, cov ntaub ntawv yuav tsum tau hloov kho tshiab, tawm ntawm sync tsis tau.

Tsis tas li ntawd, qhov tsis muaj cov ntxhuav thiab qhov ntsuas ntawm lawv tsis tso cai sau cov lus nug tshwj xeeb ntxiv rau lawv siv. Piv txwv li, nws yuav ua tau zoo rau tus tracker kom muaj qhov ntsuas rau lub pizzeria ntawm lub rooj txiav txim. Peb ib txwm tshem pizzeria xaj los ntawm tracker database. Nyob rau tib lub sijhawm, kom tau txais ib qho kev txiav txim, nws tsis yog qhov tseem ceeb uas pizzeria nws poob rau hauv, nws yog qhov tseem ceeb dua uas tus neeg tau txais kev txiav txim no. Thiab txhais tau hais tias muaj qhov ntsuas ntawm tus neeg siv khoom tsim nyog. Nws tseem tsis tsim nyog rau tus neeg taug qab khaws cov id ntawm daim ntawv lees paub lossis cov nyiaj txhawb nqa ntxiv uas cuam tshuam nrog kev txiav txim hauv lub rooj txiav txim. Cov ntaub ntawv no tsis txaus siab rau peb qhov kev pabcuam tracker. Hauv cov ntaub ntawv monolithic ntau, cov ntxhuav tsuas yog kev sib haum xeeb ntawm txhua tus neeg siv. Qhov no yog ib qho ntawm cov teeb meem qub.

YOG. Thawj architecture yog:

Keeb Kwm ntawm Dodo IS Architecture: Txoj Kev Back Office

Txawm tias tom qab tau muab cais ua cov txheej txheem sib cais, feem ntau ntawm cov cai hauv paus tseem muaj rau cov kev pabcuam sib txawv. Txhua yam hauv qab cov tswj tau yog ib leeg thiab nyob hauv tib lub chaw cia khoom. Peb siv ntau txoj kev pabcuam, chaw cia khoom, ib puag ncig, uas muaj cov rooj sib tham.

Unloading Tracker

Qhov teeb meem tseem ceeb nrog tus tracker yog cov ntaub ntawv yuav tsum tau synchronized ntawm cov databases sib txawv. Qhov no kuj yog nws qhov sib txawv tseem ceeb ntawm kev sib cais ntawm qhov kev pabcuam Auth, qhov kev txiav txim thiab nws cov xwm txheej tuaj yeem hloov pauv thiab yuav tsum tau muab tso rau hauv cov kev pabcuam sib txawv.

Peb lees txais qhov kev txiav txim ntawm Lub Tsev Noj Mov Checkout (qhov no yog ib qho kev pabcuam), nws tau muab khaws cia rau hauv cov ntaub ntawv hauv qhov "Accepted" xwm txheej. Tom qab ntawd, nws yuav tsum tau mus rau tus tracker, qhov twg nws yuav hloov nws cov xwm txheej ntau zaus: los ntawm "Khoom" mus rau "Packed". Nyob rau tib lub sijhawm, qee qhov cuam tshuam sab nraud los ntawm Cashier lossis Shift Manager interface tuaj yeem tshwm sim nrog qhov kev txiav txim. Kuv yuav muab cov xwm txheej txiav txim nrog lawv cov lus piav qhia hauv lub rooj:

Keeb Kwm ntawm Dodo IS Architecture: Txoj Kev Back Office
Lub tswv yim rau kev hloov pauv cov xwm txheej zoo li no:

Keeb Kwm ntawm Dodo IS Architecture: Txoj Kev Back Office

Cov xwm txheej hloov ntawm cov tshuab sib txawv. Thiab ntawm no tus tracker tsis yog qhov kawg system uas cov ntaub ntawv raug kaw. Peb tau pom ntau txoj hauv kev rau kev faib tawm hauv rooj plaub no:

  1. Peb tsom txhua qhov kev txiav txim hauv ib qho kev pabcuam. Hauv peb qhov xwm txheej, qhov kev xaiv no xav tau kev pabcuam ntau dhau los ua haujlwm nrog kev txiav txim. Yog tias peb nres ntawm nws, peb yuav tau txais lub monolith thib ob. Peb yuav tsis daws qhov teeb meem.
  2. Ib lub kaw lus hu rau lwm tus. Qhov kev xaiv thib ob yog qhov nthuav dua. Tab sis nrog nws, chains ntawm kev hu yog ua tau (cascading tsis ua hauj lwm), kev sib txuas ntawm cov khoom sib txuas yog siab dua, nws nyuaj rau kev tswj hwm.
  3. Peb npaj cov txheej xwm, thiab txhua qhov kev pabcuam sib txuas lus nrog lwm tus los ntawm cov xwm txheej no. Yog li ntawd, nws yog qhov kev xaiv thib peb uas tau xaiv, raws li txhua qhov kev pabcuam pib sib pauv cov xwm txheej nrog ib leeg.

Qhov tseeb tias peb xaiv qhov kev xaiv thib peb txhais tau hais tias tus tracker yuav muaj nws tus kheej cov ntaub ntawv, thiab rau txhua qhov kev hloov pauv hauv kev txiav txim, nws yuav xa ib qho kev tshwm sim txog qhov no, uas lwm cov kev pabcuam sau npe thiab uas tseem poob rau hauv tus tswv database. Txhawm rau ua qhov no, peb xav tau qee qhov kev pabcuam uas yuav ua kom muaj kev xa xov ntawm cov kev pabcuam.

Los ntawm lub sijhawm ntawd, peb twb muaj RabbitMQ hauv pawg, yog li qhov kev txiav txim siab zaum kawg los siv nws ua tus xa xov. Daim duab qhia txog kev hloov pauv ntawm qhov kev txiav txim los ntawm Tsev Noj Mov Cashier los ntawm Tracker, qhov twg nws hloov nws cov xwm txheej thiab nws cov zaub ntawm Tus Thawj Saib Xyuas Kev Txiav Txim. TUAJ:

Keeb Kwm ntawm Dodo IS Architecture: Txoj Kev Back Office

Order txoj kev ib kauj ruam
Txoj kev txiav txim pib ntawm ib qho ntawm cov kev pabcuam xaj xaj. Ntawm no yog Cashier ntawm Tsev Noj Mov:

  1. Thaum lub checkout, qhov kev txiav txim yog npaj txhij, thiab nws yog lub sij hawm xa mus rau tus tracker. Qhov xwm txheej uas tus tracker tau sau npe yog pov tseg.
  2. Tus tracker, lees txais qhov kev txiav txim rau nws tus kheej, txuag nws rau nws tus kheej cov ntaub ntawv, ua qhov kev tshwm sim "Order Txais los ntawm Tracker" thiab xa mus rau RMQ.
  3. Muaj ob peb tus neeg tuav haujlwm twb tau sau npe rau qhov kev tshwm sim tsheb npav ib qho kev txiav txim. Rau peb, ib qho uas ua rau synchronization nrog lub hauv paus monolithic yog qhov tseem ceeb.
  4. Tus tuav tau txais ib qho kev tshwm sim, xaiv los ntawm nws cov ntaub ntawv uas tseem ceeb rau nws: nyob rau hauv peb cov ntaub ntawv, qhov no yog cov xwm txheej ntawm qhov kev txiav txim "Tau txais los ntawm tus Tracker" thiab hloov kho nws qhov chaw nyob rau hauv lub ntsiab database.

Yog tias ib tug neeg xav tau kev txiav txim los ntawm cov lus txiav txim monolithic, ces koj tuaj yeem nyeem nws los ntawm qhov ntawd thiab. Piv txwv li, Orders interface hauv Shift Manager xav tau qhov no:

Keeb Kwm ntawm Dodo IS Architecture: Txoj Kev Back Office

Tag nrho lwm cov kev pabcuam tseem tuaj yeem sau npe yuav xaj cov xwm txheej los ntawm tus tracker siv rau lawv tus kheej.

Yog tias tom qab ib ntus kev txiav txim raug coj mus ua haujlwm, tom qab ntawd nws cov xwm txheej thawj zaug hloov pauv hauv nws cov ntaub ntawv (Tracker database), thiab tom qab ntawd qhov "OrderIn Progress" tshwm sim tam sim ntawd. Nws kuj tau txais mus rau hauv RMQ, los ntawm qhov chaw nws tau synchronized nyob rau hauv ib tug monolithic database thiab xa mus rau lwm yam kev pab cuam. Tej zaum yuav muaj ntau yam teeb meem ntawm txoj kev, cov ntsiab lus ntxiv txog lawv tuaj yeem pom nyob rau hauv tsab ntawv ceeb toom ntawm Zhenya Peshkov hais txog qhov kev siv cov ntsiab lus ntawm qhov tshwm sim sib xws hauv Tracker.

Qhov kawg architecture tom qab hloov pauv hauv Auth thiab Tracker

Keeb Kwm ntawm Dodo IS Architecture: Txoj Kev Back Office

Summing txog qhov nruab nrab qhov tshwm sim: Thaum pib, kuv muaj lub tswv yim los ntim cov cuaj-xyoo keeb kwm ntawm Dodo IS system rau hauv ib tsab xov xwm. Kuv xav sai thiab yooj yim tham txog cov theem ntawm evolution. Txawm li cas los xij, zaum ntawm cov khoom siv, kuv pom tau tias txhua yam yog qhov nyuaj thiab nthuav ntau dua li nws zoo li.

Kev xav txog cov txiaj ntsig (lossis tsis muaj) ntawm cov ntaub ntawv zoo li no, kuv tuaj yeem txiav txim siab tias kev txhim kho txuas ntxiv tsis tuaj yeem ua tsis tau yam tsis muaj cov ntaub ntawv sau tseg ntawm cov xwm txheej, cov ncauj lus kom ntxaws rov qab thiab kev tshuaj xyuas ntawm kuv cov kev txiav txim siab yav dhau los.

Kuv vam tias nws yuav muaj txiaj ntsig zoo rau koj los kawm txog peb txoj hauv kev. Tam sim no kuv tau ntsib nrog kev xaiv qhov twg ntawm Dodo IS system los piav qhia hauv tsab xov xwm tom ntej: sau ntawv hauv cov lus lossis pov npav.

Tsuas yog cov neeg siv sau npe tuaj yeem koom nrog hauv daim ntawv ntsuam xyuas. Kos npe rau hauvthov.

Dab tsi ntawm Dodo IS koj xav paub txog hauv tsab xov xwm tom ntej?

  • 24,1%Thaum ntxov monolith hauv Dodo IS (2011-2015)14

  • 24,1%Thawj qhov teeb meem thiab lawv cov kev daws teeb meem (2015-2016) 14

  • 20,7%Cov neeg siv-sab txoj kev: facade tshaj puag (2016-2017)12

  • 36,2%Keeb kwm ntawm microservices tseeb (2018-2019) 21

  • 44,8%Ua tiav sawing ntawm monolith thiab stabilization ntawm architecture26

  • 29,3%Txog cov phiaj xwm ntxiv rau kev txhim kho qhov system17

  • 19,0%Kuv tsis xav paub dab tsi txog Dodo IS11

58 cov neeg siv pov npav. 6 cov neeg siv txwv tsis pub siv.

Tau qhov twg los: www.hab.com

Ntxiv ib saib