![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Resilience in software inoreva kugona kweapplication kuti irambe ichishanda zvakanaka uye nekuvimbika, kunyangwe pakatarisana nenyaya dzisingatarisirwe kana kutadza. MuFintech mapurojekiti kusimba kwakakosha zvakanyanya nekuda kwezvikonzero zvakati wandei. Chekutanga, makambani anosungirwa kuzadzisa zvinodiwa zvekutonga uye vanodzora vezvemari vanosimbisa kusimba kwekushanda kuchengetedza kugadzikana mukati mehurongwa. Zvakare, kuwanda kwezvishandiso zvedhijitari uye kuvimba nevechitatu-bato vanopa masevhisi kunofumura mabhizinesi eFintech kune akawedzera kutyisidzira kwekuchengetedza. Resilience zvakare inobatsira kudzikisira njodzi dzekudzima kunokonzerwa nezvinhu zvakasiyana sekutyisidzira kwecyber, denda, kana zviitiko zvegeopolitical, kuchengetedza mashandiro ebhizinesi uye zvinhu zvakakosha.
Nemaitiro ekusimba, isu tinonzwisisa seti yeakanakisa maitiro uye marongero akagadzirirwa kuve nechokwadi chekuti software inogona kukurira kukanganisa uye kuchengetedza mashandiro ayo. Aya maitiro anoita semambure ekuchengetedza, achipa nzira dzekugadzirisa kukanganisa, kutonga mutoro, uye kupora kubva mukukundikana, nekudaro kuve nechokwadi chekuti maapplication anoramba akasimba uye akavimbika pasi pemamiriro ezvinhu akaipa.
Mazano anonyanya kusimba ekugadzirisa anosanganisira bulkhead, cache, fallback, edzazve, uye circuit breaker. Muchinyorwa chino, ndichadzikurukura zvakadzama, nemuenzaniso wematambudziko avanogona kubatsira kugadzirisa.
Ngatitarisei mamiriro ari pamusoro apa. Isu tine yakajairika application ine akati wandei kumashure kwedu kuti titore data kubva. Kune akati wandei HTTP vatengi akabatana kune aya backends. Zvinoitika kuti vese vanogovana dziva rimwechete rekubatanidza! Uye zvakare zvimwe zviwanikwa zvakaita seCPU uye RAM.
Chii chichaitika, Kana imwe yevanodzokera kumashure ikasangana neimwe mhando yezvinetso zvinokonzeresa mukukumbira latency? Nekuda kwenguva yekupindura yakakwira, dziva rese rekubatanidza rinove rakagarwa zvizere nezvikumbiro zvakamirira mhinduro kubva kubackend1. Nekuda kweizvozvo, zvikumbiro zvakaitirwa iyo ine hutano backend2 uye backend3 hazvizokwanise kuenderera nekuti dziva rapera. Izvi zvinoreva kuti kutadza mune imwe yedu yekumashure kunogona kukonzera kutadza pane yese application. Sezvineiwo, isu tinoda chete mashandiro ane chekuita neiyo yekutadza backend kuti anzwe kudzikisirwa, nepo imwe application ichiramba ichishanda zvakajairika.
Chii chinonzi Bulkhead Pattern?
Izwi rekuti, Bulkhead pateni, rinobva mukuvaka ngarava, rinosanganisira kugadzira akati wandei ega ega mukati mengarava. Kana kuputika kukaitika mune imwe kamuri, inozadza nemvura, asi mamwe makamuri anoramba asina kukanganiswa. Kuzvitsaura uku kunodzivirira chikepe chose kuti chisanyura nekuda kwekutyoka kumwe chete.
Iyo Bulkhead pateni inogona kushandiswa kusiyanisa marudzi akasiyana ezviwanikwa mukati mekushandisa, kudzivirira kutadza muchikamu chimwe kubva pakukanganisa hurongwa hwese. Heano maitiro atinogona kuishandisa kune dambudziko redu:
Ngatitii masisitimu edu ekumashure ane mukana wakaderera wekusangana nezvikanganiso mumwe nemumwe. Nekudaro, kana oparesheni ichisanganisira kubvunza zvese izvi backends zvakafanana, imwe neimwe inogona kuzvimiririra kudzorera kukanganisa. Nekuti zvikanganiso izvi zvinoitika zvakazvimiririra, mukana wakazara wemhosho mukushandisa kwedu wakakwirisa kupfuura mukana wekukanganisa weimwe backend. Kuwanda kwekukanganisa kunogona kuverengerwa uchishandisa fomula P_total=1−(1−p)^n, apo n inhamba yemasisitimu ekumashure.
Semuyenzaniso, kana tiine gumi kumashure, imwe neimwe iine chikanganiso che p=0.001 (inoenderana neSLA ye99.9%), mhedzisiro kukanganisa kukanganisa ndeiyi:
P_total=1−(1−0.001)^10=0.009955
Izvi zvinoreva kuti SLA yedu yakasanganiswa inodonha kusvika pa99%, zvichiratidza kuti kuvimbika kwese kunodzikira sei kana uchibvunza akawanda backends mukufanana. Kuti tideredze nyaya iyi, tinogona kushandisa in-memory cache.
I-in-memory cache inoshanda seyepamusoro-kumhanya data buffer, kuchengetedza inowanzowanikwa data uye kubvisa kudiwa kwekuitora kubva kune inogona kunonoka masosi nguva dzese. Sezvo macache akachengetwa mu-memory aine 0% mukana wekukanganisa kana uchienzaniswa nekutora data panetiweki, iwo anowedzera zvakanyanya kuvimbika kwekushandisa kwedu. Uyezve, caching inoderedza network traffic, ichiwedzera kuderedza mukana wekukanganisa. Nekuda kweizvozvo, nekushandisa in-memory cache, tinogona kuwana yakatodzika yekukanganisa mwero mukushandisa kwedu zvichienzaniswa neyekumashure masisitimu. Pamusoro pezvo, mu-memory cache inopa kukurumidza kudzoreredza data pane network-yakavakirwa kutora, nekudaro ichideredza application latency-yakakosha mukana.
Kune yakasarudzika data, senge mushandisi profiles kana kurudziro, kushandisa mu-memory cache kunogona zvakare kushanda zvakanyanya. Asi isu tinofanirwa kuve nechokwadi chekuti zvese zvikumbiro kubva kumushandisi zvinogara zvichienda kune imwecheteyo application muenzaniso kushandisa data rakachengeterwa ivo, izvo zvinoda inonamira zvikamu. Kuita masesisheni anonamira kunogona kuve kwakaoma, asi kune iyi mamiriro, hatidi michina yakaoma. Diki traffic rebalancing inogamuchirika, saka yakagadzikana mitoro yekuyera algorithm senge inowirirana hashing inokwana.
Zvakare, kana pakaitika kutadza kwenode, hashing isingachinji inovimbisa kuti vashandisi chete vanobatana neiyo yakundikana node vanowanazve kuenzanisa, kuderedza kukanganisa kuhurongwa. Iyi nzira inorerutsa manejimendi emunhu cache uye inosimudzira kugadzikana kwese uye kuita kwekushandisa kwedu.
Kana iyo data yatinoda kuchengetedza yakakosha uye ichishandiswa muchikumbiro chese chinobatwa nesystem yedu, senge marongero ekuwana, hurongwa hwekunyoreswa, kana zvimwe zvinhu zvakakosha munzvimbo yedu - kwakabva data iyi kunogona kukonzera kukundikana kukuru musystem yedu. Kugadzirisa dambudziko iri, imwe nzira ndeyekudzokorora zvizere iyi data mundangariro dzekushandisa kwedu.
Mune ino mamiriro, kana huwandu hwe data mune sosi huchigoneka, isu tinogona kutanga maitiro nekudhawunirodha mufananidzo weiyi data pakutanga kwekushandisa kwedu. Zvadaro, tinogona kugashira zviitiko zvekuvandudza kuti tive nechokwadi chekuti data rakachengetwa rinoramba rakabatana nekwakabva. Nekutora nzira iyi, isu tinosimudzira kuvimbika kwekuwana iyi data yakakosha, sezvo kudzoreredza kwega kwega kunoitika zvakananga kubva mundangariro ne0% kukanganisa kukanganisa. Pamusoro pezvo, kudzoreredza data kubva mundangariro kunokurumidza zvakanyanya, nekudaro kugonesa kuita kwekushandisa kwedu. Urongwa uhwu hunodzikamisa njodzi ine chekuita nekutsamira pane yekunze data sosi, kuve nechokwadi chekuwana nguva dzose uye yakavimbika yekuwana ruzivo rwakakosha rwekushandisa kwedu application.
Nekudaro, iko kudikanwa kwekudhawunirodha data pakutanga application, nekudaro kunonoka maitiro ekutanga, kutyora imwe yemisimboti ye '12-factor application' inokurudzira kukurumidza kutanga application. Asi, isu hatidi kurasa mabhenefiti ekushandisa caching. Kuti tigadzirise dambudziko iri, ngationgororei zvingagadziriswe.
Kutanga nekukurumidza kwakakosha, kunyanya kumapuratifomu akaita seKubernetes, ayo anovimba nekukasira kutama kwekushandisa kuenda kune akasiyana emuviri node. Neraki, Kubernetes inogona kubata inononoka-kutanga maapplication uchishandisa maficha senge ekutanga probes.
Rimwe dambudziko ratinogona kutarisana naro kuvandudza zvimiro panguva iyo application iri kushanda. Kazhinji, kugadzirisa nguva dzecache kana kukumbira nguva yekubuda kunodiwa kugadzirisa nyaya dzekugadzira. Kunyangwe tikakwanisa kukurumidza kutumira mafaira ekugadzirisa akagadziridzwa kune yedu application, kushandisa shanduko idzi kunoda kutangazve. Nenguva yega yega yekushandisa yakawedzerwa yekutanga, kutenderedza kudzoreredza kunogona kunonoka kutumira zvigadziriso kune vashandisi vedu.
Kuti uite izvi, imwe mhinduro ndeyekuchengetedza zvigadziriso mune imwe chete shanduko uye kuve neiyo yekumashure tambo nguva nenguva ichivandudza. Nekudaro, mamwe ma paramita, senge HTTP yekukumbira nguva yekubuda, ingangoda kudzoreredza HTTP kana dhatabhesi vatengi kana inoenderana dhizaini yachinja, ichiunza dambudziko rinogona kuitika. Asi, vamwe vatengi, seCassandra mutyairi weJava, vanotsigira otomatiki kurodhazve zvigadziriso, kurerutsa maitiro aya.
Kuita zvigadziriso zvinotakurika zvinogona kudzikisira kukanganisa kwenguva refu yekutanga application uye kupa mamwe mabhenefiti, sekufambisa maficha maficha. Iyi nzira inotigonesa kuchengetedza kuvimbika kwechishandiso uye kupindura tichinyatso gadzirisa zvigadziriso zvekugadzirisa.
Iye zvino ngatitarisei rimwe dambudziko: muhurongwa hwedu, kana chikumbiro chemushandisi chichigamuchirwa uye chichigadziriswa nekutumira mubvunzo kune backend kana dhatabhesi, dzimwe nguva, mhinduro yekukanganisa inogamuchirwa panzvimbo yedata inotarisirwa. Zvadaro, sisitimu yedu inopindura mushandisi ne 'kukanganisa'.
Nekudaro, mune dzakawanda zviitiko, zvingave zviri nani kuratidza data shoma shoma pamwe nemeseji inoratidza kuti pane kunonoka kudzoreredza data, pane kusiya mushandisi aine hombe tsvuku yekukanganisa meseji.
Kuti tigadzirise nyaya iyi nekuvandudza mashandiro ehurongwa hwedu, tinogona kushandisa Fallback pateni. Pfungwa iri kuseri kwepateni iyi inosanganisira kuve neyechipiri data sosi, iyo inogona kunge iine data yemhando yakaderera kana kutsva kana ichienzaniswa neyekutanga kwakabva. Kana iyo yekutanga data sosi isingawanikwe kana kudzosa chikanganiso, sisitimu inogona kudzokera kunotora data kubva kune yechipiri sosi, kuve nechokwadi chekuti imwe nzira yeruzivo inounzwa kumushandisi pane kuratidza kukanganisa meseji.
Kana iwe ukatarisa pamufananidzo uri pamusoro, uchaona kufanana pakati penyaya yatakatarisana nayo izvozvi uye yatakasangana nayo necache muenzaniso.
Kuti tizvigadzirise, tinogona kufunga nezvekushandisa patani inozivikanwa seyedzazve. Panzvimbo yekuvimba necache, iyo system inogona kugadzirwa kuti itumire otomatiki chikumbiro kana paine chikanganiso. Iyi patani yekuyedza zvakare inopa imwe yakapusa uye inogona kudzikisira zvinobudirira mukana wekukanganisa mukushandisa kwedu. Kusiyana ne caching, iyo inowanzoda yakaoma cache invalidation maitiro ekugadzirisa shanduko yedata, kuedzazve zvikumbiro zvakundikana kuri nyore kuita. Sezvo kuvharirwa kwecache kuchionekwa zvakanyanya serimwe remabasa akaomarara muinjiniya yesoftware, kutora zano rekuyedza zvakare kunogona kugadzirisa kukanganisa kubata uye kugadzirisa kusimba kwehurongwa.
Nekudaro, kutora zano rekuyedza pasina kufunga zvingangozokonzeresa zvinogona kukonzera mamwe matambudziko.
Ngatimbofungidzira mumwe wevanodzokera shure akasangana nekukundikana. Mumamiriro ezvinhu akadaro, kutanga kuedza zvakare kune yakundikana backend kunogona kukonzera kuwedzera kukuru kwehuwandu hwemotokari. Uku kungoerekana kwawedzera kwetraffic kunogona kuremedza iyo backend, ichiwedzera kutadza uye zvingangokonzera cascade maitiro mukati mehurongwa.
Kuti utsungirire dambudziko iri, zvakakosha kuzadzisa patani yekuyedza zvakare neyedunhu breaker pateni. Iyo yedunhu inotyora inoshanda senzira yekuchengetedza inotarisisa mwero wekukanganisa kwemasevhisi ekudzika. Kana mwero wekukanganisa ukadarika chikumbaridzo chakafanotsanangurwa, muparadzi wedunhu anokanganisa zvikumbiro zvebasa rakakanganiswa kwenguva yakatarwa. Munguva iyi, sisitimu inorega kutumira zvikumbiro zvekuwedzera kubvumira nguva yekutadza sevhisi kupora. Mushure menguva yakatarwa, muparadzi wedunhu nekuchenjera anobvumira nhamba shoma yezvikumbiro kuti ipfuure, ichiratidza kana sevhisi yakagadzikana. Kana sevhisi yapora, traffic yakajairika inodzoserwa zvishoma nezvishoma; kana zvisina kudaro, dunhu rinoramba rakavhurika, richiramba richivhara zvikumbiro kusvikira sevhisi yatangazve kushanda kwakajairika. Nekubatanidza iyo yedunhu breaker pateni padivi pekuyedzazve logic, isu tinokwanisa kunyatso kugadzirisa mamiriro ekukanganisa uye kudzivirira kuwanda kwehurongwa panguva yekutadza kwebackend.
Mukupedzisa, nekushandisa maitiro ekusimba aya, tinogona kusimbisa zvikumbiro zvedu zvinopesana nenjodzi, kuchengetedza kuwanikwa kwepamusoro, uye kuendesa chiitiko chisina musono kuvashandisi. Pamusoro pezvo, ndinoda kusimbisa kuti telemetry chimwezve chishandiso chisingafanirwe kufuratirwa kana uchipa kusimba kweprojekiti. Marogi akanaka uye metrics anogona kuwedzera zvakanyanya kunaka kwesevhisi uye kupa ruzivo rwakakosha mukuita kwavo, zvichibatsira kuita sarudzo dzine ruzivo kuti dzivandudze mberi.