Krása v přestávkách: Vytváření odolných systémů pomocí inženýrství Chaos

Autor: Laura McKinney
Datum Vytvoření: 2 Duben 2021
Datum Aktualizace: 26 Červen 2024
Anonim
Krása v přestávkách: Vytváření odolných systémů pomocí inženýrství Chaos - Technologie
Krása v přestávkách: Vytváření odolných systémů pomocí inženýrství Chaos - Technologie

Obsah


Zdroj: pressureUA / iStockphoto

Odnést:

Moderní systémy musí být schopny zvládnout chaos, aby se zabránilo prostojům. Proto je důležitější než kdy jindy důkladné testování systémů a zajištění jejich odolnosti.

Navzdory našemu největšímu úsilí se jim vyhnout, IT incidenty jsou nevyhnutelnou součástí práce - a snaha udržet si náskok před prostorovými dopady na podnikání je jen složitější. Systémy jsou dnes pevně spojené a stále složitější a s pohyblivějšími částmi přicházejí další příležitosti, aby se věci pokazily.

To je jeden z důvodů, proč se stále více organizací obrací na mikroprocesy pro větší dostupnost služeb a lepší odolnost vůči selhání. Ale i když jsou to skvělé prostory pro rozbíjení monolitických aplikací, mohou také potenciálně zvyšovat riziko selhání - pokud nejsou navrženy výslovně s ohledem na odolnost.


Příprava na selhání

Vzhledem k inherentně chaotické povaze distribuovaných systémů by služby neměly být vyvíjeny nejen k předvídání selhání, ale také k automatickému zotavení v případě selhání. To znamená pravidelné spouštění selhání, aby se zajistilo, že vaše systémy zvládnou chaos, aniž by narušovaly služby koncovým zákazníkům. K dosažení tohoto cíle potřebujete schopnost simulovat provoz podobný provozu v testovacích prostředích.

Je to samozřejmě dobrý nápad otestovat odolnost před změnami, které se projeví ve výrobě. Pokud tak neučiníte, nebudete moci ověřit, zda vaše služby podporují průměrné i maximální zatížení. Ve skutečnosti je nejbezpečnější sázkou zajištění toho, že váš produkt zvládne až dvojnásobek maximální částky, aniž by bylo nutné zvyšovat měřítko.


Pokud jde o testování odolnosti, neměly by být správné nástroje příliš znepokojeny tím, jak jsou žádosti vyřizovány, ale že mají nakonec správný dopad. Nezapomeňte, že za určitých podmínek může vstupní služba selhat při předání žádosti zbytku systému, ale ohlásit chybu. Neriskujte problémy létající pod radarem monitorování tím, že se ujistíte, že ke skutečnému ověření dochází. (Více viz Technické selhání: Můžeme s nimi žít?)

Další kroky

Po pochopení toho, jak se služby chovají při zatížení, je čas začít zavádět události selhání. Stejně jako u všech testů softwaru je nejlepší mít k dispozici automatizované nástroje, které vám umožní snadno a rychle reprodukovat scénáře, takže můžete koordinovat složité události, které mají dopad na různé technologie infrastruktury. Kromě možnosti ověřovat opravy a změny služeb vám to umožňuje spouštění scénářů náhodných selhání v jakémkoli prostředí a podle plánu.

Smysluplné události selhání do značné míry závisí na rozvržení vašich služeb a můžete je formulovat kladením konkrétních otázek, které jsou pro vás relevantní. Jaký je například dopad na lidi, kteří používají front-end, když se databáze na určitou dobu stane nedostupnou? Mohou tito uživatelé stále procházet webové uživatelské rozhraní? Mohou stále vydávat aktualizace svých informací a budou tyto aktualizace zpracovány správně, jakmile bude databáze opět dosažitelná?

Pokud provozujete více mikroprocesů, můžete se zeptat, zda dojde ke globálnímu výpadku v případě havárie jednotlivých služeb. Nebo pokud máte mechanismus řazení do vyrovnávací paměti pro komunikaci mezi službami, co se stane, když přestane fungovat služba pro spotřebitele (nebo služby)? Budou uživatelé stále moci pracovat s vaší aplikací? A vzhledem k průměrnému zatížení, jak dlouho máte před přetečením front a začnete ztrácet?

Žádné chyby, žádný stres - Váš průvodce krok za krokem k vytváření softwaru pro změnu života, aniž by došlo ke zničení vašeho života

Nemůžete zlepšit své programovací schopnosti, když se nikdo nestará o kvalitu softwaru.

Až nadefinujete několik klíčových otázek o své infrastruktuře, můžete začít se seznamem různých způsobů, jak tyto poruchy simulovat. Stačí zastavit konkrétní službu nebo databázový server. Možná budete chtít zablokovat hlavní vlákno služby a simulovat tak mrtvý zámek, zatímco jeho kontejner stále reaguje a běží. Můžete se rozhodnout zavést ve své síti pravidla pro blokování provozu mezi konkrétními službami. V prostředí Linuxu můžete pomocí nástrojů jako „tc“ napodobit síťové situace, jako je vysoká latence, vyřazené, poškozené nebo duplikované pakety. (Může být důležité zapojit uživatele do testování. Přečtěte si více ve 4 důvodech, proč se koncoví uživatelé musí účastnit testování před UAT.)

Učení a zlepšování pomocí cvičení

Jedním z nejcennějších aspektů vytváření scénářů selhání je to, že mohou odhalit všechny potenciální způsoby, které systém může selhat, a tím vyřezat cestu k samoléčivé logice. Váš tým projde kroky k ručnímu obnovení služeb - mimochodem skvělá cvičení pro potvrzení, že jsou schopni to udělat v rámci SLA. Automatizace tohoto procesu zotavení může být zpracována, ale mezitím můžete klidně vědět, že váš tým prošel procesem opětovného nasazení služeb. Vytvořením náhodných a pravidelných scénářů selhání a nezveřejněním úplných podrobností o běhu můžete do vrtáku zahrnout také objev a diagnostiku - což je konec konců kritická součást SLA.

Inženýrství chaosu ve svém jádru bere složitost systému jako daný, testuje jej simulací nových a šílených podmínek a sleduje, jak systém reaguje. Jedná se o týmy datového inženýrství, které musí systém přepracovat a znovu nakonfigurovat, aby bylo dosaženo vyšší odolnosti. Existuje tolik příležitostí učit se nové a užitečné věci. Můžete například najít případy, kdy služby nezískají aktualizace, když se změní downstream služby, nebo oblasti, kde sledování zcela chybí. Neexistuje nedostatek zajímavých způsobů, jak zvýšit odolnost a odolnost vašeho produktu!