paint-brush
U Nga Weli Eka Ntlhamu Wa 'Microservices Are Cool' U Tiva Leswaku U Namarhela Rini Eka Monolith Ematshan'wini Ya Minahi@berdysheva
Matimu lamantshwa

U Nga Weli Eka Ntlhamu Wa 'Microservices Are Cool' U Tiva Leswaku U Namarhela Rini Eka Monolith Ematshan'wini Ya Mina

hi Mariia Berdysheva6m2025/01/08
Read on Terminal Reader

Ku leha ngopfu; Ku hlaya

Ku tshovela monolith eka ti microservices i ku cinca lokukulu ka architectural loku lavaka ku tekeriwa enhlokweni hi vukheta na ku pulana. Ku namarhela eka xivumbeko xa Strangler Fig swita ku nyika endlelo ro engetelela naku tiyisisa ku tshamiseka ka sisiteme eka ku cinca hinkwako. Nakambe, modular monolith a yi nge vi ntsena goza ro lunghiselela leri pfunaka kambe yi nga tlhela yi tisa mimpfuno leyi nga ku susumetelaka ku languta nakambe xiboho xa wena xa ku cinca ka microservice na ku papalata ku rharhangana ka ntirho loku fambelanaka.
featured image - U Nga Weli Eka Ntlhamu Wa 'Microservices Are Cool' U Tiva Leswaku U Namarhela Rini Eka Monolith Ematshan'wini Ya Mina
Mariia Berdysheva HackerNoon profile picture

Monoliths na microservices i maendlelo mambirhi ya xisekelo eka ku aka switirhisiwa. Vanhu van’wana va ti teka tanihi ndzhaka ni ya manguva lawa, hi ku landzelelana. Kambe leswi a swi lulamanga nikatsongo. Ku hlawula exikarhi ka tona i xivutiso lexi rharhanganeke swinene, laha havumbirhi bya tona ti nga ni swilo leswinene ni leswo biha swa tona.


Vunyingi bya switirhisiwa leswintshwa a swi lavi ku va ti-microservice ku sukela eku sunguleni. Swi hatlisa, swa olova, naswona swa chipa ku sungula tani hi monolith ivi u cincela eka ti microservices endzhaku loko u kuma swi pfuna.


Hiku famba ka nkarhi, loko switirhisiwa swa monolith swiya swinga hlayisiwi ngopfu, swipano swin’wana swi teka xiboho xa leswaku ndlela yin’we ntsena yo tlhantlha xiphiqo i ku sungula ku refactoring hiku hambanyisa xitirhisiwa xa swona eka ti microservices. Swipano swin'wana swi teka xiboho lexi ntsena hikuva "microservices are cool." Endlelo leri ri teka nkarhi wotala naswona minkarhi yin’wana ri tisa mali yotala swinene ya nhlayiso. Loko unga se nghena eka leswi, i swa nkoka swinene ku languta hi vukheta hinkwaswo leswinene na leswo biha naku tiyisisa leswaku u fikelele swipimelo swa wena swa sweswi swa architecture ya monolith. Naswona tsundzuka, swa olova ku tshoveka ku ri ni ku aka.


Eka xihloko lexi, a hi nge pimanisi ti monoliths na ti microservices. Ematshan’weni ya sweswo, hi ta bula hi swilo leswi hi faneleke hi swi kambisisa, swivumbeko ni misinya ya milawu leyi nga ta ku pfuna:


  • kuma leswinene swa monolith ya wena ya sweswi naswona hi ndlela leyi nga kotekaka u yi lulamisela ku tshoveka eka ti microservices;
  • ku nyika ku rhurha loku nga na swiphiqo ku suka eka monolith ku ya eka microservices;
  • twisisa leswaku i yini swin’wana leswi nga cincaka hi ku rhurha ka ti-microservice.


Xivumbeko xa modula xa monolith

Nchumu wo sungula lowu u faneleke ku wu endla i ku languta xivumbeko xa phurojeke ya wena. Loko u nga ri na mimojula, ndzi ringanyeta swinene leswaku u ti tekela enhlokweni. A va ku endli u cinca architecture ya wena eka ti microservices (leswi swi nga swinene hikuva hi lava ku papalata ku hlayisiwa hinkwako loku fambelanaka) kambe hi teka swipfuno swo tala eka tona.


