Tehnologija je povsod. Odvisno od tega, kako visok je vaš vložek, lahko okvara tehnološkega izdelka ali sistema pade od povsem zanemarljivega do konca življenjske dobe, kot jo poznate.
Mainframe bolnišnice? Nekako pomembno. Odpornost aplikacije Candy Crush na vašem mobilnem telefonu? Verjetno nekoliko nižje na celotnem seznamu prioritet.
V porazdeljenem omrežnem sistemu je okvara neizogibna. Preprečevanje katastrofe se začne s trdno, vodotesno varnostno zasnovo. Toda poleg tega, kaj še lahko storimo?
Kaj je Netflix Chaos Engineering?
20. september 2015.
Na zahodnem delu tiho, ko nenadoma več pomembnih korporacijskih strežnikov Amazon Web Services propade brez besed.
Mnoga velika podjetja več ur niso mogla zagotoviti svojih strank. Netflix pa se je v nekaj minutah spet postavil na noge. Kako? Interna kultura podjetja Netflix se je razvila tako, da vključuje številne prakse "povzročanja napak", ki se izvajajo v realnem času za pripravo sistemov in inženirjev na nesreče.
Vodstvo podjetja je namenoma izvedlo simulirane izpade strežnikov v nekaterih delih sistema, da bi preučilo in se pripravilo na takšne dogodke. To jim je pomagalo prepoznati luknje v sistemu in ustvariti presežke, ki so omogočili nemoteno delovanje storitve, tudi v primeru večje okvare, kot je bila prej omenjena.
Te namerne vaje "inženiringa kaosa" so svojim inženirjem omogočile dovolj konkurenčne prednosti, da so se lahko videli skozi fiasko, deloma tudi zaradi preventivne infrastrukture, ki so jo zgradili s tovrstnim dogodkom končnega sveta v mislih.
Nihče drug ni bil pripravljen, ko je udaril velik val. Sistem Netflix je bil dovolj močan, da se je lahko rešil sam. Zaključek? Ti kaotični mojstri bi se lahko tu kaj lotili.
Namerno izničenje tistih, ki vas imajo radi
"Chaos Engineering je disciplina eksperimentiranja na sistemu, da bi si ustvarili zaupanje v sposobnost sistema, da zdrži turbulentne pogoje v proizvodnji."
Načela manifesta Kaos
To je jedro inženirstva kaosa - v bistvu "vaja", ki je naložena sistemu med delovnim časom, ko so na voljo oči in roke za reševanje predstavljenega izziva. Sposobnost določenega sistema, da dopušča napake, je preizkušena, ko so izpostavljene kakršne koli ranljivosti.
V prvotnem kontekstu leta 2011 se je inženirstvo kaosa nanašalo na IT-oddelek Netflixa. Njihovo vodstvo je želelo preizkusiti, kako odporna so bila prizadevanja ekipe, ko je bil eden ali več njihovih računalnikov namerno onemogočen. Te napake so IT-ekipi omogočile, da je ugotovila ključne slabosti, preden so postale težava v celotnem sistemu in jih je bilo mogoče izkoristiti od zunaj.
Resnični neuspeh? Lahko je hudičevo drago, in to presega denarne posledice. Tudi obdobja izpadov brez resničnega izpada varnosti bodo verjetno povzročila veliko zamujenih priložnosti za zaslužek. Zakaj čakati, da vas nujno zaslepi?
Opice za norostjo
Nekatera podjetja bodo sprejela model "rdeče ekipe", ki bo ekipe razvijalcev nasprotoval svojim bratom med oddelki. Klasični primer, ki ga je vzpostavil Netflix, pa uporablja "simijansko vojsko". Ti roboti zanje umazano delajo pošteno in povsem naključno.
Noro? Za laika morda. Po besedah avtorja "Kaos opic" Antonia Garcie Martineza:
"Predstavljajte si opico, ki vstopa v" podatkovni center ", te" farme "strežnikov, ki gostijo vse ključne funkcije naših spletnih dejavnosti. Opica naključno pretrga kable in uniči naprave. Izziv je zasnovati informacijski sistem, za katerega so odgovorni, da bo lahko deloval kljub tem opicam, ki jih nihče nikoli ne ve, ko prispejo in kaj bodo uničili. "
Barvita analogija. Niso pa vsi Simijci kruti: zdravnik Monkey na primer spremlja delovanje sistema. Ko se Chaos Kong ustavi na obisku, pa so vse stave izključene; ta znak bo odstranil celotno območje razpoložljivosti AWS.
Sorodno: Kako se ocenjujejo varnostne ranljivosti?
Kaos inženiring in znanstvena metoda
Inženirstvo kaosa je dragocen vir sistemskega vpogleda za tiste, ki izvajajo eksperimente. Tu niso preizkušeni samo razvijalci; to je tudi sistem, kakršen obstaja avtonomno.
Preden opice opustijo na mizo, je treba za inženiring kaosa postaviti nekaj temeljev.
- Najprej morate ugotoviti, kaj menite, da je "stabilno", zdravo in funkcionalno stanje vašega sistema. To bo "nadzor", s katerim merite kakršne koli oprijemljive rezultate.
- Začnite razmišljati o tem, kako bo to stanje zaradi vdora orkestrirane odpovedi uravnoteženo. Načrtujte, da bo zlonamerna programska oprema vplivala samo na zaprto in nadzorovano področje vašega sistema.
- Predstavite "vsiljivca" in dovolite sistemu, da se odzove.
- Opazujte in razlagajte morebitne razlike med sistemom, kakršen obstaja zdaj, in vedenjem prej, ko je bil v homeostazi. Povečajte svoj "polmer eksplozije" udarca, dokler ne zaznate ranljivosti ali dosežete celotnega obsega, kar nastopi prej.
Ideja je v tem, da težje kot je moten funkcionalen sistem, več zaupanja imate v njegovo odpornost na spremembe in bombardiranje. Ta pristop prikazuje, kako bodo različni vidiki sistema medsebojno nadomestili okvare v primeru izpada.
"Ker nobena posamezna komponenta ne more zagotoviti 100-odstotne brezhibnosti (in tudi najdražja strojna oprema sčasoma odpove), moramo oblikujte arhitekturo v oblaku, kjer lahko posamezne komponente odpovedo, ne da bi to vplivalo na razpoložljivost celotnega sistem. "
The Netflix Spletni dnevnik
Včasih igranje s sistemom na ta način niti približno ne vpliva na izkušnjo strank. Druge čase bodo razkrite hude varnostne pomanjkljivosti. Zdaj, še posebej pri Netflixu, so v osnovo sistema vgrajene nepredvidljive razmere, ki naj bi prikrile sistemsko okvaro na uporabniški ravni.
Sorodno: Kaj je Zero-Day Exploit?
Ali je inženirstvo kaosa vredno?
Če želite razumeti zapleten sistem - ga motite
- Farhan Thawar (@fnthawar) 26. maj 2021
Kritiki bodo rekli, da nobena zaledna igra ni vredna vpliva na izkušnjo stranke, četudi le na kratko in slučajno. Tisti, ki so naklonjeni inženirskemu kaosu, pa bodo ovrgli dejstvo, da naj bi bili ti "načrtovani izpadi" veliko manjši od tistega, kar je AWS doživel leta 2015. Če vas majhen, načrtovan problem spravlja v položaj, da preprečite, da bi se veliko večji problem kdaj predstavil, je morda najboljši način za pripravo načrtovanje začetnega incidenta. V celoti bo prizadetih manj uporabnikov. Matematika se obnese.
Od človeškega konca zadeve je miselnost taka, da so zdaj ti inženirji, ki so imeli pred seboj strežnik in če se bodo s tem kompetentno ukvarjali, bodo v prihodnosti bolj pozorni in tudi intelektualno bolj opremljeni za ravnanje s tem, kar jim pride način. Močnejši sistem, ki ima za posledico, v mnogih primerih govori sam zase.
Silicijeva dolina: kamor sanje umrejo
Pravijo, da če želite, da je velik, morate biti pripravljeni ubiti svoje drage ali, v tem primeru, biti pripravljeni, da jih drugi ubijejo za vas. Ko je varnost v ospredju že od samega začetka razvoja, je veliko večja verjetnost, da bo vaša ekipa dobila nekaj neprehodnega in varnega za prosto uporabo strank.
Izkušnje z igrami na delovnem mestu navdušujejo možnosti za uspeh na tem področju; ko je končni rezultat kvaliteten, se vsi lahko povišajo. Moj Netflix deluje v redu, za kaos pa se mu zahvaljujemo samo nori.
Zakaj bi se zdaj, ko se že dobro spoznate na inženiring kaosa, ne razširili svojega znanja z drugo metodologijo za razvoj programske opreme? Agile je odličen sistem, ki ga lahko vključite za poenotenje delovne sile in izdelavo čiste in učinkovite kode.
Ne glede na to, ali se prijavljate na delovna mesta za programiranje ali želite učinkovitejši način dela, boste morali vedeti o Agile.
Preberite Naprej
- Programiranje
- Programiranje
Emma Garofalo je pisateljica, ki trenutno živi v Pittsburghu v Pensilvaniji. Če se ne trudi za pisalno mizo v želji po boljšem jutri, jo običajno najdemo za kamero ali v kuhinji.
Naročite se na naše novice
Pridružite se našemu glasilu za tehnične nasvete, preglede, brezplačne e-knjige in ekskluzivne ponudbe!
Še en korak…!
Potrdite svoj e-poštni naslov v e-poštnem sporočilu, ki smo vam ga pravkar poslali.