![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Go kgotlelela ka go disoftware go šupa bokgoni bja tirišo bja go tšwela pele go šoma ka thelelo le ka mo go ka botwago, gaešita le ge go lebane le ditaba tše di sa letelwago goba go palelwa. Ka diprotšekeng tša Fintech go kgotlelela go bohlokwa kudu ka lebaka la mabaka a mmalwa. Sa mathomo, dikhamphani di gapeletšega go fihlelela dinyakwa tša taolo gomme balaodi ba ditšhelete ba gatelela go kgotlelela ga tshepedišo go hlokomela go tsepama ka gare ga tshepedišo. Go feta fao, go ata ga didirišwa tša titšithale le go ithekga ka baabi ba ditirelo ba mokgatlo wa boraro go pepentšha dikgwebo tša Fintech ditšhošetšong tše di phagamego tša tšhireletšo. Go kgotlelela gape go thuša go fokotša dikotsi tša go kgaotša ga mošomo tšeo di hlolwago ke mabaka a go fapafapana a go swana le ditšhošetšo tša inthanete, mauba a malwetši, goba ditiragalo tša dipolitiki tša lefase, go šireletša ditiro tša motheo tša kgwebo le dithoto tše bohlokwa.
Ka dipaterone tša go kgotlelela, re kwešiša sete ya mekgwa ye mekaone le maano ao a hlamilwego go netefatša gore softwere e ka kgotlelela ditšhitišo le go hlokomela ditiro tša yona. Dipaterone tše di šoma bjalo ka malokwa a polokego, di fa mekgwa ya go swaragana le diphošo, go laola morwalo, le go fola go tšwa go go palelwa, ka go realo di netefatša gore dikgopelo di dula di tiile ebile di ka botwa ka fase ga maemo a mabe.
Maano a tlwaelegilego kudu a go kgotlelela a akaretša bulkhead, cache, fallback, retry, le circuit breaker. Sehlogong se, ke tla di ahlaahla ka botlalo, ka mehlala ya mathata ao di ka thušago go a rarolla.
A re lebelele peakanyo ye e lego ka mo godimo. Re na le tirišo ye e tlwaelegilego kudu yeo e nago le di-backend tše mmalwa ka morago ga rena go hwetša ya data ye nngwe go tšwa go yona. Go na le bareki ba mmalwa ba HTTP bao ba kgokagantšwego le di-backend tše. Go hwetšagala gore ka moka ga bona ba abelana letamo le tee la kgokagano! Le gape methopo ye mengwe go swana le CPU le RAM.
Go tla direga eng, Ge e ba e nngwe ya di-backend e itemogela mohuta o itšego wa mathata ao a feleletšago ka go khutša ga kgopelo mo go phagamego? Ka lebaka la nako ya karabelo ya godimo, letamo ka moka la kgokagano le tla dulwa ka botlalo ke dikgopelo tšeo di emetšego dikarabo go tšwa go backend1. Ka lebaka leo, dikgopelo tšeo di reretšwego backend2 le backend3 tše di phetšego gabotse di ka se kgone go tšwela pele ka gobane letamo le fedile. Se se ra gore go palelwa go ye nngwe ya di-backend tša rena go ka hlola go palelwa go ralala le tirišo ka moka. Ka kgopolo, re nyaka fela gore mošomo wo o amanago le backend ye e palelwago o itemogele go senyega, mola tirišo ka moka e tšwela pele go šoma ka tlwaelo.
Mohlala wa Bulkhead ke eng?
Polelo ye, Bulkhead pattern, e tšwa go go aga dikepe, e akaretša go hlola diphapoši tše mmalwa tše di lego lekatana ka gare ga sekepe. Ge e ba go dutla go direga ka phapošing e nngwe, e tlatša meetse, eupša diphapoši tše dingwe di dula di sa kgongwe. Go ikarola mo go thibela sekepe ka moka go nwelela ka lebaka la go tshela ga tee.
Paterone ya Bulkhead e ka šomišwa go arola mehuta ye e fapanego ya methopo ka gare ga tirišo, go thibela go palelwa karolong e tee go ama tshepedišo ka moka. Kamoo re ka e dirišago bothateng bja rena še:
A re re ditshepedišo tša rena tša backend di na le kgonagalo ya fase ya go kopana le diphošo ka botee. Le ge go le bjalo, ge tshepedišo e akaretša go botšiša di-backend tše ka moka ka go bapelana, ye nngwe le ye nngwe e ka bušetša phošo ka go ikemela. Ka lebaka la gore diphošo tše di direga ka go ikemela, kgonagalo ya kakaretšo ya phošo tirišong ya rena e phagame go feta kgonagalo ya phošo ya backend efe goba efe e tee. Kgonagalo ya phošo ya go kgoboketšwa e ka balwa ka go šomiša formula P_total = 1−(1−p) ^ n, moo n e lego palo ya ditshepedišo tša ka morago.
Ka mohlala, ge re na le di-backend tše lesome, e nngwe le e nngwe e na le kgonagalo ya phošo ya p = 0.001 (yeo e lebanego le SLA ya 99.9%), kgonagalo ya phošo yeo e tšweletšwago ke:
P_palomoka = 1− (1 - 0.001) ^ 10 = 0.009955
Se se ra gore SLA ya rena ye e kopantšwego e theogela go mo e ka bago 99%, e bontšha ka fao go botega ka kakaretšo go fokotšegago ge go botšišwa di-backend tše ntši ka go bapelana. Go fokotša taba ye, re ka phethagatša cache ya ka gare ga memori.
Cache ya ka gare ga memori e šoma bjalo ka buffer ya data ya lebelo le legolo, e boloka data yeo e fihlelelwago gantši le go fediša go nyakega ga go e tšea go tšwa methopong yeo e ka bago e nanya nako le nako. Ka ge di-cache tšeo di bolokilwego ka gare ga memori di na le kgonagalo ya 0% ya phošo ge di bapetšwa le go lata datha ka netiweke, di oketša kudu go botega ga tirišo ya rena. Go feta moo, go boloka dilo ka gare go fokotša sephethephethe sa netweke, go fokotša gape kgonagalo ya diphošo. Ka lebaka leo, ka go šomiša cache ya ka gare ga memori, re ka fihlelela seelo sa phošo sa fase le go feta ka tirišong ya rena ge re bapetšwa le ditshepedišo tša rena tša ka morago. Go oketša moo, di-cache tša ka gare ga memori di nea go hwetša ya data ka lebelo go feta go lata mo go theilwego go netweke, ka go rialo di fokotša go khutša ga tirišo—e lego mohola o lemogegago.
Bakeng sa ya data yeo e hlamilwego ka bowena, go swana le diprofaele tša mosediriši goba ditšhišinyo, go šomiša di-cache tša ka gare ga memori le gona go ka šoma gabotse kudu. Eupša re swanetše go netefatša gore dikgopelo ka moka go tšwa go mosediriši di ya ka go se fetoge mohlaleng wa tirišo wo o swanago go šomiša datha yeo e bolokilwego bakeng sa bona, yeo e nyakago dithulaganyo tše di kgomarelago. Go phethagatša dithulaganyo tša go kgomarela e ka ba tlhohlo, eupša bakeng sa boemo bjo, ga re hloke mekgwa ye e raraganego. Go lekalekanya gape sephethephethe se senyenyane go a amogelega, ka fao algorithm ya go lekalekanya mošomo ye e tsepamego go swana le hashing ye e sa fetogego e tla lekana.
Se sengwe gape, ge go ka direga gore node e palelwe, hashing ye e sa fetogego e netefatša gore ke fela badiriši bao ba amanago le node yeo e paletšwego bao ba fetago go lekalekanya gape, go fokotša tšhitišo ya tshepedišo. Mokgwa wo o nolofatša taolo ya di-cache tše di hlamilwego ka bowena le go godiša go tsepama ka kakaretšo le tshepedišo ya tirišo ya rena.
Ge e ba ya data yeo re ikemišeditšego go e boloka e le bohlokwa kudu gomme e dirišwa kgopelong e nngwe le e nngwe yeo tshepedišo ya rena e e swarago, go swana le melawana ya phihlelelo, dithulaganyo tša peeletšo goba ditheo tše dingwe tše bohlokwa mo domain ya rena—mothopo wa data ye o ka baka ntlha e kgolo ya go palelwa tshepedišong ya rena. Go rarolla tlhohlo ye, mokgwa o mongwe ke go boeletša datha ye ka botlalo thwii ka gare ga memori ya tirišo ya rena.
Boemong bjo, ge e le gore bophagamo bja datha mohloding bo laolega, re ka thoma tshepedišo ka go taonelouta seswantšho sa datha ye mathomong a tirišo ya rena. Ka morago ga moo, re ka amogela ditiragalo tša diapdeite go netefatša gore ya data yeo e bolokilwego e dula e nyalantšhwa le mothopo. Ka go amogela mokgwa wo, re godiša go botega ga go fihlelela ya data ye ya bohlokwa, ka ge go hwetša go gongwe le go gongwe go direga ka go lebanya go tšwa go memori ka kgonagalo ya phošo ya 0%. Go tlaleletša, go lata ya data go tšwa memoring ke ka lebelo ka mo go kgethegilego, ka go realo go dira gore tshepedišo ya tirišo ya rena e šome gabotse. Leano le le fokotša ka mo go atlegilego kotsi yeo e amanago le go ithekga ka mothopo wa datha wa ka ntle, go netefatša phihlelelo ye e sa fetogego le ye e ka botwago ya tshedimošo ye bohlokwa bakeng sa tshepedišo ya tirišo ya rena.
Le ge go le bjalo, tlhokego ya go taonelouta datha ka go thoma ga tirišo, ka go realo e diegiša tshepedišo ya go thoma, e roba ye nngwe ya melawana ya ‘tirišo ya mabaka a 12’ yeo e buelelago go thoma ga tirišo ka pela. Eupša, ga re nyake go lahlegelwa ke mehola ya go šomiša caching. Go rarolla bothata bjo, a re hlahlobeng ditharollo tšeo di ka bago gona.
Go thoma ka lebelo go bohlokwa kudu, kudukudu bakeng sa diforamo tša go swana le Kubernetes, tšeo di ithekgilego ka go huduga ka pela ga tirišo go di-node tše di fapanego tša mmele. Ka mahlatse, Kubernetes e ka laola dikgopelo tša go thoma ka go nanya ka go šomiša dikarolo tša go swana le dinyakišišo tša go thoma.
Tlhohlo ye nngwe yeo re ka lebeletšanago le yona ke go mpshafatša dipeakanyo ge tirišo e šoma. Gantši, go beakanya dinako tša cache goba go fela ga nako ya kgopelo go a nyakega go rarolla ditaba tša tšweletšo. Le ge re ka kgona go tsenya ka pela difaele tša peakanyo tše di mpshafaditšwego tirišong ya rena, go diriša diphetogo tše ka tlwaelo go nyaka go thoma gape. Ka nako ya go thoma ye e okeditšwego ya tirišo ye nngwe le ye nngwe, go thoma gape ka go kgokologa go ka diegiša kudu go tsenya ditokišo go badiriši ba rena.
Go rarolla se, tharollo e tee ke go boloka dipeakanyo ka go phetogo ya nako e tee gomme o be le khoele ya ka morago nako le nako e mpshafatša. Le ge go le bjalo, ditekanyetšo tše itšego, go swana le go fela ga nako ya kgopelo ya HTTP, di ka nyaka go thoma gape bareki ba HTTP goba polokelo ya tshedimošo ge peakanyo ye e swanetšego e fetoga, go hlola tlhohlo yeo e ka bago gona. Lega go le bjalo, bareki ba bangwe, go swana le mootledi wa Cassandra bakeng sa Java, ba thekga go laetša gape ka go itiragalela ga dipeakanyo, e lego seo se nolofatšago tshepedišo ye.
Go phethagatša dipeakanyo tše di ka laetšwago gape go ka fokotša khuetšo ye mpe ya dinako tše telele tša go thoma ga tirišo le go fa mehola ya tlaleletšo, go swana le go nolofatša diphethagatšo tša folaga ya tšobotsi. Mokgwa wo o re kgontšha go hlokomela go botega ga tirišo le go arabela mola re laola ka bokgoni diapdeite tša peakanyo.
Bjale a re lebelele bothata bjo bongwe: ka tshepedišong ya rena, ge kgopelo ya mosediriši e amogetšwe le go šongwa ka go romela potšišo go backend goba polokelo ya tshedimošo, ka dinako tše dingwe, karabo ya phošo e a amogelwa go e na le ya data yeo e letetšwego. Ka morago ga moo, tshepedišo ya rena e arabela modiriši ka ‘phošo’.
Le ge go le bjalo, maemong a mantši, go ka kgethwa kudu go bontšha datha yeo e fetilwego ke nako gannyane gotee le molaetša wo o laetšago gore go na le tiego ya go hlabolla datha, go e na le go tlogela modiriši ka molaetša wo mogolo wa phošo wo mohwibidu.
Go rarolla taba ye le go kaonafatša boitshwaro bja tshepedišo ya rena, re ka phethagatša mokgwa wa Fallback. Kgopolo yeo e lego ka morago ga mohlala wo e akaretša go ba le mothopo wa bobedi wa datha, wo o ka bago le datha ya boleng bja fase goba ya go ba ye mpsha ge e bapetšwa le mothopo wa mathomo. Ge mothopo wa mathomo wa datha ga o hwetšagale goba o bušetša phošo, tshepedišo e ka wela morago go hwetša datha go tšwa mothopong wo wa bobedi, ya netefatša gore mohuta wo mongwe wa tshedimošo o tšweletšwa go modiriši go e na le go bontšha molaetša wa phošo.
Ge o lebelela seswantšho se se lego ka mo godimo, o tla lemoga go swana magareng ga taba yeo re lebanego le yona bjale le yeo re kopanego le yona ka mohlala wa cache.
Go e rarolla, re ka nagana ka go phethagatša mohlala wo o tsebjago e le go leka gape. Go e na le go ithekga ka di-cache, tshepedišo e ka hlangwa gore e romele kgopelo gape ka go itiragalela ge go ka ba le phošo. Mokgwa wo wa go leka gape o fa mokgwa wo mongwe wo bonolo gomme o ka fokotša ka mo go atlegilego kgonagalo ya diphošo tirišong ya rena. Go fapana le go boloka tšhelete, yeo gantši e nyakago mekgwa ye e raraganego ya go se šome ga cache go swara diphetogo tša datha, go leka gape dikgopelo tše di paletšwego go bonolo go di phethagatša. Bjalo ka ge go se šome ga cache go tšewa ka bophara bjalo ka o mongwe wa mešomo ye e hlohlago kudu ka go boentšeneare bja disoftware, go amogela leano la go leka gape go ka nolofatša go swara diphošo le go kaonafatša go kgotlelela ga tshepedišo.
Lega go le bjalo, go amogela leano la go leka gape ntle le go ela hloko ditla-morago tšeo di ka bago gona go ka lebiša mathateng a oketšegilego.
A re naganeng gore e nngwe ya di-backend tša rena e itemogela go palelwa. Boemong bjo bjalo, go thoma go leka gape go backend yeo e palelwago go ka feleletša ka koketšego ye kgolo ya bophagamo bja sephethephethe. Go oketšega mo ga tšhoganetšo ga sephethephethe go ka gateletša backend, gwa gakatša go palelwa gomme gwa baka mafelelo a cascade go ralala le tshepedišo.
Go lebeletšana le tlhohlo ye, go bohlokwa go tlaleletša mohlala wa go leka gape ka mohlala wa sefepi sa potologo. Sefepi sa potologo se šoma bjalo ka mokgwa wa tšhireletšo wo o hlokomelago tekanyo ya phošo ya ditirelo tša ka tlase ga noka. Ge seelo sa phošo se feta moedi wo o hlalošitšwego e sa le pele, sefepi sa potologo se šitiša dikgopelo go tirelo yeo e amegilego ka nako ye e laeditšwego. Nakong ye, tshepedišo e ithibela go romela dikgopelo tša tlaleletšo go dumelela nako ya tirelo yeo e palelwago go fola. Ka morago ga nako yeo e kgethilwego, sefepi sa tikologo se dumelela ka kelohloko palo e lekanyeditšwego ya dikgopelo go feta, e kgonthišetša ge e ba tirelo e tsepame. Ge e ba tirelo e boetše sekeng, sephethephethe se se tlwaelegilego se tsošološwa ganyenyane-ganyenyane; go sego bjalo, potologo e dula e bulegile, e tšwela pele go thibela dikgopelo go fihlela tirelo e thoma gape go šoma ka tlwaelo. Ka go kopanya mohlala wa sefefo sa potologo go bapa le tlhaologanyo ya go leka gape, re ka laola maemo a phošo ka mo go atlegilego le go thibela go imelwa kudu ga tshepedišo nakong ya go palelwa ga backend.
Ge re phetha, ka go phethagatša dipaterone tše tša go kgotlelela, re ka maatlafatša dikgopelo tša rena kgahlanong le maemo a tšhoganetšo, ra hlokomela go hwetšagala mo go phagamego, le go tliša maitemogelo ao a se nago mathata go badiriši. Go tlaleletša, ke rata go gatelela gore telemetry ke sedirišwa se sengwe gape seo se sa swanelago go hlokomologwa ge go fiwa go kgotlelela ga projeke. Dilog tše botse le dimetriki di ka godiša kudu boleng bja ditirelo le go fa temogo ya bohlokwa ka ga tshepedišo ya tšona, go thuša go tšea diphetho tše di nago le tsebo tša go di kaonafatša go ya pele.