Ku ya hi xitirhisiwa xa wena xa ku aka phurojeke ya otomatiki (xikombiso, maven, gradle, kumbe swin’wana), u nga avanyisa phurojeke ya wena hi mimojula yo hambana, leyi tiyimeleke. Timojula tin’wana ti nga ha va leti tolovelekeke eka tin’wana, kasi tin’wana ti nga ha hlanganisa tindhawu to karhi ta domain kumbe ti va ta swihlawulekisi swo karhi, leswi tisaka ntirho lowu tiyimeleke eka xitirhisiwa xa wena.


Swi ta ku nyika mimpfuno leyi landzelaka:

  1. Swiphemu leswi hambanisiweke swa xikombelo xa wena.
  2. Swihlawulekisi swi nga endliwa hi ku tiyimela, ku hunguta ku kanetana.
  3. Swi olova swinene ku nghenisa vanhu lavantshwa tani hi leswi va nga laviki ku nghena swinene eka phurojeke hinkwayo; ematshan’weni ya sweswo, ti nga sungula eka swiphemu leswi nga toxe.
  4. Ku antswisiwa ka ku kamberiwa, hikuva sweswi u nga kambela modyuli yin’wana na yin’wana hi ku hambana.
  5. Loko u lava ku rhurhela eka ti microservices eku heteleleni, u na xisekelo xo tiya swinene xa swona.


Hilaha u swi vonaka hakona, modular monolith i ndlela yo kuma leswinene eka misava leyimbirhi. Swifana naku fambisa ti microservices leti tiyimeleke endzeni ka monolith yin’we kambe ku papalata ti collateral microservices ehenhla. Xin’wana xa swipimelo leswi u nga vaka na swona – i ku tsandzeka ku ringanisa mimojula yo hambana hi ku tiyimela. U ta va na swikombiso swo tala swa monolith tanihilaha swi lavekaka hakona hi modyuli leyi layichiweke ngopfu, leswi nga vangaka ku tirhisiwa ngopfu ka switirhisiwa. Xiphiqo xin’wana i swipimelo swa ku tirhisa thekinoloji yo hambana. Xikombiso, a wu nge swi koti ku hlanganisa Java, Golang, na Python eka modular monolith, kutani u boheka ku namarhela thekinoloji yin’we (leyi, hi ntolovelo, yi nga riki mhaka).


Modular monolith vs Switirhisiwa swa Microservices


Xifaniso xa Strangler Fig

Anakanya hi xivumbeko xa Strangler Fig. Yi teke vito ra yona eka nsinya lowu phutselaka naswona eku heteleleni wu siva muhaxi wa wona. Hilaha ku fanaka, xivumbeko xi ringanyeta leswaku u cinca swiphemu swa xitirhisiwa xa ndzhaka hi vukorhokeri lebyintshwa ha xin’we-xin’we, u endla leswaku sisiteme ya khale yi va ya manguva lawa handle ko vanga ku kavanyeteka lokukulu.


Ematshan’weni yo ringeta ku lunghisa hi ndlela leyi nga ni khombo, hi nkarhi wun’we, u pfuxeta fambiselo hi xiphemu hi xiphemu. Endlelo leri ra pfuna loko u tirhana na ti monoliths letikulu, leti rharhanganeke leti nga oloviki ngopfu ku ti siva hi matshalatshala man’we. Hiku amukela xivumbeko xa Strangler Fig, swipano swinga herisa sisiteme ya khale hiku nonoka loko swirikarhi swikurisa kukula ka leyintshwa, swihunguta makhombo, naku tiyisisa ku nyikiwa ka nkoka loku yaka emahlweni.


Xifaniso hi David Clode eka Unsplash


Ku tirhisa xivumbeko xa Strangler Fig, u fanele ku landzelela magoza manharhu:


  1. Ku hundzuka. Laha, u kuma leswaku hi xihi xiphemu lexi u faneleke ku xi humesa eka monolith ivi u xi tirhisa tanihi microservice leyi hambaneke. Tsala xiphemu lexi nakambe hi ku tirhisa thekinoloji ya manguva lawa na ku lulamisa swiphiqo swa ku tirhisiwa ka khale. Tirhisa nkarhi wa wena ku swi endla ku antswa.
  2. Ku hanya swin’we. Loko microservice leyintshwa yi lulamerile ku humelerisiwa, u yi fambisa eka switirhisiwa swa wena, u hlayisa ku tirhisiwa ka ndzhaka. U hangalasa thrafikhi hi mpimo wo karhi, hakatsongo-tsongo u yisa thrafikhi yo tala swinene eka ku tirhisiwa lokuntshwa, kambe minkarhi hinkwayo u na vuhundzuluxeri bya wena bya khale tanihi ku tlhelela endzhaku.
  3. Herisa. Endzhaku ka nkarhi wo karhi, loko u pfumela leswaku microservice ya wena leyintshwa ya tshembeka hi laha ku ringaneke, yisa thrafikhi hinkwayo eka microservice leyintshwa ivi u susa ndzhaka.


