Kagandahan sa Mga Breaks: Paglikha ng mga nababanat na System Sa pamamagitan ng Chaos Engineering

May -Akda: Laura McKinney
Petsa Ng Paglikha: 2 Abril 2021
I -Update Ang Petsa: 1 Hulyo 2024
Anonim
Kagandahan sa Mga Breaks: Paglikha ng mga nababanat na System Sa pamamagitan ng Chaos Engineering - Teknolohiya
Kagandahan sa Mga Breaks: Paglikha ng mga nababanat na System Sa pamamagitan ng Chaos Engineering - Teknolohiya

Nilalaman


Pinagmulan: pressureUA / iStockphoto

Takeaway:

Ang mga modernong sistema ay dapat hawakan ang kaguluhan upang maiwasan ang pagbagsak. Kung bakit ang mas mahalaga kaysa dati upang lubusan na masuri ang mga system at masiguro ang kanilang pagiging matatag.

Sa kabila ng aming pinakamalaking pagsisikap upang maiwasan ang mga ito, ang mga insidente ng IT ay hindi maiiwasang bahagi ng trabaho - at ang pagsubok na manatiling maaga sa downtime na nakakaapekto sa negosyo ay nakakakuha lamang ng trick. Ang mga system ngayon ay mahigpit na magkasama at lalong kumplikado, at sa mas maraming mga gumagalaw na bahagi ay nagkakaroon ng mas maraming mga pagkakataon para sa mga bagay na magkamali.

Ito ang isang kadahilanan kung bakit mas maraming mga organisasyon ang bumabalik sa microservice para sa pagtaas ng pagkakaroon ng serbisyo at mas mahusay na nababanat sa kabiguan. Ngunit habang ang mga ito ay mahusay na lugar para sa pagsira sa mga aplikasyon ng monolitik, maaari rin nilang potensyal na tambalan ang peligro ng kabiguan - maliban kung idinisenyo nang malinaw na may katatagan sa isip.


Paghahanda para sa pagkabigo

Dahil sa likas na magulong kalikasan ng mga ipinamamahagi na mga system, ang mga serbisyo ay dapat na binuo hindi lamang upang asahan ang kabiguan, ngunit upang awtomatikong mabawi sa kaganapan ng pagkabigo. Nangangahulugan ito ng pag-instigate ng mga pagkabigo sa isang regular na batayan upang matiyak na makakahawak ang iyong mga system ng kaguluhan nang hindi nakakagambala sa serbisyo upang tapusin ang mga customer. At upang makamit ito, kailangan mo ang kakayahang gayahin ang tulad ng produksyon ng trapiko sa mga kapaligiran sa pagsubok.

Siyempre, magandang ideya na subukan ang katatagan bago magawa ang mga pagbabago sa paggawa. Kung hindi mo ito gagawin, hindi mo mai-verify na maaaring suportahan ng iyong mga serbisyo ang parehong average at ranggo ng rurok. Sa katunayan, ang pinakaligtas na mapagpipilian ay upang matiyak na maaaring mahawakan ng iyong produkto ng hanggang sa dalawang beses ang halaga ng rurok nang hindi kinakailangang masukat.


Pagdating sa pagsubok na nababanat, ang mga tamang tool ay hindi dapat mag-aalala tungkol sa kung paano mahawakan ang mga kahilingan, mayroon lamang silang tamang epekto sa wakas. Alalahanin na sa ilalim ng ilang mga kundisyon, ang serbisyo ng pag-input ay maaaring mabibigo na ibigay ang isang kahilingan sa natitirang bahagi ng system ngunit hindi iulat ang pagkabigo. Huwag ipagsapalaran ang mga isyu na lumilipad sa ilalim ng radar ng pagsubaybay sa pamamagitan ng pagtiyak na ang pagpapatunay ng end-to-end ay, sa katunayan, nagaganap. (Para sa higit pa, tingnan ang Mga Nabigo sa Tech: Maaari ba tayong Mabuhay Sa Kanila?)

Ang Susunod na Mga Hakbang

Matapos maunawaan kung paano kumilos ang mga serbisyo sa ilalim ng pag-load, oras na upang simulan ang pagpapakilala ng mga kaganapan sa pagkabigo. Tulad ng lahat ng pagsubok sa software, mas mahusay na magkaroon ng awtomatikong mga tool na nagbibigay-daan sa iyo upang madali at mabilis na muling magparami ng mga senaryo, upang maaari mong i-coordinate ang mga kumplikadong kaganapan na nakakaapekto sa iba't ibang mga teknolohiya sa imprastruktura. At lampas sa kakayahang i-verify ang mga pag-aayos at mga pagbabago sa mga serbisyo, pinapayagan ka nitong magpatakbo ng mga random na mga sitwasyong pagkabigo sa anumang kapaligiran at sa isang iskedyul.

