Programovanie

Čo je to Chaos Monkey? Bolo vysvetlené inžinierstvo chaosu

Chaos Monkey, priekopník v sieňach Netflixu počas svojho prechodu od distribúcie DVD k budovaniu distribuovaných cloudových systémov na streamovanie videa, predstavil technický princíp, ktorý prijali organizácie pre vývoj softvéru všetkých tvarov a veľkostí: konkrétne to, že zámerným narušením systémov sa môžu naučiť, aby boli odolnejšie.

Podľa pôvodného blogového príspevku Netflix k tejto téme, ktorý v júli 2011 zverejnili Yury Izrailevsky, vtedajší riaditeľ cloudovej a systémovej infraštruktúry, a Ariel Tseitlin, riaditeľ cloudových riešení v streamovacej spoločnosti, bol Chaos Monkey navrhnutý tak, aby náhodne deaktivoval produkčné inštancie na jeho infraštruktúru Amazon Web Services, a tak odhalil slabiny, ktoré by technici Netflixu mohli odstrániť vybudovaním lepších mechanizmov automatického obnovenia.

Chytľavý názov vyšiel z „myšlienky rozpútať divokú opicu so zbraňou vo vašom dátovom centre (alebo cloudovej oblasti), aby náhodne zostreľovala inštancie a žuvala káble - po celú dobu nepretržite slúžime našim zákazníkom,“ príspevok na blogu uvádza.

V praxi by to vyžadovalo jednoduchú aplikáciu „náhodný výber inštancie z každého klastra a v určitom okamihu počas pracovnej doby ju bez varovania vypnite. Urobilo by to každý pracovný deň, “ako podrobne opísali bývalí inžinieri Netflixu Nora Jones a Casey Rosenthal vo svojej komplexnej knihe na túto tému, Chaos Engineering, ktorú vydala O’Reilly Media.

Ide o to, že keď sa inžinieri dozvedia, kde sú vaše najslabšie miesta, môžu nastaviť automatické spúšťače na boj s problémom a ušetriť im hovor uprostred noci, ak by sa niečo pokazilo. Z Chaos Monkey sa odvtedy vyvinula celá rada princípov chaosu pod hlavičkou inžinierstva chaosu.

Chaos Monkey na Netflixe

Chaos Monkey vyrástol z inžinierskych snáh v Netflixe okolo roku 2010, keď bol Greg Orzell, ktorý teraz pracuje v spoločnosti GitHub vlastnenej spoločnosťou Microsoft, poverený vybudovaním odolnosti do novej cloudovej architektúry spoločnosti.

"To, čo si myslím o Chaos Monkey, nie je zásadný strojársky počin," povedal Orzell. „Hodnota, ktorú prináša, je zmena myslenia, ktorá bola v čase, keď sme prešli od prepravy DVD k streamovaniu cez internet, zásadná.“

V prvých dňoch zaviedli inžinieri Netflixu celú škálu výpadkov a problémov do systémov pomocou „opičej armády“ nástrojov otvoreného zdroja, z ktorých každý zodpovedal za určité typy zlyhaní, počnúc tým, ako Chaos Monkey vyradil klastre AWS.

Pôvodná armáda (v súčasnosti väčšinou v dôchodku v prospech nových nástrojov) zahŕňala napríklad Latency Monkey, ktoré by vyvolalo umelé oneskorenie komunikačnej vrstvy RESTful medzi klientom a serverom, a Doctor Monkey, ktoré by využívali kontroly stavu, ktoré prebiehajú v jednotlivých inštanciách. , ako aj monitory ďalších vonkajších znakov zdravia (napr. zaťaženie procesora), aby zistili nezdravé inštancie a v prípade potreby ich odstránili zo služby.

Chaos Kong posunul Chaos Monkey na vyššiu úroveň simuláciou výpadku celej zóny dostupnosti AWS. „Je veľmi zriedkavé, že oblasť AWS bude nedostupná, ale stáva sa to,“ uvádza sa v blogovom príspevku Netflix z roku 2015.

„Pravidelným uskutočňovaním experimentov, ktoré simulujú regionálny výpadok, sme boli schopní včas identifikovať akékoľvek systémové slabiny a opraviť ich,“ pokračuje príspevok. "Keď bol server US-EAST-1 skutočne nedostupný, náš systém bol už dostatočne silný na to, aby zvládol zlyhanie prevádzky."

Ako naznačujú Jones a Rosenthal vo svojej knihe, nechať Chaos Konga pustiť sa na infraštruktúru bola „aféra s„ vojnovou miestnosťou “zhromaždenou za účelom monitorovania všetkých aspektov streamovacej služby, ktorá trvala hodiny.“

O dva roky neskôr, v júli 2017, Netflix predstavil ChAP, platformu automatizácie chaosu, ktorá „vyšetruje nasadenie pre službu určenú používateľom. Potom spustí experimentálne a kontrolné klastre tejto služby a ku každej nasmeruje malý prenos, “uvádza sa v blogovom príspevku.

Princípy inžinierstva chaosu

Základné postupy Chaos Monkey sa rýchlo vyvinuli, s čoraz väčším nasadením cez Chaos Kong, až sa neskôr formovalo ako inžinierstvo chaosu. Netflix vybudoval svoj vlastný formálny tím inžinierstva chaosu až v roku 2015. Tento tím viedol Bruce Wong, ktorý je teraz technickým riaditeľom spoločnosti Stitch Fix.