Loko u teka magoza lawa manharhu, hakatsongo-tsongo u ta tshovela monolith yi va ti microservices.


Xifaniso xa Strangler Fig


Mimbuyelo ya nkoka ya ku tirhisa xivumbeko xa Strangler Fig hi leyi:


  • Ku Rhurha Hakatsongotsongo. Ematshan’weni yo tshoveka hi ndlela yo biha ni ku sungula ku lunghisa loku heleleke ka fambiselo hi nkarhi, loku nga ni khombo ni loku nga ni khombo, xivumbeko lexi xi ku pfumelela ku cinca hi magoza. U nga pfuxeta sisiteme ya wena hi ku nonoka no fambisana na ku cinca loku na tipulani ta nhluvukiso wa swihlawulekisi. Xikombiso, u nga kuma xiphemu xa monolith lexi nhluvukiso wun’wana wa swihlawulekisi wu nga ta xi khumba swinene naswona u xi hlawula tanihi n’wandla wa ku rhurhela ka microservice.
  • Ku rhumeriwa loku yaka emahlweni. Vuyelo lebyi byi huma eka xitatimende lexi hundzeke. Endlelo ra ku endla swilo swa manguva lawa a ri siveli xipano xa wena ku ya emahlweni xi tisa swihlawulekisi leswintshwa. Loko ntlawa wun’wana wu ri karhi wu tumbuluxa swivumbeko leswintshwa, wun’wana wu endla hi vuntshwa mimojula leyi tiyimeleke.
  • Ku Pfuxetiwa ka Khombo. Xivumbeko xa Strangler Fig xi pfuna xipano ku kongomisa eka ku endla swiphemu swo karhi swa sisiteme ya manguva lawa. Ku kongomisa loku ku endla leswaku ntlawa wu kota ku nyikela nyingiso lowukulu eka vuxokoxoko eka tindhawu to karhi, ku kuma swiphiqo leswi nga vaka kona ka ha ri emahlweni, na ku hunguta nkucetelo hinkwawo eka xikombelo.


Timhaka na ku tekeriwa enhlokweni

Loko u tirhisa xivumbeko xa Strangler Fig, ufanele ku pulana maqhinga yaku rhurha hi vukheta. Swi katsa ku kuma leswaku hi swihi swiphemu leswi faneleke ku siviwa ku sungula, ku tiyisisa ku hlanganisiwa loku faneleke exikarhi ka swiphemu swa khale na leswintshwa, na ku hlayisa timodeli ta datha leti nga cincekiki. Swipano swi fanele ku tlhela swi simeka tindlela ta vuhlanganisi leti nga erivaleni na tisisiteme to veka tihlo ku landzelerisa nhluvuko na nkucetelo wa ku cinca kun’wana na kun’wana.

Vuyelo bya ku rhurha ka microservices

Hilaha hi vulavuleke hakona eku sunguleni, ku cincela eka ti microservices swi tisa mimpfuno. Hambiswiritano, swi tlhela swi endla leswaku swilo swin’wana swo tala swi tika ni ku durha.


Xikombiso, swipano swa QA na Dev swi nga langutana na xiyimo lexi swi nga ha kotiki ku kambela eka michini ya laha kaya hikuva vuswikoti byo fambisa ti microservices to tala laha tikweni byi ringaniseriwile. Kumbe tilog ta wena ti nga ha va ti nga ri na vutivi byo tala hikuva, ematshan’wini ya vukorhokeri byin’we lebyi tirhisaka ku khuluka kun’we, vukorhokeri byo tala byi byi tirhisa sweswi. Hikwalaho ka sweswo, ku languta ntlhandlamano wa log lowu heleleke, u fanele ku tirhisa switirhisiwa leswi faneleke na ku landzelerisa.


