Nyob rau hauv tsab xov xwm no, kuv mam li tham txog yuav ua li cas lub project kuv ua hauj lwm rau hloov los ntawm ib tug loj monolith mus rau ib tug txheej ntawm microservices.
Lub phiaj xwm pib nws keeb kwm ntev dhau los, thaum pib ntawm 2000. Thawj cov ntawv tau sau hauv Visual Basic 6. Lub sijhawm dhau los, nws tau pom tseeb tias kev txhim kho hauv hom lus no yuav nyuaj rau kev txhawb nqa yav tom ntej, txij li IDE thiab cov lus nws tus kheej yog tsim los tsis zoo. Thaum kawg ntawm xyoo 2000s, nws tau txiav txim siab hloov mus rau C# kev cog lus ntau dua. Tus tshiab version tau sau nyob rau hauv parallel nrog kev kho dua tshiab, maj mam ntau thiab ntau code tau sau nyob rau hauv .NET. Backend hauv C# tau pib tsom mus rau kev pabcuam kev tsim vaj tsev, tab sis thaum lub sijhawm txhim kho, cov tsev qiv ntawv uas muaj logic tau siv, thiab cov kev pabcuam tau pib ua haujlwm hauv ib txheej txheem. Qhov tshwm sim yog ib daim ntawv thov uas peb hu ua "kev pabcuam monolith."
Ib qho ntawm ob peb qhov zoo ntawm kev sib xyaw ua ke no yog lub peev xwm ntawm cov kev pabcuam hu rau ib leeg los ntawm API sab nraud. Muaj qhov yuav tsum tau ua ua ntej rau kev hloov mus rau qhov kev pabcuam kom raug, thiab yav tom ntej, microservice architecture.
Peb pib peb txoj haujlwm ntawm decomposition nyob ib ncig ntawm 2015. Peb tseem tsis tau mus txog lub xeev zoo tshaj plaws - tseem muaj qee qhov ntawm txoj haujlwm loj uas tsis tuaj yeem hu ua monoliths, tab sis lawv tsis zoo li microservices. Txawm li cas los xij, kev vam meej yog qhov tseem ceeb.
Kuv yuav tham txog nws hauv tsab xov xwm.
Architecture thiab teeb meem ntawm cov kev daws teeb meem uas twb muaj lawm
Thaum xub thawj, lub architecture zoo li no: UI yog ib daim ntawv thov cais, qhov monolithic yog sau rau hauv Visual Basic 6, daim ntawv thov .NET yog ib txheej ntawm cov kev pabcuam cuam tshuam ua haujlwm nrog cov ntaub ntawv loj loj.
Qhov tsis zoo ntawm qhov kev daws teeb meem dhau los
Ib qho kev ua tsis tiav
Peb muaj ib qho kev ua tsis tiav: daim ntawv thov .NET tau khiav hauv ib txheej txheem. Yog tias ib qho module ua tsis tiav, tag nrho daim ntawv thov ua tsis tiav thiab yuav tsum tau rov pib dua. Txij li thaum peb automate ntau tus txheej txheem rau cov neeg siv sib txawv, vim yog qhov tsis ua haujlwm ntawm ib qho ntawm lawv, txhua tus neeg tsis tuaj yeem ua haujlwm rau qee lub sijhawm. Thiab nyob rau hauv cov ntaub ntawv ntawm ib tug software yuam kev, txawm backup tsis pab.
Queue ntawm kev txhim kho
Qhov teeb meem no yog lub koom haum. Peb daim ntawv thov muaj ntau tus neeg siv khoom, thiab lawv txhua tus xav txhim kho nws sai li sai tau. Yav dhau los, nws tsis tuaj yeem ua qhov no sib npaug, thiab txhua tus neeg siv khoom sawv hauv kab. Cov txheej txheem no tsis zoo rau kev lag luam vim lawv yuav tsum tau ua pov thawj tias lawv txoj haujlwm tseem ceeb. Thiab pab pawg txhim kho tau siv sijhawm los npaj cov kab no. Qhov no tau siv sijhawm ntau thiab siv zog, thiab cov khoom kawg tsis tuaj yeem hloov pauv sai npaum li lawv xav tau.
Kev siv cov peev txheej zoo tshaj plaws
Thaum hosting cov kev pabcuam hauv ib txheej txheem, peb ib txwm tau theej tag nrho cov kev teeb tsa los ntawm server mus rau server. Peb xav muab cov kev pabcuam thauj khoom hnyav tshaj plaws sib cais kom tsis txhob nkim cov peev txheej thiab tau txais kev tswj hwm yooj yim dua ntawm peb txoj kev xa tawm.
Tsis yooj yim rau kev siv cov thev naus laus zis niaj hnub no
Ib qho teeb meem paub txog txhua tus neeg tsim khoom: muaj lub siab xav qhia cov thev naus laus zis niaj hnub rau hauv qhov project, tab sis tsis muaj sijhawm. Nrog rau kev daws teeb meem loj monolithic, txhua qhov hloov tshiab ntawm lub tsev qiv ntawv tam sim no, tsis hais txog kev hloov pauv mus rau ib qho tshiab, hloov mus rau hauv txoj haujlwm tsis tseem ceeb. Nws yuav siv sij hawm ntev los ua pov thawj rau tus thawj coj hauv pab pawg tias qhov no yuav ua rau muaj txiaj ntsig ntau dua li qhov poob siab.
Nyuaj muab cov kev hloov pauv
Qhov no yog qhov teeb meem loj tshaj plaws - peb tau tso tawm txhua ob lub hlis.
Txhua qhov kev tso tawm tau dhau los ua kev puas tsuaj tiag tiag rau lub txhab nyiaj, txawm tias muaj kev sim thiab kev siv zog ntawm cov neeg tsim khoom. Lub lag luam nkag siab tias thaum pib ntawm lub lim tiam qee qhov kev ua haujlwm yuav tsis ua haujlwm. Thiab cov neeg tsim khoom nkag siab tias ib lub lim tiam ntawm qhov xwm txheej loj tos lawv.
Txhua tus muaj lub siab xav hloov qhov xwm txheej.
Kev cia siab los ntawm microservices
Teeb meem ntawm cov khoom siv thaum npaj txhij. Kev xa khoom ntawm cov khoom thaum npaj tau los ntawm decomposing cov tshuaj thiab sib cais cov txheej txheem sib txawv.
Cov khoom me me pab pawg. Qhov no yog qhov tseem ceeb vim tias ib pab pawg loj ua haujlwm ntawm lub qub monolith yog qhov nyuaj los tswj. Cov pab pawg no raug yuam ua haujlwm raws li cov txheej txheem nruj, tab sis lawv xav tau kev muaj tswv yim thiab kev ywj pheej ntau dua. Tsuas yog pab pawg me tuaj yeem them tau qhov no.
Yuav ua li cas txav los ntawm monolith mus rau microservices
Kev muab Microservices
Ua ntej, peb tau txiav txim siab tam sim rau peb tus kheej tias kev sib cais ntawm microservices yog txheej txheem rov ua dua. Peb yeej ib txwm xav kom tsim teeb meem kev lag luam nyob rau hauv parallel. Yuav ua li cas peb yuav siv qhov no technically twb yog peb qhov teeb meem. Yog li ntawd, peb tau npaj rau qhov txheej txheem rov ua dua. Nws yuav tsis ua hauj lwm lwm txoj kev yog tias koj muaj ib daim ntawv thov loj thiab nws tsis tau pib npaj rov sau dua.
Peb siv txoj kev twg los cais microservices?
Thawj txoj kev - txav cov modules uas twb muaj lawm ua cov kev pabcuam. Hauv qhov no, peb muaj hmoo: twb tau sau npe cov kev pabcuam uas ua haujlwm siv WCF raws tu qauv. Lawv tau muab cais ua nyias pawg. Peb xa lawv cais, ntxiv ib lub launcher me me rau txhua qhov tsim. Nws tau sau siv lub tsev qiv ntawv zoo Topshelf, uas tso cai rau koj los khiav daim ntawv thov ob qho tib si raws li kev pabcuam thiab ua lub console. Qhov no yog qhov yooj yim rau kev debugging vim tsis muaj cov haujlwm ntxiv uas yuav tsum tau ua hauv kev daws teeb meem.
Cov kev pabcuam tau txuas nrog raws li kev lag luam logic, txij li lawv tau siv cov rooj sibtham thiab ua haujlwm nrog cov ntaub ntawv sib txawv. Lawv tsis tuaj yeem hu ua microservices hauv lawv daim ntawv ntshiab. Txawm li cas los xij, peb tuaj yeem muab cov kev pabcuam no cais, hauv cov txheej txheem sib txawv. Qhov no ib leeg ua rau nws tuaj yeem txo lawv txoj kev cuam tshuam rau ib leeg, txo qhov teeb meem nrog kev txhim kho kev sib txuas thiab ib qho kev ua tsis tiav.
Kev sib sau ua ke nrog tus tswv tsev tsuas yog ib kab ntawm cov cai hauv chav kawm Program. Peb tau zais ua haujlwm nrog Topshelf hauv chav pabcuam pabcuam.
namespace RBA.Services.Accounts.Host
{
internal class Program
{
private static void Main(string[] args)
{
HostRunner<Accounts>.Run("RBA.Services.Accounts.Host");
}
}
}
Qhov thib ob txoj kev los faib microservices yog: tsim kom lawv daws teeb meem tshiab. Yog hais tias nyob rau tib lub sij hawm lub monolith tsis loj hlob, qhov no twb zoo heev, uas txhais tau hais tias peb tab tom tsiv mus rau txoj kev yog. Txhawm rau daws cov teeb meem tshiab, peb sim tsim cov kev pabcuam cais. Yog tias muaj lub sijhawm zoo li no, peb tau tsim ntau "canonical" cov kev pabcuam uas tswj hwm lawv tus kheej cov ntaub ntawv qauv, cais cov ntaub ntawv.
Cia peb saib ib qho piv txwv ntawm kev faib cov microservice. Koj tuaj yeem coj nws mus rau kev tsim khoom zoo li cas? Hauv qhov piv txwv no, peb muaj ib feem ntawm qhov system - ib qho kev pabcuam them nyiaj, ib qho ntawm cov tshooj cai uas peb xav ua microservice.
Ua ntej tshaj plaws, peb tsim microservice los ntawm kev rov sau cov lej. Peb tab tom txhim kho qee yam uas peb tsis txaus siab rau. Peb ua raws li kev ua lag luam tshiab los ntawm cov neeg siv khoom. Peb ntxiv API Gateway rau kev sib txuas ntawm UI thiab lub backend, uas yuav muab kev hu xov tooj xa mus.
Tom ntej no, peb tso qhov kev teeb tsa no rau hauv kev ua haujlwm, tab sis nyob rau hauv lub xeev tsav. Feem ntau ntawm peb cov neeg siv tseem ua haujlwm nrog cov txheej txheem kev lag luam qub. Rau cov neeg siv tshiab, peb tab tom tsim ib qho tshiab ntawm daim ntawv thov monolithic uas tsis muaj cov txheej txheem no lawm. Qhov tseem ceeb, peb muaj kev sib xyaw ua ke ntawm monolith thiab microservice ua haujlwm ua tus tsav.
Nrog rau kev ua tiav kev tsav tsheb, peb nkag siab tias qhov kev teeb tsa tshiab tuaj yeem ua haujlwm tau tiag tiag, peb tuaj yeem tshem tawm cov qub monolith ntawm qhov sib npaug thiab tawm hauv qhov kev teeb tsa tshiab los ntawm kev daws qhov qub.
Nyob rau hauv tag nrho, peb siv yuav luag tag nrho cov uas twb muaj lawm txoj kev rau splitting lub hauv paus code ntawm ib tug monolith. Tag nrho cov no tso cai rau peb txo qhov luaj li cas ntawm qhov chaw ntawm daim ntawv thov thiab txhais rau cov tsev qiv ntawv tshiab, ua kom zoo dua qhov chaws.
Ua haujlwm nrog database
Cov ntaub ntawv tuaj yeem muab faib ua qhov phem tshaj qhov chaws, vim nws tsis tsuas yog cov schema tam sim no, tab sis kuj suav nrog cov ntaub ntawv keeb kwm.
Peb cov ntaub ntawv, zoo li ntau lwm tus, muaj lwm qhov teeb meem tseem ceeb - nws loj loj. Cov ntaub ntawv no tau tsim los raws li kev lag luam sib txawv ntawm kev lag luam ntawm monolith, thiab kev sib raug zoo sib xyaw ntawm cov ntxhuav ntawm ntau cov ntsiab lus bounded.
Nyob rau hauv peb cov ntaub ntawv, mus rau sab saum toj tag nrho cov teeb meem (loj database, ntau kev sib txuas, tej zaum tsis meej ciam teb ntawm cov ntxhuav), ib tug teeb meem tshwm sim uas tshwm sim nyob rau hauv ntau yam loj tej yaam num: kev siv ntawm cov sib koom database template. Cov ntaub ntawv tau muab los ntawm cov ntxhuav los ntawm kev saib, los ntawm kev rov ua dua, thiab xa mus rau lwm lub tshuab uas xav tau kev rov ua dua tshiab. Raws li qhov tshwm sim, peb tsis tuaj yeem txav cov ntxhuav mus rau hauv ib qho kev sib cais vim lawv tau siv zog.
Tib qhov kev faib rau hauv cov ntsiab lus txwv hauv cov cai pab peb sib cais. Nws feem ntau muab peb lub tswv yim zoo nkauj ntawm yuav ua li cas peb rhuav tshem cov ntaub ntawv ntawm qib database. Peb nkag siab tias lub rooj twg yog nyob rau hauv ib lub ntsiab lus bounded thiab qhov twg rau lwm tus.
Txhawm rau kom ua tiav, peb tuaj yeem hais tias peb muaj teeb meem nrog cov ntaub ntawv: nws nyuaj rau kev ua haujlwm nrog nws piv rau qhov chaws, nws nyuaj dua rau kev qhia, tab sis nws tuaj yeem ua tau thiab yuav tsum tau ua. Peb tau pom qee txoj hauv kev uas tso cai rau peb ua qhov no kom nyab xeeb, tab sis nws tseem yooj yim dua los ua yuam kev nrog cov ntaub ntawv dua li nrog cov cai.
Ua haujlwm nrog qhov chaws
Qhov no yog qhov kos duab kos duab zoo li thaum peb pib txheeb xyuas qhov project monolithic.
Nws tuaj yeem muab faib ua peb txheej. Qhov no yog ib txheej ntawm launched modules, plugins, kev pab cuam thiab ib tug neeg ua si. Qhov tseeb, cov no yog cov ntsiab lus nkag hauv kev daws teeb meem monolithic. Tag nrho cov ntawm lawv tau nruj nreem kaw nrog ib tug Common txheej. Nws muaj kev lag luam logic uas cov kev pabcuam sib koom thiab ntau qhov kev sib txuas. Txhua qhov kev pabcuam thiab plugin siv txog li 10 lossis ntau lub rooj sib tham, nyob ntawm lawv qhov loj thiab lub siab ntawm cov neeg tsim khoom.
Qee lub sij hawm muaj qhov xwm txheej tshwm sim thaum qee yam khoom siv tsis tau koom nrog cov txheej txheem no, tab sis yog cov tsev qiv ntawv hauv tsev. Qhov no tau daws los ntawm kev hloov npe.
Qhov kev txhawj xeeb loj tshaj plaws yog bounded contexts. Nws tshwm sim tias 3-4 cov ntsiab lus tau muab sib xyaw rau hauv ib qho kev sib dhos thiab siv ib leeg hauv tib txoj haujlwm ua lag luam. Nws yog ib qho tsim nyog yuav tsum nkag siab qhov twg qhov no tuaj yeem muab faib thiab raws li thaj tsam li cas, thiab yuav ua li cas ntxiv nrog rau daim ntawv qhia kev faib tawm no rau hauv cov cai sib dhos.
Peb tau tsim ntau txoj cai rau cov txheej txheem sib cais.
Thawj: Peb tsis xav qhia kev lag luam logic ntawm cov kev pabcuam, kev ua ub no thiab plugins. Peb xav ua lag luam logic ywj siab nyob rau hauv microservices. Microservices, ntawm qhov tod tes, yog qhov zoo xav tias yog cov kev pabcuam uas muaj nyob ntawm nws tus kheej. Kuv ntseeg tias txoj hauv kev no yog qhov khib nyiab me ntsis, thiab nws nyuaj rau ua tiav, vim hais tias, piv txwv li, cov kev pabcuam hauv C # yuav nyob rau hauv txhua rooj plaub txuas nrog lub tsev qiv ntawv txheem. Peb qhov system tau sau hauv C#; peb tseem tsis tau siv lwm yam thev naus laus zis. Yog li ntawd, peb txiav txim siab tias peb tuaj yeem them taus siv cov kev sib koom ua ke. Qhov tseem ceeb tshaj plaws yog tias lawv tsis muaj ib feem ntawm kev lag luam logic. Yog tias koj muaj qhov yooj yim wrapper hla ORM koj siv, ces luam tawm ntawm kev pabcuam mus rau kev pabcuam yog kim heev.
Peb pab neeg no yog ib tug kiv cua ntawm sau-driven tsim, yog li dos architecture yog ib tug zoo haum rau peb. Lub hauv paus ntawm peb cov kev pabcuam tsis yog cov ntaub ntawv nkag mus rau txheej, tab sis kev sib dhos nrog cov logic sau, uas tsuas muaj kev lag luam logic thiab tsis muaj kev sib txuas nrog cov txheej txheem. Nyob rau tib lub sijhawm, peb tuaj yeem hloov kho tus kheej ntawm lub rooj sib txoos los daws cov teeb meem ntsig txog lub moj khaum.
Nyob rau theem no peb ntsib peb thawj qhov teeb meem loj. Cov kev pabcuam yuav tsum tau xa mus rau ib lub rooj sibtham, peb xav ua kom lub logic ywj pheej, thiab DRY lub hauv paus ntsiab lus cuam tshuam rau peb ntawm no. Cov neeg tsim khoom xav rov siv cov chav kawm los ntawm cov neeg nyob sib ze kom tsis txhob muaj kev sib tw, thiab vim li ntawd, cov thawj coj tau pib txuas ua ke dua. Peb tau txheeb xyuas cov txiaj ntsig thiab txiav txim siab tias tej zaum qhov teeb meem kuj yog nyob rau hauv thaj chaw ntawm qhov chaw code cia khoom. Peb muaj ib tug loj repository uas muaj tag nrho cov qhov chaws code. Kev daws rau tag nrho qhov project yog qhov nyuaj heev los sib sau ua ke ntawm lub tshuab hauv zos. Yog li ntawd, cais cov kev daws teeb meem me me tau tsim rau qee qhov ntawm qhov project, thiab tsis muaj leej twg txwv tsis pub ntxiv qee qhov kev sib sau ua ke rau lawv thiab rov siv dua. Tib lub cuab yeej uas tsis pub peb ua qhov no yog kev tshuaj xyuas cov cai. Tab sis qee zaus kuj ua tsis tau.
Tom qab ntawd peb pib tsiv mus rau ib qho qauv nrog cais cov chaw khaws cia. Kev lag luam logic tsis ntws los ntawm kev pabcuam rau kev pabcuam, cov thawj coj tau ua ywj pheej tiag tiag. Cov ntsiab lus uas muaj nyob nrog tau txhawb kom meej meej. Peb yuav siv cov tsev qiv ntawv hauv tsev li cas? Peb cais lawv mus rau hauv ib lub repository cais, ces muab tso rau hauv Nuget tej pob khoom, uas peb muab tso rau hauv Artifactory. Nrog txhua qhov kev hloov pauv, kev sib dhos thiab kev tshaj tawm tshwm sim tau.
Peb cov kev pabcuam tau pib siv cov pob khoom siv hauv vaj hauv tsev tib yam li cov khoom siv sab nraud. Peb rub tawm cov tsev qiv ntawv sab nraud los ntawm Nuget. Txhawm rau ua haujlwm nrog Artifactory, qhov twg peb tso cov pob no, peb siv ob tus thawj tswj pob. Hauv cov chaw cia me me peb kuj siv Nuget. Hauv repositories nrog ntau cov kev pabcuam, peb siv Paket, uas muab ntau qhov sib xws ntawm cov qauv.
Yog li, los ntawm kev ua haujlwm ntawm lub hauv paus code, me ntsis hloov lub architecture thiab cais cov repositories, peb ua rau peb cov kev pab cuam ntau ywj siab.
Cov teeb meem hauv vaj tse
Feem ntau ntawm cov downsides mus rau microservices yog cov infrastructure ntsig txog. Koj yuav xav tau automated xa mus, koj yuav xav tau cov tsev qiv ntawv tshiab los khiav cov txheej txheem.
Manual installation nyob rau hauv ib puag ncig
Thaum pib, peb tau nruab qhov kev daws teeb meem rau ib puag ncig manually. Txhawm rau kom ua tiav cov txheej txheem no, peb tsim CI / CD pipeline. Peb tau xaiv cov txheej txheem xa khoom tas mus li vim tias kev xa mus tas li tseem tsis tau txais rau peb los ntawm qhov pom ntawm cov txheej txheem kev lag luam. Yog li ntawd, xa mus rau kev ua haujlwm yog nqa tawm siv lub pob, thiab rau kev sim - txiav.
Peb siv Atlassian, Bitbucket rau qhov chaws cia thiab Xyoob rau lub tsev. Peb nyiam sau cov ntawv tsim hauv ncuav mog qab zib vim nws zoo ib yam li C#. Cov pob khoom npaj tau tuaj rau Artifactory, thiab Ansible tau txais mus rau cov servers xeem, tom qab ntawd lawv tuaj yeem sim tam sim ntawd.
Cais cais
Nyob rau hauv ib lub sij hawm, ib qho ntawm cov tswv yim ntawm lub monolith yog los muab kev sib koom txiav. Peb kuj yuav tsum nkag siab tias yuav ua li cas nrog tus kheej cov cav uas nyob hauv cov disks. Peb cov ntaub ntawv sau rau hauv cov ntawv nyeem. Peb txiav txim siab siv tus qauv ELK pawg. Peb tsis tau sau rau ELK ncaj qha los ntawm cov chaw muab kev pabcuam, tab sis txiav txim siab tias peb yuav ua tiav cov ntawv teev lus thiab sau tus lej ID hauv lawv ua tus cim, ntxiv cov npe kev pabcuam, kom cov cav no tuaj yeem txheeb xyuas tom qab.
Siv Filebeat, peb tau txais lub sijhawm los sau peb cov cav los ntawm cov servers, tom qab ntawd hloov lawv, siv Kibana los tsim cov lus nug hauv UI thiab saib seb qhov kev hu mus li cas ntawm cov kev pabcuam. Trace ID pab ntau nrog qhov no.
Kev sim thiab debugging txog kev pabcuam
Thaum pib, peb tsis nkag siab tag nrho yuav ua li cas debug cov kev pabcuam raug tsim. Txhua yam yooj yim nrog lub monolith; peb khiav nws ntawm lub tshuab hauv zos. Thaum xub thawj lawv sim ua tib yam nrog microservices, tab sis qee zaum kom tag nrho tso ib qho microservice koj yuav tsum tau tso ob peb lwm tus, thiab qhov no tsis yooj yim. Peb pom tau hais tias peb yuav tsum tau txav mus rau tus qauv uas peb tawm ntawm lub tshuab hauv zos tsuas yog cov kev pabcuam lossis cov kev pabcuam uas peb xav tau debug. Cov kev pabcuam ntxiv yog siv los ntawm cov servers uas phim cov kev teeb tsa nrog prod. Tom qab kev debugging, thaum lub sij hawm sim, rau txhua txoj haujlwm, tsuas yog cov kev hloov pauv tau muab rau cov neeg rau zaub mov kuaj. Yog li, qhov kev daws teeb meem yog sim hauv daim ntawv uas nws yuav tshwm sim hauv kev tsim khoom yav tom ntej.
Muaj cov servers uas tsuas yog khiav cov kev pabcuam ntau lawm. Cov servers no yuav tsum muaj nyob rau hauv cov xwm txheej, txhawm rau txheeb xyuas kev xa khoom ua ntej xa mus thiab rau kev cob qhia sab hauv.
Peb tau ntxiv cov txheej txheem ntsuas kev siv tshuab siv lub tsev qiv ntawv nrov Specflow. Kev sim khiav tau siv NUnit tam sim ntawd tom qab xa tawm los ntawm Ansible. Yog hais tias qhov kev pab them nqi ua haujlwm yog tag nrho tsis siv neeg, ces tsis tas yuav tsum muaj kev xeem ntawv. Txawm hais tias qee zaum ntxiv kev ntsuas phau ntawv tseem xav tau. Peb siv cov cim npe hauv Jira los txiav txim seb qhov kev xeem twg los khiav rau ib qho teeb meem tshwj xeeb.
Tsis tas li ntawd, qhov kev xav tau rau kev kuaj load tau nce; yav tas los nws tau ua tsuas yog nyob rau hauv tsawg zaus. Peb siv JMeter los khiav cov kev xeem, InfluxDB los khaws lawv, thiab Grafana los tsim cov txheej txheem graphs.
Peb tau ua tiav dab tsi?
Ua ntej, peb tau tshem ntawm lub tswvyim ntawm "tso tawm". ploj mus yog ob lub hlis monstrous tso tawm thaum lub colossus no tau muab tso rau hauv ib puag ncig tsim khoom, cuam tshuam rau kev lag luam ib ntus. Tam sim no peb xa cov kev pab cuam nyob rau nruab nrab txhua txhua 1,5 hnub, pab pawg vim lawv mus ua haujlwm tom qab kev pom zoo.
Tsis muaj kev ua tsis tiav hauv peb lub cev. Yog tias peb tso microservice nrog cov kab laum, ces qhov kev ua haujlwm cuam tshuam nrog nws yuav tawg, thiab tag nrho lwm yam kev ua haujlwm yuav tsis cuam tshuam. Qhov no zoo heev txhim kho cov neeg siv kev paub.
Peb tuaj yeem tswj tus qauv xa tawm. Koj tuaj yeem xaiv cov pab pawg ntawm cov kev pabcuam cais los ntawm cov kev daws teeb meem, yog tias tsim nyog.
Tsis tas li ntawd, peb tau txo qhov teeb meem loj nrog cov kab loj ntawm kev txhim kho. Tam sim no peb muaj cov khoom sib cais uas ua haujlwm nrog qee qhov kev pabcuam ntawm nws tus kheej. Cov txheej txheem Scrum twb zoo haum ntawm no. Ib pab neeg tshwj xeeb tuaj yeem muaj tus tswv Cov Khoom Siv cais uas muab cov haujlwm rau nws.
Txoj kev xaus
Microservices yog zoo haum rau decomposing complex systems. Nyob rau hauv tus txheej txheem, peb pib to taub dab tsi nyob rau hauv peb lub cev, dab tsi txwv cov ntsiab lus muaj, nyob qhov twg lawv ciam teb. Qhov no tso cai rau koj kom raug faib cov kev txhim kho ntawm cov modules thiab tiv thaiv kev tsis sib haum xeeb.
Microservices muab cov txiaj ntsig ntawm lub koom haum. Lawv feem ntau tham txog tsuas yog architecture, tab sis ib qho kev tsim vaj tsev yog xav tau los daws cov kev xav tau ntawm kev lag luam, thiab tsis yog ntawm nws tus kheej. Yog li ntawd, peb tuaj yeem hais tias microservices yog qhov zoo rau kev daws teeb meem hauv pab pawg me, vim tias Scrum yog nrov heev tam sim no.
Kev sib cais yog ib qho txheej txheem rov ua dua. Koj tsis tuaj yeem siv daim ntawv thov thiab tsuas yog faib rau hauv microservices. Cov khoom tshwm sim tsis zoo li yuav ua haujlwm. Thaum dedicating microservices, nws yog qhov zoo rau rov sau cov keeb kwm uas twb muaj lawm, uas yog, tig nws mus rau hauv cov cai uas peb nyiam thiab zoo dua ua tau raws li kev lag luam xav tau ntawm kev ua haujlwm thiab ceev.
Ib qho me me caveat: Tus nqi ntawm kev tsiv mus rau microservices yog qhov tseem ceeb heev. Nws siv sijhawm ntev los daws cov teeb meem hauv vaj tse ib leeg. Yog li yog tias koj muaj ib daim ntawv thov me me uas tsis tas yuav muaj kev ntsuas tshwj xeeb, tshwj tsis yog tias koj muaj coob tus neeg siv khoom sib tw rau koj pab neeg cov kev xav thiab sijhawm, ces microservices yuav tsis yog qhov koj xav tau hnub no. Nws kim heev. Yog tias koj pib cov txheej txheem nrog microservices, ces cov nqi pib yuav siab dua yog tias koj pib ua tib txoj haujlwm nrog kev txhim kho ntawm monolith.
PS Ib zaj dab neeg xav ntau (thiab zoo li yog rau koj tus kheej) - raws li txuas.
Nov yog daim ntawv qhia tag nrho.