![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Ny faharetana amin'ny logiciel dia manondro ny fahafahan'ny fampiharana iray manohy miasa tsara sy azo ianteherana, na dia eo aza ny olana na ny tsy fahombiazana tsy ampoizina. Amin'ny tetikasa Fintech dia tena zava-dehibe ny faharetana noho ny antony maro. Voalohany, ny orinasa dia tsy maintsy mahafeno ny fepetra takian'ny lalàna ary ny mpandrindra ara-bola dia manantitrantitra ny faharetan'ny asa mba hitazonana ny fitoniana ao anatin'ny rafitra. Ankoatr'izay, ny firoboroboan'ny fitaovana nomerika sy ny fiankinan-doha amin'ireo mpanome tolotra avy amin'ny antoko fahatelo dia mampibaribary ny orinasa Fintech amin'ny fandrahonana fiarovana. Ny faharetana koa dia manampy amin'ny fanalefahana ny loza ateraky ny fahatapahan-jiro ateraky ny anton-javatra isan-karazany toy ny fandrahonana an-tserasera, pandemena, na hetsika ara-jeopolitika, fiarovana ny asa fandraharahana fototra sy ny fananan-tany.
Amin'ny alàlan'ny lamin'ny faharetana, takatsika ireo fomba fanao tsara indrindra sy tetika natao hiantohana fa ny rindrambaiko dia afaka mahatohitra ny fanakorontanana sy mitazona ny asany. Ireo lamina ireo dia miasa toy ny harato fiarovana, manome mekanika hifehezana ny lesoka, hitantanana ny enta-mavesatra ary sitrana amin'ny tsy fahombiazana, ka manome antoka fa ny fampiharana dia mijanona ho matanjaka sy azo ianteherana ao anatin'ny toe-javatra ratsy.
Ny paikadin'ny faharetana mahazatra indrindra dia misy ny bulkhead, cache, fallback, retry, ary circuit breaker. Ato amin'ity lahatsoratra ity, hiresaka momba azy ireo amin'ny antsipiriany kokoa aho, miaraka amin'ireo ohatra momba ny olana azony amboarina.
Andeha hojerentsika ny toe-javatra etsy ambony. Manana fampiharana tsotra izahay miaraka amin'ny lamosina maromaro ao aorianay hahazoana angon-drakitra. Misy mpanjifa HTTP maromaro mifandray amin'ireo backend ireo. Hita fa mitovy daholo ny dobo fampifandraisana azy! Ary koa loharano hafa toa ny CPU sy RAM.
Inona no hitranga, Raha sendra olana ny iray amin'ireo backend ka miteraka fahatarana amin'ny fangatahana avo lenta? Noho ny fotoana mamaly be dia be ny dobo fifandraisana manontolo dia ho feno fangatahana miandry valiny avy amin'ny backend1. Vokatr'izany, ny fangatahana natao ho an'ny backend2 sy backend3 salama dia tsy afaka hitohy satria reraka ny dobo. Midika izany fa ny tsy fahombiazana amin'ny iray amin'ireo lamosinay dia mety hiteraka tsy fahombiazana manerana ny fampiharana manontolo. Ny tsara indrindra dia ny fampiasa mifandray amin'ny backend tsy mahomby ihany no tadiavintsika hiaina fahasimbana, fa ny sisa amin'ny fampiharana dia manohy miasa ara-dalàna.
Inona no atao hoe Bulkhead Pattern?
Ny teny hoe lamina Bulkhead dia avy amin'ny fanamboaran-tsambo, izany dia ahitana ny famoronana efitra mitoka-monina maromaro ao anaty sambo. Raha misy setroka mitranga ao amin'ny efitra iray, dia feno rano izy io, fa ny efitra hafa dia tsy misy fiantraikany. Io fitokanana io dia manakana ny sambo iray manontolo tsy hilentika noho ny vaky tokana.
Ny lamina Bulkhead dia azo ampiasaina hanavahana karazana loharanon-karena isan-karazany ao anatin'ny fampiharana iray, hisorohana ny tsy fahombiazan'ny ampahany iray tsy hisy fiantraikany amin'ny rafitra manontolo. Toy izao ny fomba hampiharana azy amin'ny olana misy antsika:
Andeha hatao hoe manana ny mety hisian'ny lesoka tsirairay ny rafitra backend. Na izany aza, rehefa misy asa iray mitaky fametraham-panontaniana ireo backend rehetra ireo mifanitsy, ny tsirairay dia afaka mamerina tsy miankina iray. Satria mitranga tsy miankina ireo hadisoana ireo, ny mety hisian'ny hadisoana amin'ny fampiharana anay dia ambony noho ny mety ho fahadisoana amin'ny backend tokana. Ny mety hisian'ny fahadisoana mitambatra dia azo kajy amin'ny fampiasana ny formula P_total=1−(1−p)^n, izay n ny isan'ny rafitra backend.
Ohatra, raha manana lamosina folo isika, samy manana ny mety hisian'ny fahadisoana p = 0.001 (mifanaraka amin'ny SLA amin'ny 99.9%), ny mety ho fahadisoana dia:
P_total=1−(1−0.001)^10=0.009955
Midika izany fa nidina ho 99% eo ho eo ny SLA mitambatra, mampiseho ny fihenan'ny fahatokisana amin'ny ankapobeny rehefa manontany backend maromaro mifanitsy. Mba hanalefahana an'io olana io dia afaka mametraka cache ao anaty fitadidiana isika.
Ny cache ao anaty fitadidiana dia miasa ho toy ny buffer data haingam-pandeha, mitahiry angon-drakitra idirana matetika ary manafoana ny filàna haka azy amin'ny loharano mety miadana isaky ny mandeha. Koa satria ny cache voatahiry ao anaty fitadidiana dia manana 0% ny mety hisian'ny hadisoana raha oharina amin'ny fakana angona amin'ny tambajotra, dia mampitombo be ny fahatokisan'ny fampiharanay. Ankoatra izany, mampihena ny fifamoivoizana amin'ny tambajotra ny caching, mampihena ny mety hisian'ny fahadisoana. Noho izany, amin'ny alàlan'ny fampiasana cache ao anaty fitadidiana, dia afaka mahazo taham-pahadisoana ambany kokoa amin'ny fampiharana ataontsika isika raha oharina amin'ireo rafitra backend. Fanampin'izany, ny cache ao anaty fitadidiana dia manolotra fakàna angon-drakitra haingana kokoa noho ny fanangonana mifototra amin'ny tambajotra, ka mampihena ny faharetan'ny fampiharana — tombony miavaka.
Ho an'ny angon-drakitra manokana, toy ny mombamomba ny mpampiasa na ny tolo-kevitra, dia mety hahomby koa ny fampiasana cache ao anaty fitadidiana. Saingy mila miantoka isika fa ny fangatahana rehetra avy amin'ny mpampiasa iray dia mandeha tsy tapaka amin'ny ohatra fampiharana mitovy amin'ny fampiasana angon-drakitra voatahiry ho azy ireo, izay mitaky fivoriana mipetaka. Mety ho sarotra ny fampiharana ireo fotoam-pivoriana mipetaka, saingy amin'ity toe-javatra ity dia tsy mila mekanika sarotra isika. Azo ekena ny fampifandanjana ny fifamoivoizana kely, noho izany dia ampy ny algorithm fampifandanjana entana maharitra toy ny hashing tsy tapaka.
Ankoatra izany, raha sendra ny tsy fahombiazan'ny node, ny hashing tsy tapaka dia miantoka fa ireo mpampiasa mifandray amin'ny node tsy nahomby ihany no mandalo rebalance, manamaivana ny fanelingelenana ny rafitra. Ity fomba fiasa ity dia manamora ny fitantanana ny cache manokana ary manatsara ny fahamarinan-toerana sy ny fahombiazan'ny fampiharana anay.
Raha ny angona nokasainay hotehirizina dia tena manan-danja ary ampiasaina amin'ny fangatahana rehetra karakarain'ny rafitray, toy ny politikam-pidirana, drafitry ny famandrihana, na sampan-draharaha manan-danja hafa ao amin'ny sehatra misy anay — ny loharanon'ity angona ity dia mety hiteraka tsy fahombiazana lehibe amin'ny rafitray. Mba hamahana ity fanamby ity, ny fomba iray dia ny mamerina tanteraka an'io data io mivantana ao amin'ny fitadidiana ny fampiharana.
Amin'ity toe-javatra ity, raha azo fehezina ny habetsaky ny angona ao amin'ny loharano, dia afaka manomboka ny dingana isika amin'ny alàlan'ny fampidinana sary an'ity data ity eo am-piandohan'ny fampiharana. Aorian'izay, afaka mahazo hetsika fanavaozana isika mba hahazoana antoka fa ny angon-drakitra voatahiry dia mijanona miaraka amin'ny loharano. Amin'ny alàlan'ny fampiasana an'io fomba io, dia manatsara ny fahamendrehan'ny fidirana amin'ity angona manan-danja ity izahay, satria ny fakana sary tsirairay dia mitranga mivantana avy amin'ny fitadidiana miaraka amin'ny mety ho fahadisoana 0%. Fanampin'izany, haingana dia haingana ny fakana angona avy amin'ny fitadidiana, ka manatsara ny fampandehanana ny fampiharana. Ity paikady ity dia manalefaka ny risika mifandray amin'ny fiankinan-doha amin'ny loharanom-baovao ivelany, miantoka ny fidirana tsy tapaka sy azo itokisana amin'ny fampahalalana manan-danja amin'ny fampandehanana ny fampiharana.
Na izany aza, ny filàna fampidinana angon-drakitra momba ny fanombohana fampiharana, ka manemotra ny fizotry ny fanombohana, dia manitsakitsaka ny iray amin'ireo fitsipiky ny 'fampiharana 12-factor' manohana ny fanombohana fampiharana haingana. Saingy, tsy te-hafoy ny tombontsoa amin'ny fampiasana caching izahay. Mba hamahana ity olana ity, andao hijery vahaolana mety.
Zava-dehibe ny fanombohana haingana, indrindra ho an'ny sehatra toa an'i Kubernetes, izay miantehitra amin'ny fifindra-monina haingana amin'ny node ara-batana samihafa. Soa ihany fa afaka mitantana ny rindranasa miadana ny Kubernetes amin'ny fampiasana endri-javatra toy ny probe fanombohana.
Fanamby iray hafa mety hatrehintsika dia ny fanavaozana ny fandrindrana rehefa mandeha ny fampiharana. Matetika, ny fanitsiana ny fotoana cache na ny fangatahana fotoana fiatoana dia ilaina mba hamahana ny olan'ny famokarana. Na dia afaka manaparitaka haingana ireo rakitra fanovana nohavaozina amin'ny rindranasantsika aza isika, ny fampiharana ireo fanovana ireo matetika dia mitaky famerenana. Miaraka amin'ny fotoam-piatombohan'ny fampiharana tsirairay, ny fanombohana mihodina dia mety hanemotra be ny fametrahana ny fanamboarana ho an'ireo mpampiasa anay.
Mba hiadiana amin'izany, ny vahaolana iray dia ny fitehirizana ny fandrindrana amin'ny fari-piainana mifanandrify ary ny fanavaozam-baovao tsindraindray azy io ny kofehy ambadika. Na izany aza, ny mari-pamantarana sasany, toy ny fiafaran'ny fangatahan'ny HTTP, dia mety mitaky ny hamerenana indray ny mpanjifa HTTP na angon-drakitra rehefa miova ny fanovana mifanaraka amin'izany, ka miteraka fanamby. Na izany aza, ny mpanjifa sasany, toa ny mpamily Cassandra ho an'ny Java, dia manohana ny famerenam-peo mandeha ho azy, manatsotra ity dingana ity.
Ny fampiharana ireo fanefena azo averina dia afaka manamaivana ny fiantraika ratsy amin'ny fotoana fanombohana fampiharana lava ary manome tombony fanampiny, toy ny fanamorana ny fametrahana saina. Ity fomba fiasa ity dia ahafahantsika mitazona ny fahamendrehana sy ny fandraisan'anjaran'ny fampiharana rehefa mitantana amin'ny fomba mahomby ny fanavaozam-baovao.
Andeha hojerentsika izao olana iray hafa: ao amin'ny rafitra misy antsika, rehefa voaray ny fangatahan'ny mpampiasa sy karakaraina amin'ny fandefasana fanontaniana any amin'ny backend na angon-drakitra, indraindray dia misy valiny diso voaray fa tsy ny angona andrasana. Manaraka izany, mamaly ny mpampiasa amin'ny 'error' ny rafitray.
Na izany aza, amin'ny toe-javatra maro, mety tsara kokoa ny mampiseho angon-drakitra kely lany andro miaraka amin'ny hafatra milaza fa misy fahatarana ny fanavaozana ny data, fa tsy mamela ny mpampiasa amin'ny hafatra diso mena be.
Mba hamahana ity olana ity sy hanatsarana ny fitondran-tenan'ny rafitray dia afaka mampihatra ny lamina Fallback izahay. Ny foto-kevitra ao ambadik'ity lamina ity dia misy ny fananana loharanom-baovao faharoa, izay mety ahitana angona ambany kalitao na vaovao raha oharina amin'ny loharano voalohany. Raha tsy misy ny loharanom-baovao voalohany na mamerina hadisoana, dia afaka miverina maka angon-drakitra avy amin'ity loharano faharoa ity ny rafitra, ka miantoka fa misy endrika fampahalalana aseho amin'ny mpampiasa fa tsy mampiseho hafatra diso.
Raha mijery ny sary etsy ambony ianao dia ho hitanao fa misy fitoviana eo amin'ny olana atrehintsika ankehitriny sy ilay sendra anay tamin'ny ohatra cache.
Mba hamahana izany, dia afaka mandinika ny fampiharana ny lamina antsoina hoe retry. Raha tokony hiantehitra amin'ny cache, ny rafitra dia azo natao hamerenana ho azy ny fangatahana raha misy hadisoana. Ity lamina andrana indray ity dia manolotra safidy tsotra kokoa ary afaka mampihena tsara ny mety hisian'ny lesoka amin'ny fampiharana ataontsika. Tsy toy ny caching, izay matetika mitaky mekanika fanafoanana ny cache mba hifehezana ny fiovan'ny angon-drakitra, ny famerenana ny fangatahana tsy nahomby dia somary tsotra ny fampiharana. Satria ny fanafoanana ny cache dia heverina ho iray amin'ireo asa sarotra indrindra amin'ny injeniera rindrambaiko, ny fampiasana tetikady andrana indray dia afaka manamora ny fitantanana ny fahadisoana ary manatsara ny faharetan'ny rafitra.
Na izany aza, mety hiteraka fahasarotana bebe kokoa ny fampiasana paikady andrana indray nefa tsy mandinika ny mety ho vokany.
Alao sary an-tsaina ny iray amin'ireo lamosinay miaina tsy fahombiazana. Amin'ny toe-javatra toy izany, ny fanombohana famerenana amin'ny backend tsy nahomby dia mety hiteraka fiakarana lehibe amin'ny habetsahan'ny fifamoivoizana. Ity fisondrotan'ny fifamoivoizana tampoka ity dia mety hihoatra ny lamosina, hampitombo ny tsy fahombiazana ary mety hiteraka fiatraikany amin'ny rafitra.
Mba hiatrehana io fanamby io dia zava-dehibe ny famenoana ny lamina andrana indray miaraka amin'ny lamina fiatoana. Ny fiatoana dia miasa ho toy ny rafitra fiarovana izay manara-maso ny taham-pahadisoan'ny serivisy ambany. Rehefa mihoatra ny fe-potoana voafaritra mialoha ny taham-pahadisoana, dia manapaka ny fangatahana amin'ny serivisy voakasika mandritra ny fe-potoana voafaritra ny fiatoana. Mandritra io vanim-potoana io, ny rafitra dia tsy mandefa fangatahana fanampiny mba hamelana ny fotoanan'ny serivisy tsy nahomby. Aorian'ny elanelam-potoana voatondro, mamela amim-pitandremana ny fiatoana amin'ny isa voafetra ny fangatahana mandalo, hanamarina raha nilamina ny serivisy. Raha sitrana ny serivisy dia averina tsikelikely ny fifamoivoizana ara-dalàna; raha tsy izany, mijanona misokatra ny faritra, manohy manakana ny fangatahana mandra-piverin'ny serivisy amin'ny asany ara-dalàna. Amin'ny fampifangaroana ny lamin'ny fiatoana amin'ny faritra miaraka amin'ny lojika andrana indray, dia afaka mitantana tsara ny toe-javatra misy lesoka isika ary misoroka ny fihoaran'ny rafitra mandritra ny tsy fahombiazan'ny backend.
Ho fehin-kevitra, amin'ny fampiharana ireo lamina mahatanty ireo, dia afaka manamafy ny fampiharana ataontsika amin'ny hamehana isika, mitazona ny fahafaha-manao avo lenta, ary manome traikefa tsy misy olana amin'ny mpampiasa. Fanampin'izay, tiako ny hanamafisana fa ny telemetry dia fitaovana iray hafa izay tsy tokony hodian-tsy hita rehefa manome ny faharetan'ny tetikasa. Ny logs sy metrika tsara dia afaka manatsara ny kalitaon'ny serivisy ary manome fomba fijery sarobidy momba ny zava-bitany, manampy amin'ny fandraisana fanapahan-kevitra tsara hanatsarana azy ireo bebe kokoa.