Ang mga makabuluhang kaganapan ng pagkabigo ay nakasalalay sa kalakhan ng iyong mga serbisyo, at maaari mong mabuo ang mga ito sa pamamagitan ng pagtatanong ng mga tiyak na katanungan na may kaugnayan sa iyo. Halimbawa, ano ang epekto para sa mga taong gumagamit ng front-end kapag ang isang database ay hindi maabot sa isang tiyak na tagal ng oras? Maaari pa bang mag-navigate ang mga gumagamit na iyon sa web UI? Maaari pa ba silang mag-isyu ng mga update sa kanilang impormasyon, at ang mga pag-update na iyon ay maiproseso nang tama kapag ang database ay maaabot muli?

Kung nagpapatakbo ka ng maraming microservice, maaari mong tanungin kung magkakaroon ng isang pandaigdigang pag-iwas kung may nag-crash na indibidwal na serbisyo. O kung mayroon kang mekanismo ng nakapila upang masugpo ang komunikasyon sa pagitan ng mga serbisyo, ano ang mangyayari kapag ang serbisyo ng consumer (o mga serbisyo) ay tumigil sa pagtatrabaho? Makikipagtulungan pa ba ang mga gumagamit sa iyong aplikasyon? At binigyan ng isang average na pag-load, gaano katagal ang mayroon ka bago umapaw ang mga pila at nagsimula kang mawala s?

Walang Mga bug, Walang Stress - Ang Iyong Hakbang sa Hakbang Patnubay sa Paglikha ng Software na Pagbabago ng Buhay nang Walang Pagsira sa Iyong Buhay

Hindi mo maaaring mapabuti ang iyong mga kasanayan sa pag-programming kapag walang nagmamalasakit sa kalidad ng software.

Kapag natukoy mo ang ilang mga pangunahing katanungan tungkol sa iyong imprastraktura, maaari mong simulan ang paglista ng iba't ibang mga paraan upang gayahin ang mga pagkabigo. Maaaring sapat na upang ihinto ang isang partikular na serbisyo o isang server ng database. Maaari mong harangin ang pangunahing thread ng isang serbisyo upang gayahin ang isang patay na lock, habang ang lalagyan ay tumutugon pa rin at tumatakbo. Maaari kang magpasya na magpakilala ng mga patakaran sa iyong network upang hadlangan ang trapiko sa pagitan ng mga tukoy na serbisyo. Sa mga kapaligiran ng Linux, maaari mong gamitin ang mga tool tulad ng 'tc' upang tularan ang mga sitwasyon sa network tulad ng mataas na latency, bumagsak, nasira o dobleng packet. (Maaari itong maging mahalaga upang maisangkot ang mga gumagamit sa pagsubok. Magbasa nang higit pa sa 4 Mga Dahilan Kung Bakit Kailangang Makilahok ng Mga Gumagamit sa Pagtatapos sa UAT.)

Pag-aaral at Pagpapabuti sa pamamagitan ng Drills

Ang isa sa mga pinakamahalagang aspeto ng paglikha ng mga senaryo ng pagkabigo ay maaari nilang ilantad ang lahat ng mga potensyal na paraan na maaaring mabigo ang system, sa gayon ay inukit ang landas sa nakapagpapagaling na lohika. Ang iyong koponan ay dumadaan sa mga hakbang upang manu-manong mabawi ang mga serbisyo - isang mahusay na drill, sa paraan, para sa pagkumpirma na nagagawa nila ito sa loob ng mga SLA. Ang pag-automate ng proseso ng pagbawi na ito ay maaaring magtrabaho, ngunit sa pansamantala, maaari mong mapahinga nang madali alam ang iyong koponan ay lumakad sa proseso ng pagkuha ng mga serbisyo pabalik sa track. Sa pamamagitan ng paggawa ng mga senaryo ng pagkabigo nang random at regular at hindi isinisiwalat ang buong detalye ng pagtakbo, maaari mo ring isama ang pagtuklas at pag-diagnose sa drill - na kung saan, pagkatapos ng lahat, isang kritikal na bahagi ng mga SLA.

Sa core nito, ang kaguluhan sa engineering ay tumatagal ng pagiging kumplikado ng system bilang isang naibigay, sinusuri ito sa pamamagitan ng pag-simulate ng mga bago at wacky na kondisyon, at obserbahan kung paano tumugon ang system. Ito ang mga data engineering team na kailangan upang muling idisenyo at muling pagkumpirma sa system upang makamit ang mas mataas na resilience. Maraming mga pagkakataon upang malaman ang bago at kapaki-pakinabang na mga bagay. Halimbawa, maaari kang makahanap ng mga pagkakataon kung saan ang mga serbisyo ay hindi nakakakuha ng mga update kapag nagbago ang mga serbisyo ng agos, o mga lugar kung saan nawawala ang pagsubaybay. Walang kakulangan ng mga kapana-panabik na paraan upang gawing mas nababanat at matatag ang iyong produkto!