Tech je všude. V závislosti na tom, jak vysoký je váš obor, může selhání technologického produktu nebo systému spadnout kdekoli mezi zcela zanedbatelným do konce životnosti, jak ji znáte.
Nemocniční sálové počítače? Něco důležitého. Odolnost aplikace Candy Crush na vašem mobilním telefonu? Pravděpodobně o něco níže na celkovém seznamu priorit.
V distribuovaném systému sítí je selhání nevyhnutelné. Prevence katastrofy začíná pevným a vodotěsným bezpečnostním designem. Kromě toho, co jiného lze udělat?
Co je Netflix Chaos Engineering?
20. září 2015.
Na západní frontě ticho, když najednou bez jediného slova selže několik důležitých podnikových serverů Amazon Web Services.
Mnoho velkých společností nebylo schopno zajistit svým zákazníkům několik hodin. Netflix byl však během několika minut zpět na nohou. Jak? Firemní firemní kultura Netflixu se vyvinula tak, aby zahrnovala mnoho postupů „vyvolávajících selhání“ implementovaných v reálném čase s cílem připravit systémy i inženýry na katastrofu.
Vedení společnosti záměrně provádělo simulované výpadky serverů v obsažených částech systému za účelem studia a přípravy na takové události. To jim pomohlo identifikovat díry v systému a vybudovat nadbytečnost, která umožnila nepřetržitý provoz služby, a to i v případě závažné poruchy, jako je ta, která byla zmíněna výše.
Tato úmyslná cvičení „chaosového inženýrství“ poskytla jejich technikům dostatek konkurenční výhody, aby se viděli prostřednictvím fiaska, částečně díky preventivní infrastruktuře, kterou vybudovali s tímto druhem události soudného dne na mysli.
Když zasáhla velká vlna, nikdo jiný nebyl připraven. Systém Netflix byl dostatečně silný, aby si poradil sám s sebou. Závěr? Tito chaotičtí duchovní duchové tady možná něco mají.
Záměrně zničit ty, kteří vás milují
„Chaos Engineering je 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ě.“
Principy manifestu chaosu
Toto je jádrem chaosového inženýrství - v podstatě jde o „požární cvičení“ uvalené na systém během pracovní doby, kdy jsou k dispozici oči a ruce k řešení předložené výzvy. Schopnost daného systému tolerovat selhání je otestována, protože jsou odhaleny jakékoli chyby zabezpečení.
V původním kontextu roku 2011 se chaosové inženýrství týkalo IT oddělení Netflixu. Jejich vedení chtělo vyzkoušet, jak odolné je úsilí týmu, když byl jeden nebo více jejich počítačů úmyslně deaktivováno. Tyto překážky umožnily týmu IT identifikovat klíčové slabiny dříve, než se staly celosystémovými problémy a mohly být využity zvenčí.
Skutečné selhání? Může to být pekelné, a to jde nad rámec peněžních důsledků. Dokonce i období odstávky bez skutečného výpadku zabezpečení pravděpodobně povedou ke spoustě promarněných příležitostí k výdělku. Proč čekat na mimořádnou událost, která vás oslepí?
Opice za šílenstvím
Některé společnosti přijmou model „červeného týmu“, který staví týmy vývojářů proti svým bratrům napříč resortními liniemi. Klasický příklad, který Netflix uvedl, však využívá „opičí armády“. Tito roboti pro ně špinavou práci vykonávají spravedlivě a úplně náhodně.
Šílený? Možná laikovi. Slovy autora „Chaos Monkeys“ Antonia Garcíi Martíneze:
„Představte si, že opice vstupuje do„ datového centra “, těchto„ farem “serverů, které hostují všechny důležité funkce našich online aktivit. Opice náhodně trhá kabely a ničí zařízení. Úkolem je navrhnout informační systém, za který jsou odpovědní, aby mohl fungovat i přes tyto opice, o nichž nikdo nikdy neví, kdy dorazí a co zničí. “
Barevná analogie. Ne všichni Simians jsou však krutí: Doctor Monkey například sleduje výkon systému. Když se však Chaos Kong zastaví na návštěvě, jsou všechny sázky vypnuté; tento znak zruší celou zónu dostupnosti AWS.
Příbuzný: Jak se hodnotí chyby zabezpečení?
Chaos Engineering and the Scientific Method
Technika chaosu slouží jako cenný zdroj systémového vhledu pro ty, kdo provádějí experimenty. Testují se zde nejen vývojáři; je to systém, protože také existuje autonomně.
Než vysypete hlaveň opic na stůl, vyžaduje inženýrství chaosu trochu zeminy.
- Nejprve musíte identifikovat, co považujete za „stabilní“, zdravý a funkční stav vašeho systému. Toto bude „kontrola“, proti které budete měřit jakékoli hmatatelné výsledky.
- Začněte přemýšlet o tom, jak bude tento stav vyveden z rovnováhy vniknutím orchestrovaného selhání. Naplánujte si, že váš malware bude mít vliv pouze na omezenou a kontrolovatelnou oblast vašeho systému.
- Představte „vetřelce“ a umožněte systému reagovat.
- Pozorujte a interpretujte jakékoli rozdíly mezi systémem, jak nyní existuje, a tím, jak se choval dříve, zatímco byl v homeostáze. Zvyšte svůj „poloměr výbuchu“ nárazu, dokud nezjistíte zranitelnost nebo nedosáhnete plného rozsahu, podle toho, co nastane dříve.
Myšlenka je, že čím obtížnější je narušit funkční systém, tím větší důvěru můžete mít v jeho odolnost vůči změnám a bombardování. Tento přístup ukazuje, jak různé aspekty systému budou navzájem kompenzovat selhání ostatních v případě výpadku.
„Protože žádná jednotlivá součást nemůže zaručit 100% provozuschopnost (a nakonec selže i ten nejdražší hardware), musíme navrhnout cloudovou architekturu, kde jednotlivé komponenty mohou selhat, aniž by to ovlivnilo dostupnost celé Systém."
The Netflix Blog
Někdy si pohrávání se systémem tímto způsobem ani nepřiblíží dopad na zákaznickou zkušenost. Jindy budou odhaleny závažné bezpečnostní chyby. Nyní, zejména u Netflixu, je do základu systému zabudována pohotovostní služba určená k maskování selhání systému na uživatelské úrovni.
Příbuzný: Co je Zero-Day Exploit?
Stojí Chaos Engineering za to?
Pokud chcete porozumět složitému systému - narušte ho
- Farhan Thawar (@fnthawar) 26. května 2021
Kritici říkají, že žádná back-end hra nestojí za ovlivnění zkušenosti zákazníka, i když jen krátce a náhodně. Ti, kteří podporují inženýrství chaosu, však vyvrátí skutečnost, že tyto „plánované odstávky“ mají být mnohem menší, než jaké AWS zažila v roce 2015. Pokud vás malý, plánovaný problém dostane do pozice, aby se zabránilo tomu, že se mnohem větší problém objeví, plánování nejlepší události může být nejlepší způsob, jak se připravit. Celkově bude ovlivněno méně uživatelů. Matematika funguje.
Z lidského hlediska je mentalita v tom, že nyní tito inženýři, kteří měli před sebou havárii serveru, a kompetentní s tím budou v budoucnu ostražitější a také intelektuálně vybavenější, aby zvládli vše, co přijde způsob. Výsledný silnější systém v mnoha případech mluví sám za sebe.
Silicon Valley: Where Dreams Go to Die
Říkají, že pokud to chcete zvětšit, musíte být ochotni zabít své miláčky, nebo v tomto případě být ochotni nechat ostatní zabít za vás. Pokud je bezpečnost v popředí od samého začátku vývoje, je mnohem pravděpodobnější, že váš tým skončí s něčím neproniknutelným a bezpečným, aby jej zákazníci mohli volně používat.
Díky hraní na pracovišti je vyhlídka na úspěch v této oblasti vzrušující; když je konečným výsledkem kvalita, všichni se dostanou o úroveň výš. Můj Netflix běží v pohodě a za chaosem máme jen šílence, kteří za to děkují.
Nyní, když máte pevné pochopení chaosového inženýrství, proč si nerozšířit své znalosti o další metodiku vývoje softwaru? Agile je vynikající systém, který můžete začlenit, abyste sjednotili pracovní sílu a vytvořili čistý a efektivní kód.
Ať už se ucházíte o programovací pozice, nebo chcete efektivnější způsob práce, budete o Agile vědět.
Přečtěte si další
- Programování
- Programování
Emma Garofalo je spisovatelka, která v současné době sídlí v Pittsburghu v Pensylvánii. Když se nedrží u stolu, aby si přála lepší zítřek, obvykle ji najdete za kamerou nebo v kuchyni.
Přihlaste se k odběru našeho zpravodaje
Připojte se k našemu zpravodaji s technickými tipy, recenzemi, bezplatnými elektronickými knihami a exkluzivními nabídkami!
Ještě jeden krok…!
V e-mailu, který jsme vám právě poslali, potvrďte svou e-mailovou adresu.