A hi buleni hi swiyenge swi nga ri swingani swa nkoka leswi u faneleke ku swi tekela enhlokweni naswona kumbexana ku pulana ku nga si sungula ku cinca ka ti-microservice ta wena.


Ku tirhisiwa na switirhisiwa swa le makaya

Monolith na microservices swina swilaveko swohambana hambana swa switirhisiwa swale hansi.


Loko u tirhisa xitirhisiwa xa monolith, hi ntolovelo u nga hlayisa xitirhisiwa xo olova. Swihlawulekisi swo fana na michini ya xiviri kumbe swintshuxo swa PaaS (ku fana na AWS EC2) swi ta enela. Nakambe, u nga khoma swo tala swa ku ringanisa, ku lulamisa, ku ndlandlamuxa ni ku veka tihlo hi voko kumbe hi switirhisiwa swo olova. Hikwalaho ka sweswo, u nga papalata swiyimiso swa switirhisiwa leswi rharhanganeke naswona u titshege hi vatumbuluxi kumbe vanjhiniyara va nseketelo handle ko lava vutshila byo anama bya DevOps.


Hambiswiritano, ku amukela architecture ya microservices swi cinca dynamic leyi. Loko nhlayo ya vukorhokeri yi ri karhi yi kula, endlelo ra mavoko, ra mavoko ri hatla ri nga tirhi. Ku hlela hi ndlela leyinene, ku pima, na ku lawula vukorhokeri byo tala, u ta lava tipulatifomo to hlawuleka to fana na Kubernetes kumbe, hi xiringaniso, vukorhokeri bya xikhomela lebyi lawuriwaka, ku nghenisa leyara leyintshwa ya ku rharhangana na swilaveko swa matirhelo.

Leyara ya pulatifomo

Ku hlayisa xitirhisiwa xa monolith swi olovile swinene. Loko ku humelela CVE, u pfuxeta ku titshega loku khumbekaka eka ndhawu yin’we. Xana u lava ku ringanisa vuhlanganisi bya vukorhokeri bya le handle? Tirhisa xifunengeto xin’we ivi u xi tirhisa nakambe eka codebase hinkwayo.


Eka ndhawu ya microservices, mintirho leyi yo olova yi va leyi rharhanganeke swinene. Leswi khale a swi nga ri swa nkoka sweswi swi katsa ku hlanganisa ku cinca eka vukorhokeri byo tala lebyi tiyimeleke, byin’wana na byin’wana na xirhendzevutani xa byona xa vutomi na ku titshega. Ku rharhangana loku engetelekeke ku engetela ku durha eka nkarhi na switirhisiwa. Naswona xiyimo xa nyanya loko u ri na swipano swo tala na vukorhokeri byo tala byo hambana.


Hikwalaho, tinhlengeletano to tala ti nghenisa leyara ya pulatifomo leyi tinyiketeleke, leyi hi ntolovelo yi lawuriwaka hi ntlawa wa pulatifomo. Xikongomelo i ku tumbuluxa masungulo lawa ti microservices hinkwato ti nga ma kumaka ndzhaka: ku lawula ku titshega loku tolovelekeke, ku tirhisa tipheteni leti ringaniseriweke, na ku nyika swifunengeto leswi lunghekeleke. Hi ku hlanganisa swiaki leswi eka xiyimo xa pulatifomo, u olovisa swinene vuhlayiseki na ku kurisa ku ringanana eka sisiteme hinkwayo.

Mahetelelo

Ku tshoveka ka monolith eka ti microservices i ku cinca lokukulu ka architectural loku lavaka ku tekeriwa enhlokweni hi vukheta na ku pulana.


Eka xihloko lexi, hi vulavule hi magoza lawa u nga ma tekaka leswaku u lunghiselela wona ni ku hundza eka endlelo leri hi ndlela leyinene. Ku namarhela eka xivumbeko xa Strangler Fig swita ku nyika endlelo ro engetelela naku tiyisisa ku tshamiseka ka sisiteme eka ku cinca hinkwako. Nakambe, modular monolith a yi nge vi ntsena goza ro lunghiselela leri pfunaka kambe yi nga tlhela yi tisa mimpfuno leyi nga ku susumetelaka ku languta nakambe xiboho xa wena xa ku cinca ka microservice na ku papalata ku rharhangana ka ntirho loku fambelanaka.