Princípy chaosového inžinierstva formálne zhromaždili niektorí pôvodní autori Chaos Monkey a definovali túto prax ako: „Disciplína experimentovania na systéme s cieľom vybudovať si dôveru v schopnosť systému odolávať turbulentným podmienkam vo výrobe.“

V praxi to má formu štvorstupňového procesu:

  1. Definovanie „ustáleného stavu“ systému na nastavenie základnej čiary pre normálne správanie.
  2. Predpokladá sa, že tento ustálený stav bude pokračovať tak v kontrolnej, ako aj v experimentálnej skupine.
  3. Predstavte premenné, ktoré odrážajú skutočné udalosti, ako napríklad zlyhanie serverov, zlyhanie pevných diskov alebo prerušenie sieťových pripojení.
  4. Pokúste sa vyvrátiť hypotézu hľadaním rozdielov medzi kontrolnou a experimentálnou skupinou.

Ak je stabilný stav ťažké narušiť, máte robustný systém; ak je slabina, tak musis nieco ist napravit.

„Za päť rokov od zverejnenia dokumentu„ The Principles “sme videli, ako sa inžinierstvo chaosu vyvíja, aby zodpovedalo novým výzvam v nových priemyselných odvetviach,“ poznamenávajú Jones a Rosenthal. "Princípy a základy tejto praxe sa budú určite naďalej vyvíjať, keď sa adopcia rozšíri prostredníctvom softvérového priemyslu do nových vertikál."

Chaos Monkey s Chaos Monkey

Ak chcete spustiť otvorenú verziu Chaos Monkey, vaše systémy budú musieť spĺňať určitý súbor predpokladov, ako je uvedené na GitHub.

Chaos Monkey nefunguje ako služba, takže budete musieť nastaviť úlohu cron, ako je uvedené na stránke GitHub, ktorá potom zavolá Chaos Monkey raz za týždeň, aby vytvorila plán ukončenia.

Ak chcete používať túto verziu Chaos Monkey, musíte používať vlastnú platformu Netflix s otvoreným zdrojovým kódom na nepretržité doručovanie Spinnaker, ktorá môže obmedziť schopnosť určitých organizácií prijať túto metódu. Chaos Monkey tiež vyžaduje databázu kompatibilnú s MySQL, verziu 5.6 alebo novšiu.

Majitelia služieb nastavujú svoje konfigurácie Chaos Monkey cez Spinnaker. Chaos Monkey pracuje prostredníctvom programu Spinnaker, aby získal informácie o tom, ako sú služby nasadené, a náhodne ukončuje inštancie - virtuálne stroje alebo kontajnery na vami určenú frekvenciu a plán.

Implementácia Chaos Monkey je samozrejme iba začiatkom zložitej a zložitej úlohy riešenia problémov s odolnosťou systému. Chaos Monkey iba odhaľuje slabiny systému; potom je na vývojových tímoch alebo tímoch systémového inžinierstva, aby identifikovali ich príčiny a prišli s riešeniami.

„Samotné obrábanie nie je drahé, ale investícia, ktorú musíte vynaložiť, aby ste na neho zareagovali, sú,“ ako hovorí Orzell. Zaviazanie sa k chaosovému inžinierstvu si tiež vyžaduje presun zdrojov od budovania nových funkcií k zvyšovaniu odolnosti. „Každý podnik sa nachádza v inom bode tohto spektra a každý z nich sa musí rozhodnúť, koľko vytáčania nahor alebo nadol v danom priestore vykoná,“ dodáva.

Jones a Rosenthal tvrdia, že v prvých dňoch sa inžinierom Netflixu „dostalo najmä z finančných inštitúcií veľa tlaku“.

Napriek tomu, že v stávkach bolo pre banky viac, stále utrpeli výpadky, preto starostlivou implementáciou „proaktívnej stratégie ako inžinierstvo chaosu porozumeli rizikám s cieľom zabrániť veľkým a nekontrolovaným výsledkom“, mnohé z týchto organizácií zmenili svoje zmýšľanie a spoločnosť Capital One čoskoro osvojiteľ, ako je podrobne uvedené v knihe.

Zdroje inžinierstva chaosu

Opäť platí, že posledná a definitívna kniha na túto tému je Chaos Engineering od bývalých inžinierov Netflixu Nory Jonesovej a Casey Rosenthala, publikovaných v apríli 2020, ktoré nadväzujú na množstvo práce, ktorú títo autori a ďalší zostavili v knihe z roku 2017 Chaos Engineering. Praktickejší prehľad nájdete v dokumente Russ Miles’s Učenie inžinierstva chaosu.

Netflix poskytuje na GitHub množstvo zdrojov týkajúcich sa tejto témy vrátane výučby, množstva dokumentácie, počítadla chýb, kontroly výpadkov a nástrojov na dešifrovanie.

Gremlin - poskytovateľ komerčných nástrojov na uskutočňovanie experimentov inžinierstva chaosu - ponúka vlastnú komplexnú sadu zdrojov, ktoré sú k dispozícii zadarmo online a vo formáte PDF. Spoločnosť tiež podporuje rôzne snahy komunity, vrátane Chaos Conf a kanálu Slack.

O’Reilly má tiež množstvo zdrojov, vrátane tohto praktického zoznamu skladieb s knihami a videami na túto tému.

$config[zx-auto] not found$config[zx-overlay] not found