Aplikace Chaos Monkey (Údržbář chaosu) má za úkol procházet cloudovou infrastrukturou a ukončovat instance spuštěné a pracující bez problémů v rámci cloudu. Tento postup se může zdát poněkud šílený, vypracoval ho ale provozovatel cloudových služeb Netflix na základě svých bohatých zkušeností. Protože je pronájem cloudové infrastruktury základním kamenem podnikání společnosti Netflix, je třeba ho průběžně udržovat v provozuschopném stavu. Tento přístup umožňuje otestovat, nakolik jsou aplikace schopné vyrovnat se s případnými problémy v infrastruktuře cloudu.
„Pokud se vaše aplikace nedokáže vyrovnat s výpadkem instance, chcete na to být upozornění ve 3 ráno, nebo raději po ránu v pracovní době?“ ptají se specialista Netflixu Cory Bennett s manažerem Arielem Tseitlinem na technicky zaměřeném blogu jejich společnosti. K testování aplikací právě v takových v extrémních situacích slouží Chaos Monkey.
V současnosti je Chaos Monkey provozován v rámci cloudu AWS. Vyhledává automaticky škálovatelné skupiny (ASG) a ukončuje instance virtuálních strojů. Vývojáři vysvětlili, že nyní, po otevření jejího zdrojového kódu, může být aplikace upravena tak, aby pracovala i u jiných poskytovatelů cloudu, které využívají seskupování instancí.
Kód byl zveřejněn na githubu s licencí Apache Software jako součást sady nástrojů společnosti Netflix pro testování a správu cloudu, která se jmenuje Simian Army (Opičí armáda). Další opici v týmu představuje Conformity Monkey. Ta vyhledává instance, které nedodržují zásady pro práci v cloudu, a ukončuje je. Nástroj Latency Monkey zase způsobuje umělá zdržení v komunikační vrstvě RESTful klient-server, suimuluje tak zhoršení jejich kvality a zjišťuje, jestli se s tímto problémem dokáže služba náležitě vypořádat. Nejničivěji působí Chaos Gorilla, která simuluje výpadek celé jedné zóny dostupnosti Amazonu.
Podle Bennetta s Tseitlinem se jedná o první opici z celé armády, jejíž zdrojový kód byl uvolněn. „Dalším na řadě bude pravděpodobně Janitor Monkey, která pomáhá udržovat v prostředí pořádek a optimalizovat tak náklady,“ napsali dále na blogu.