![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Rezilyans nan lojisyèl refere a kapasite yon aplikasyon pou kontinye fonksyone san pwoblèm ak fyab, menm nan fè fas a pwoblèm inatandi oswa echèk. Nan pwojè Fintech, detèminasyon se yon gwo enpòtans espesyalman akòz plizyè rezon. Premyèman, konpayi yo oblije satisfè kondisyon regilasyon ak regilatè finansye yo mete aksan sou rezistans operasyonèl pou kenbe estabilite nan sistèm nan. Anplis, pwopagasyon zouti dijital ak depandans sou founisè sèvis twazyèm pati ekspoze biznis Fintech a menas sekirite ogmante. Rezilyans ede tou bese risk ki genyen nan pann ki te koze pa plizyè faktè tankou menas cyber, pandemi, oswa evènman jeopolitik, pwoteje operasyon biznis debaz yo ak byen enpòtan yo.
Pa modèl rezistans, nou konprann yon seri pi bon pratik ak estrateji ki fèt pou asire ke lojisyèl ka kenbe tèt ak dezòd epi kenbe operasyon li yo. Modèl sa yo aji tankou filè sekirite, bay mekanis pou jere erè, jere chaj, ak retabli de echèk, kidonk asire aplikasyon yo rete solid ak serye nan kondisyon negatif.
Estrateji rezistans ki pi komen yo enkli bulkhead, kachèt, remplacement, retry, ak disjoncteur. Nan atik sa a, mwen pral diskite sou yo an plis detay, ak egzanp pwoblèm yo ka ede yo rezoud.
Ann pran yon gade nan anviwònman ki anwo a. Nou gen yon aplikasyon trè òdinè ak plizyè backends dèyè nou pou jwenn kèk done de. Gen plizyè kliyan HTTP ki konekte ak backend sa yo. Li sanble ke yo tout pataje menm pisin koneksyon an! Epi tou lòt resous tankou CPU ak RAM.
Kisa ki pral rive, Si youn nan backend yo fè eksperyans kèk sòt de pwoblèm ki lakòz gwo latansi demann? Akòz gwo tan repons lan, tout pisin koneksyon an ap vin konplètman okipe pa demann k ap tann repons ki soti nan backend1. Kòm yon rezilta, demann ki fèt pou backend2 ak backend3 ki an sante p ap kapab kontinye paske pisin lan fin itilize. Sa vle di ke yon echèk nan youn nan backend nou yo ka lakòz yon echèk nan tout aplikasyon an. Idealman, nou vle sèlman fonksyonalite ki asosye ak backend ki echèk la fè eksperyans degradasyon, pandan y ap rès aplikasyon an kontinye ap fonksyone nòmalman.
Ki sa ki se modèl la Bulkhead?
Tèm nan, modèl Bulkhead, sòti nan konstriksyon bato, li enplike kreye plizyè konpatiman izole nan yon bato. Si yon flit rive nan yon sèl lòj, li ranpli ak dlo, men lòt lòj yo rete pa afekte. Izolasyon sa a anpeche tout veso a koule akòz yon sèl vyolasyon.
Modèl Bulkhead la ka itilize pou izole divès kalite resous nan yon aplikasyon, pou anpeche yon echèk nan yon pati afekte tout sistèm nan. Men ki jan nou ka aplike li nan pwoblèm nou an:
Ann sipoze sistèm backend nou yo gen yon ti pwobabilite pou rankontre erè endividyèlman. Sepandan, lè yon operasyon enplike demann tout backend sa yo nan paralèl, chak ka poukont yo retounen yon erè. Paske erè sa yo rive poukont li, pwobabilite jeneral pou yon erè nan aplikasyon nou an pi wo pase pwobabilite erè nenpòt sèl backend. Yo ka kalkile pwobabilite kimilatif erè a lè l sèvi avèk fòmil P_total=1−(1−p)^n, kote n se kantite sistèm backend.
Pou egzanp, si nou gen dis backend, yo chak ak yon pwobabilite erè nan p = 0.001 (ki koresponn ak yon SLA nan 99.9%), pwobabilite ki lakòz erè a se:
P_total=1−(1−0.001)^10=0.009955
Sa vle di SLA konbine nou an desann apeprè 99%, sa ki montre kouman fyab la an jeneral diminye lè w ap chèche plizyè backends an paralèl. Pou bese pwoblèm sa a, nou ka aplike yon kachèt nan memwa.
Yon kachèt nan memwa sèvi kòm yon tanpon done gwo vitès, estoke done aksè souvan epi elimine nesesite pou chèche li nan sous potansyèlman dousman chak fwa. Depi kachèt ki estoke nan memwa gen 0% chans pou erè konpare ak chache done sou rezo a, yo ogmante siyifikativman fyab aplikasyon nou an. Anplis, kachèt diminye trafik rezo a, plis diminye chans pou erè. Kontinwe, lè nou itilize yon kachèt nan memwa, nou ka reyalize yon pousantaj erè menm pi ba nan aplikasyon nou an konpare ak sistèm backend nou yo. Anplis de sa, kachèt nan memwa ofri rekipere done pi rapid pase chache ki baze sou rezo a, kidonk diminye latansi aplikasyon an—yon avantaj remakab.
Pou done pèsonalize, tankou pwofil itilizatè oswa rekòmandasyon, lè l sèvi avèk kachèt nan memwa kapab tou trè efikas. Men, nou bezwen asire tout demann ki soti nan yon itilizatè toujou ale nan menm aplikasyon an pou itilize done yo nan kachèt pou yo, ki mande pou sesyon kolan. Aplike sesyon kolan ka difisil, men pou senaryo sa a, nou pa bezwen mekanis konplèks. Rebalansman trafik minè akseptab, kidonk yon algorithm balanse chaj ki estab tankou hachaj konsistan ap sifi.
Anplis de sa, nan evènman an nan yon echèk ne, hashing konsistan asire ke sèlman itilizatè yo ki asosye ak ne echwe a sibi reekilib, minimize dezòd nan sistèm nan. Apwòch sa a senplifye jesyon kachèt pèsonalize ak amelyore estabilite jeneral ak pèfòmans aplikasyon nou an.
Si done nou gen entansyon mete yo nan kachèt yo kritik epi yo itilize nan chak demann sistèm nou an okipe, tankou règleman aksè, plan abònman, oswa lòt antite enpòtan nan domèn nou an—sous done sa yo ka reprezante yon pwen enpòtan nan echèk nan sistèm nou an. Pou adrese defi sa a, yon apwòch se konplètman repwodui done sa yo dirèkteman nan memwa aplikasyon nou an.
Nan senaryo sa a, si volim done nan sous la se jere, nou ka kòmanse pwosesis la pa telechaje yon snapshot nan done sa yo nan kòmansman aplikasyon nou an. Imedyatman, nou ka resevwa mizajou evènman yo asire done yo kachèt rete senkronize ak sous la. Lè nou adopte metòd sa a, nou amelyore fyab nan aksè nan done enpòtan sa yo, kòm chak rekipere rive dirèkteman nan memwa ak yon pwobabilite erè 0%. Anplis de sa, rekipere done nan memwa se eksepsyonèlman rapid, kidonk optimize pèfòmans aplikasyon nou an. Estrateji sa a efektivman diminye risk ki asosye ak konte sou yon sous done ekstèn, asire aksè konsistan ak serye a enfòmasyon enpòtan pou operasyon aplikasyon nou an.
Sepandan, bezwen pou telechaje done sou demaraj aplikasyon an, kidonk retade pwosesis demaraj la, vyole youn nan prensip 'aplikasyon 12 faktè' ki defann demaraj aplikasyon rapid. Men, nou pa vle pèdi benefis ki genyen nan itilize kachèt. Pou adrese dilèm sa a, ann eksplore solisyon potansyèl yo.
Demaraj rapid enpòtan, espesyalman pou platfòm tankou Kubernetes, ki konte sou migrasyon aplikasyon rapid nan diferan nœuds fizik. Erezman, Kubernetes ka jere aplikasyon pou kòmanse dousman lè l sèvi avèk karakteristik tankou sond demaraj.
Yon lòt defi nou ka fè fas a se mete ajou konfigirasyon pandan aplikasyon an ap kouri. Souvan, ajiste tan kachèt oswa demann timeouts nesesè pou rezoud pwoblèm pwodiksyon an. Menm si nou ka byen vit deplwaye dosye konfigirasyon ki ajou nan aplikasyon nou an, pou aplike chanjman sa yo anjeneral mande pou yon rekòmanse. Avèk tan demaraj pwolonje chak aplikasyon an, yon rekòmanse woule ka siyifikativman retade deplwaye koreksyon pou itilizatè nou yo.
Pou atake sa a, yon solisyon se estoke konfigirasyon nan yon varyab konkouran epi gen yon fil background detanzantan mete ajou li. Sepandan, sèten paramèt, tankou delè pou demann HTTP, ka mande pou reinisyalize kliyan HTTP oswa baz done lè konfigirasyon ki koresponn lan chanje, sa ki poze yon defi potansyèl. Men, kèk kliyan, tankou chofè Cassandra pou Java, sipòte rechaje otomatik nan konfigirasyon, senplifye pwosesis sa a.
Enplemante konfigirasyon rechajable ka bese enpak negatif nan tan demaraj aplikasyon ki long epi ofri benefis adisyonèl, tankou fasilite aplikasyon drapo karakteristik. Apwòch sa a pèmèt nou kenbe fyab aplikasyon ak repons pandan y ap jere avèk efikasite mizajou konfigirasyon yo.
Koulye a, kite nou pran yon gade nan yon lòt pwoblèm: nan sistèm nou an, lè yon demann itilizatè resevwa ak trete pa voye yon rechèch nan yon backend oswa baz done, detanzantan, yo resevwa yon repons erè olye pou yo done yo espere. Imedyatman, sistèm nou an reponn itilizatè a ak yon 'erè'.
Sepandan, nan anpil senaryo, li ka pi preferab pou montre done yon ti kras demode ansanm ak yon mesaj ki endike gen yon reta rafrechi done, olye ke kite itilizatè a ak yon gwo mesaj erè wouj.
Pou rezoud pwoblèm sa a epi amelyore konpòtman sistèm nou an, nou ka aplike modèl Fallback la. Konsèp ki dèyè modèl sa a enplike nan gen yon sous done segondè, ki ka gen done ki pi ba kalite oswa fraîcheur konpare ak sous prensipal la. Si sous done prensipal la pa disponib oswa retounen yon erè, sistèm nan ka retounen nan rekipere done ki soti nan sous segondè sa a, asire ke kèk fòm enfòmasyon yo prezante bay itilizatè a olye pou yo montre yon mesaj erè.
Si ou gade nan foto ki anwo a, ou pral remake yon resanblans ant pwoblèm nan nou ap fè fas kounye a ak youn nan nou te rankontre ak egzanp lan kachèt.
Pou rezoud li, nou ka konsidere aplike yon modèl ke yo rekonèt kòm retry. Olye pou yo repoze sou kachèt, sistèm nan ka fèt otomatikman renvoyer demann lan nan ka ta gen yon erè. Modèl retry sa a ofri yon altènatif ki pi senp epi li ka efektivman redwi chans pou erè nan aplikasyon nou an. Kontrèman ak kachèt, ki souvan mande pou mekanis envalidasyon kachèt konplèks pou okipe chanjman done yo, reesye demann ki echwe se relativman senp pou aplike. Kòm envalidasyon kachèt lajman konsidere kòm youn nan travay ki pi difisil nan jeni lojisyèl, adopte yon estrateji retry ka rasyonalize manyen erè ak amelyore rezistans sistèm.
Sepandan, adopte yon estrateji retry san yo pa konsidere konsekans potansyèl yo ka mennen nan plis konplikasyon.
Ann imajine youn nan backend nou yo fè eksperyans yon echèk. Nan yon senaryo konsa, kòmanse reesye nan backend echèk la ka lakòz yon ogmantasyon siyifikatif nan volim trafik. Sa a vag toudenkou nan trafik ka akable backend la, agrave echèk la ak potansyèlman lakòz yon efè kaskad atravè sistèm nan.
Pou fè fas ak defi sa a, li enpòtan pou konplete modèl retry la ak modèl disjoncteurs. Disjoncteur a sèvi kòm yon mekanis pwoteksyon ki kontwole pousantaj erè nan sèvis en. Lè pousantaj erè a depase yon papòt predefini, disjoncteurs a entèwonp demann nan sèvis ki afekte a pou yon dire espesifik. Pandan peryòd sa a, sistèm nan evite voye demann adisyonèl pou pèmèt tan sèvis echèk la refè. Apre entèval ki deziyen an, disjoncteurs a ak anpil atansyon pèmèt yon kantite limite nan demann yo pase, verifye si sèvis la te estabilize. Si sèvis la refè, trafik nòmal la piti piti retabli; otreman, kous la rete louvri, kontinye bloke demann jiskaske sèvis la rekòmanse operasyon nòmal. Lè nou entegre modèl disjoncteurs a ansanm ak lojik retry, nou ka efektivman jere sitiyasyon erè epi anpeche surcharge sistèm pandan echèk backend.
An konklizyon, lè nou aplike modèl rezistans sa yo, nou ka ranfòse aplikasyon nou yo kont ijans, kenbe disponiblite segondè, epi bay itilizatè yo yon eksperyans san pwoblèm. Anplis de sa, mwen ta renmen mete aksan sou ke telemetrik se ankò yon lòt zouti ki pa ta dwe neglije lè yo bay rezistans pwojè. Bon journaux ak mezi yo ka amelyore siyifikativman kalite sèvis yo ak bay bonjan apèsi sou pèfòmans yo, ede pran desizyon enfòme pou amelyore yo plis.