Programování

Co je Chaos Monkey? Vysvětlení chaosu

Chaos Monkey, který byl průkopníkem v halách Netflixu během jeho přechodu od distribuce DVD k budování distribuovaných cloudových systémů pro streamování videa, představil inženýrský princip, který osvojili organizace pro vývoj softwaru všech tvarů a velikostí: jmenovitě to, se mohou naučit zvyšovat jejich odolnost.

Podle původního blogového příspěvku Netflix k tomuto tématu, který v červenci 2011 publikovali Yury Izrailevsky, tehdejší ředitel cloudové a systémové infrastruktury, a Ariel Tseitlin, ředitel cloudových řešení streamovací společnosti, byl Chaos Monkey navržen tak, aby náhodně deaktivoval produkční instance na jeho infrastruktura Amazon Web Services, a tak se odhalily slabiny, které by mohli inženýři Netflixu odstranit vytvořením lepších mechanismů automatického obnovení.

Chytlavý název vycházel z „nápadu rozpoutat divokou opici se zbraní ve vašem datovém centru (nebo cloudové oblasti), aby náhodně sestřelil instance a žvýkal kabely - po celou dobu bez přerušení sloužíme našim zákazníkům,“ příspěvek na blogu státy.

V praxi by to vyžadovalo jednoduchou aplikaci „náhodně vybrat instanci z každého klastru a v určitém okamžiku během pracovní doby ji bez varování vypnout. Dokázalo by to každý pracovní den, “jak podrobně popsali bývalí inženýři Netflixu Nora Jones a Casey Rosenthal ve své komplexní knize o tomto tématu, Chaos Engineering, kterou vydala O’Reilly Media.

Myšlenka spočívá v tom, že když se inženýři dozví, kde jsou vaše nejslabší místa, mohou nastavit automatická spoušť pro boj s problémem a zachránit jim hovor uprostřed noci, pokud se něco pokazí. Chaos Monkey se od té doby vyvinul do celé řady principů chaosu pod hlavičkou chaosového inženýrství.

Chaos Monkey na Netflixu

Chaos Monkey vyrostl z inženýrských snah v Netflixu kolem roku 2010, kdy měl Greg Orzell, který nyní pracuje na GitHubu ve vlastnictví společnosti Microsoft, za úkol vybudovat odolnost do nové cloudové architektury společnosti.

"To, jak přemýšlím o Chaos Monkey, není zásadní strojírenský počin," řekl Orzell. "Hodnota, kterou přináší, je změna v myšlení, která byla v době, kdy jsme přešli od expedice DVD k streamování přes internet, zásadní."

V počátcích zavedli inženýři Netflixu celou řadu výpadků a problémů do systémů pomocí „opičí armády“ nástrojů s otevřeným zdrojovým kódem, z nichž každý počítal s určitými typy poruch, počínaje tím, že Chaos Monkey odstranil klastry AWS.

Původní armáda (nyní většinou vyřazená ve prospěch nových nástrojů) zahrnovala lajky Latency Monkey, které by vyvolaly umělá zpoždění komunikační vrstvy klient-server RESTful, a Doctor Monkey, které by využívaly kontroly stavu, které běží na každé instanci , stejně jako monitory dalších externích známek zdraví (např. zatížení CPU), aby detekovaly nezdravé instance a v případě potřeby je odstranily ze služby.

Chaos Kong posunul Chaos Monkey na další úroveň simulováním výpadku celé zóny dostupnosti AWS. „Je velmi vzácné, že oblast AWS nebude k dispozici, ale stává se to,“ popisuje blogový příspěvek Netflix z roku 2015.

"Pravidelným prováděním experimentů, které simulují regionální výpadek, jsme byli schopni včas identifikovat jakékoli systémové slabiny a opravit je," pokračuje příspěvek. "Když byl US-EAST-1 ve skutečnosti nedostupný, náš systém byl již dostatečně silný, aby zvládl převzetí služeb při selhání."

Jak uvedli Jones a Rosenthal ve své knize, nechat Chaos Konga uvolnit se na infrastruktuře byla „záležitost bílých prstů s„ válečnou místností “sestavenou za účelem sledování všech aspektů streamovací služby a trvala hodiny.“

O dva roky později, v červenci 2017, Netflix představil ChAP, Chaos Automation Platform, která „vyslýchá zaváděcí kanál pro službu specifikovanou uživatelem. Poté spustí experimentální a kontrolní klastry této služby a každému nasměruje malé množství provozu, “uvádí se v příspěvku na blogu.

Principy inženýrství chaosu

Základní postupy Chaos Monkey se rychle vyvinuly, s větším a větším nasazením přes Chaos Kong, na to, co bylo později formováno jako chaos engineering. Netflix vybudoval svůj vlastní formální tým inženýrů chaosu až v roce 2015. Tento tým vedl Bruce Wong, nyní technický ředitel společnosti Stitch Fix.

Principy chaosového inženýrství formálně shromáždili někteří původní autoři Chaos Monkey a definovali tuto praxi jako: „Disciplína experimentování na systému s cílem vybudovat důvěru ve schopnost systému odolat turbulentním podmínkám ve výrobě.“

V praxi to má formu čtyřstupňového procesu:

  1. Definování „ustáleného stavu“ systému pro nastavení základní linie pro normální chování.
  2. Předpokládáme, že tento ustálený stav bude pokračovat jak v kontrolní skupině, tak v experimentální skupině.
  3. Představte proměnné, které odrážejí skutečné události ve světě, jako jsou servery, které selhávají, selhání pevných disků nebo přerušená síťová připojení.
  4. Pokuste se vyvrátit hypotézu hledáním rozdílu mezi kontrolní a experimentální skupinou.

Pokud je ustálený stav obtížný narušit, máte robustní systém; pokud existuje slabost, pak máte co dělat a opravit.

„Za pět let od vydání„ The Principles “jsme viděli vývoj chaosového inženýrství, které splňuje nové výzvy v nových průmyslových odvětvích,“ poznamenávají Jones a Rosenthal. "Principy a základy této praxe se jistě budou stále vyvíjet, jak se adopce rozšiřuje prostřednictvím softwarového průmyslu a do nových vertikál."

Chaos Monkey s Chaos Monkey

Chcete-li spustit otevřenou verzi Chaos Monkey, budou vaše systémy muset splňovat určitou sadu předpokladů, jak je uvedeno na GitHubu.

Chaos Monkey nefunguje jako služba, takže budete muset nastavit úlohu cron, jak je uvedeno na stránce GitHub, která poté jednou v pracovní den zavolá Chaos Monkey a vytvoří plán ukončení.

Abyste mohli používat tuto verzi Chaos Monkey, musíte používat vlastní platformu Spinnaker od společnosti Netflix, otevřenou a nepřetržitou dodávku, která může omezit schopnost určitých organizací tuto metodu přijmout. Chaos Monkey také vyžaduje databázi kompatibilní s MySQL, verze 5.6 nebo novější.

Majitelé služeb nastavují své konfigurace Chaos Monkey prostřednictvím Spinnakeru. Chaos Monkey pracuje prostřednictvím Spinnakeru, aby získal informace o tom, jak jsou služby nasazeny, a ukončí instance - virtuální stroje nebo kontejnery - náhodně na frekvenci a harmonogramu, který určíte.

Implementace Chaos Monkey je samozřejmě pouze začátkem obtížného a složitého úkolu řešení problémů s odolností systému. Chaos Monkey pouze odhaluje slabiny systému; pak je na vývojových týmech nebo týmech systémového inženýrství, aby identifikovali jejich příčiny a přišli s řešením.

"Samotné nástroje nejsou drahé, ale investice, kterou musíte do reakce na tyto nástroje investovat, jsou," říká Orzell. Závazek k chaosovému inženýrství také vyžaduje přesun zdrojů od budování nových funkcí k posílení odolnosti. "Každý podnik je v jiném spektru daného spektra a každý se musí rozhodnout, kolik vytáčí nahoru nebo dolů v tomto prostoru," dodává.

Jones a Rosenthal říkají, že v počátcích inženýři Netflixu „obdrželi hodně zpětného tlaku zejména od finančních institucí“.

Navzdory tomu, že sázky byly pro banky vyšší, stále utrpěly výpadky, takže pečlivým zavedením „proaktivní strategie, jako je inženýrství chaosu, aby bylo možné porozumět rizikům, aby se zabránilo velkým nekontrolovaným výsledkům,“ mnoho z těchto organizací změnilo své myšlení, přičemž kapitál One osvojitel, jak je podrobně uvedeno v knize.

Zdroje inženýrství chaosu

Opět platí, že nejnovější a definitivní kniha na toto téma je Chaos Engineering od bývalých inženýrů Netflixu Nory Jonesové a Casey Rosenthalové, publikovaných v dubnu 2020, které navazují na spoustu práce, kterou tito autoři a další sestavili v knize z roku 2017 Chaos Engineering. Praktičtější přehled najdete v Russ Miles's Učení inženýrství chaosu.

Netflix poskytuje na GitHubu velké množství zdrojů k tomuto tématu, včetně výukového programu, spousty dokumentace, počítadla chyb, kontroly výpadků a nástrojů dešifrování.

Gremlin - poskytovatel komerčních nástrojů pro provádění experimentů inženýrství chaosu - nabízí vlastní komplexní sadu zdrojů, které jsou k dispozici zdarma online a ve formátu PDF. Společnost také podporuje různé snahy komunity, včetně Chaos Conf a kanálu Slack.

O’Reilly má také spoustu zdrojů, včetně tohoto praktického seznamu skladeb s knihami a videi na toto téma.