Použijte nástroje Chaos Engineering Tools ke kontrole spolehlivosti výroby

Pojďme zjistit, jak můžete udržet svou produkci spolehlivou s pomocí nástrojů Chaos Engineering.

Chaos engineering je disciplína, ve které experimentujete se svým systémem nebo aplikací, abyste odhalili jejich slabiny a selhání kapacity. To je něco, o čem jste si nemysleli, že by se mohlo stát při jeho vytváření. Takže byste úmyslně způsobili některá selhání ve vašem systému, abyste odhalili jeho slabiny, abyste provedli opravy a váš systém a vaše aplikace byly odolnější.

Mnoho populárních organizací jako Netflix, LinkedIn a Facebook provádí chaosové inženýrství, aby lépe porozumělo své architektuře mikroslužeb a distribuovaným systémům. Pomáhá najít nové problémy dříve než skutečné stížnosti uživatelů a přijmout nezbytná opatření k jejich nápravě. Takto mohou tyto organizace sloužit milionům uživatelů, zvýšit jejich produktivitu a ušetřit miliony dolarů 🤑.

Výhody Chaos Engineering:

  • Kontrolujte ztráty na tržbách hledáním kritických problémů
  • Snížení selhání systému nebo aplikace
  • Lepší uživatelská zkušenost s menším rušením a vysokou dostupností služeb
  • Pomůže vám to dozvědět se o systému a získat důvěru.

Jak moc jste si jisti spolehlivostí vaší výroby? Je skutečně odolný proti katastrofě?

Pojďme to zjistit pomocí následujících populárních nástrojů pro testování chaosu.

Síť chaosu

Síť chaosu je řešení pro správu chaosu, které vkládá chyby do každé vrstvy systému Kubernetes. To zahrnuje moduly, síť, systémové I/O a jádro. Chaos Mesh dokáže automaticky zabíjet moduly Kubernetes a simulovat latence. Může narušit komunikaci mezi moduly a simulovat chyby čtení/zápisu. Může naplánovat pravidla pro experimenty a definovat jejich rozsah. Tyto experimenty jsou specifikovány pomocí souborů YAML.

Chaos Mesh má řídicí panel pro zobrazení analýzy experimentů. Běží na Kubernetes a podporuje většinu cloudové platformy. Je to open-source a nedávno byl přijat jako projekt sandbox CNCF. Pomocí principů chaosového inženýrství můžete do svého pracovního postupu DevOps přidat Chaos Mesh a vytvářet odolné aplikace.

Vlastnosti Chaos Engineering:

  • Snadné nasazení na clusterech Kubernetes bez jakýchkoliv úprav v logice nasazení
  • Pro nasazení nejsou vyžadovány žádné jedinečné závislosti
  • Definuje objekty chaosu pomocí CustomResourceDefinitions (CRD)
  • Poskytuje řídicí panel pro sledování všech experimentů
  Jak nakonfigurovat nastavení pošty pro iPhone a iPad

Chaos ToolKit je open-source a jednoduchý nástroj pro Chaos Engineering Experiment Automation.

Chaos ToolKit integrujete se svým systémem pomocí sady ovladačů nebo pluginů, které podporuje AWS, Google Cloud, Slack, Prometheus atd.

Vlastnosti Chaos ToolKit:

  • Poskytuje deklarativní Open API pro vytváření experimentů s chaosem nezávislých na dodavateli nebo technologii
  • Lze snadno zabudovat do potrubí CICD pro automatizaci
  • Poskytuje komerční a podnikovou podporu také prostřednictvím ChaosIQ

ChaosKube

Jak můžete hádat podle názvu, je to pro Kubernetes.

Chaoskube je open-source nástroj pro chaos, který pravidelně zabíjí náhodné moduly v clusteru Kubernetes. Pomůže vám pochopit, jak bude váš systém reagovat, když modul selže. Ve výchozím nastavení zabíjí modul v libovolném jmenném prostoru každých 10 minut. Můžete filtrovat cílové moduly v Chaoskube pomocí jmenných prostorů, štítků, anotací atd. Lze jej snadno nainstalovat pomocí Chaoskube.

Chaos Monkey

Chaos Monkey je nástroj používaný ke kontrole odolnosti cloudových systémů záměrným vytvářením poruch, aby tyto systémy pochopily jejich reakci. Netflix jej vytvořil, aby otestoval odolnost a obnovitelnost infrastruktury AWS. Byla pojmenována Chaos Monkey, protože vytváří destrukci jako divoká a ozbrojená opice, aby otestovala selhání.

Také to byla Chaos Monkey, která dala vzniknout nové inženýrské praxi Chaos Engineering. Byl vytvořen na principu, že je lepší selhat opakovaně, aby nedošlo k náhlému výraznému selhání.

Vlastnosti Chaos Monkey:

  • Pomáhá vám připravit se na náhodná selhání instance.
  • Podporuje redundanci pro neočekávané poruchy
  • Používá Spinnaker k umožnění kompatibility mezi cloudy
  • Poskytuje konfigurovatelný plán pro simulaci poruch
  • Integrovaný s guvernér přidat jakékoli nové závislosti do opice chaosu

Simmy

Simmy je nástroj pro chaos vkládání chyb, který se integruje s projektem odolnosti Polly pro .NET. Umožňuje vám vytvářet politiky vkládání chaosu prostřednictvím Polly, kde spouštíte své kódy. Nabízí různé zásady, jako je politika výjimek pro vložení výjimek do systému, politika chování pro zavedení jakéhokoli nového chování atd. Tyto zásady jsou navrženy tak, aby vkládaly chování náhodně.

Vlastnosti Simmy:

  • Poskytuje zásady opice nebo zásady chaosu, které vnesou chaos
  • Snadné testování jakýchkoli selhání závislostí
  • Pomáhá rychle se vrátit k pracovnímu modelu a řídí rádius výbuchu.
  • Je připravena na produkční stupeň.
  • Může také definovat poruchy na základě vnějších faktorů (například poruchy způsobené globální konfigurací)
  Jak najít logo pro web

Pystol

Pystol je nástroj, který se používá pro vstřikování chybných injekcí v cloudových nativních prostředích. Sleduje dění v ETCD prostřednictvím operátorů Kubernetes. Když je provedena akce vložení poruchy, operátoři vytvoří moduly a spustí některé kolekce Ansible. Vývojáři tedy nemusí psát své vlastní akce, které mají provádět.

Pystol poskytuje hotové akce pro testování systému. Přesto, pokud chce vývojář vytvořit novou akci, lze to provést pomocí GoLang a Python.

Poskytuje nepřetržitý řídicí panel integrace, který poskytuje souhrnný pohled na všechny pracovní operace. Pystol můžete spustit lokálně nebo jej nasadit v kontejneru pomocí jeho obrazu dockeru. Pystol poskytuje dvě rozhraní, jedno je webové uživatelské rozhraní a druhé je přes CLI. Webové uživatelské rozhraní je samozřejmě lepší volbou.

Muxy

Muxy je proxy server, který otestuje vaši odolnost a odolnost proti chybám pro selhání distribuovaného systému v reálném světě. Může narušit úroveň přenosu (vrstva 4), úroveň relace TCP (vrstva 5) a úroveň protokolu HTTP (vrstva 7).

Vlastnosti muxy:

  • Modulární architektura a snadno rozšiřitelná
  • Má oficiální dokovací kontejner
  • Snadná instalace, nejsou vyžadovány žádné závislosti.
  • Ideální pro průběžné testování odolnosti
  • Simuluje problémy s připojením k síti pro distribuované systémy a mobilní zařízení

Pumba

Pumba je nástroj příkazového řádku, který provádí testování chaosu pro kontejnery dockerů. S Pumbou záměrně shazujete kontejnery dokovacích stanic aplikace, abyste viděli, jak systém reaguje. Můžete také provádět zátěžové testování prostředků kontejneru, jako je CPU, paměť, souborový systém, vstup/výstup atd.

Pumbu můžete také spustit na clusteru Kubernetes. K nasazení Pumba na uzly Kubernetes musíte použít DaemonSets. Ke spuštění více příkazů Pumba ve stejné sadě DaemonSet můžete použít více kontejnerů Pumba.

ChaosBlade

ChaosBlade je open-source nástroj pro vkládání experimentů do systémů od Alibaba. Testuje všechna selhání, kterým Alibaba čelila za posledních deset let, a uplatňuje osvědčené postupy, aby se jim vyhnula. Dodržuje principy chaosového inženýrství pro kontrolu chybové odolnosti distribuovaných systémů.

Vlastnosti ChaosBlade:

  • Poskytuje experimentální scénáře pro více zdrojů, jako je CPU, síť, paměť, disk atd.
  • Poskytuje experimentální scénáře pro uzly, sítě a pody na platformě Kubernetes
  • Poskytuje snadno použitelné příkazy CLI pro provádění experimentů
  Jak vypnout upozornění Microsoft Teams

Lakmus

Lakmus dodržuje principy cloudového inženýrství chaosu. Posláním lakmusového nástroje je poskytovat kompletní rámec pro hledání slabin ve vašich systémech Kubernetes a spuštěných aplikacích na Kubernetes.

Má chaos Operator a kolem toho CRD (CustomResourceDefinitions), což umožňuje funkci plug-and-play. Je to všechno o vložení vaší logiky chaosu do obrázku dockeru, vložení do lakmusového rámce a jejich zorganizování pomocí CRD.

Vlastnosti lakmusu:

  • Pomáhá inženýrům a vývojářům v oblasti spolehlivosti webu najít slabá místa v systému Kubernetes
  • Poskytuje obecné experimenty připravené k použití
  • Poskytuje Chaos API pro správu pracovního toku chaosu
  • Litmus SDK podporuje Go, Python a Ansible pro vytváření vlastních experimentů.

Skřítek

Skřítek pomáhá inženýrům vytvářet odolnější software. Poskytuje platformu pro bezpečné, bezpečné a přímočaré provádění experimentů chaosového inženýrství.

Selhání můžete promyšleně vložit do hostitelů nebo kontejnerů pomocí gremlin bez ohledu na to, kde se nacházejí, ať už jde o veřejný cloud nebo vaše vlastní datové centrum.

Vlastnosti Gremlin:

  • Nainstaluje odlehčeného agenta na vaše hostitele nebo kontejnery, aby injektoval selhání
  • Poskytuje více než 10 různých režimů útoku na infrastrukturu
  • State gremlins vám umožní manipulovat se systémovým časem, vypínat nebo restartovat hostitele a zabíjet procesory.
  • Síťoví gremlinové mohou vnést latenci, aby došlo ke ztrátě paketů nebo k poklesu provozu.
  • Útoky na knihovnu Gremlin Alfi lze nakonfigurovat, spustit a zastavit prostřednictvím webové aplikace. API nebo CLI
  • Umožňuje přesně zaměřit rádius výbuchu, na který chcete zaútočit
  • Umožňuje zastavit všechny útoky a vrátit systém zpět do ustáleného stavu

Steadybit

Steadybit má za cíl proaktivně snižovat prostoje a poskytuje přehled o problémech systému. Tento nástroj můžete spustit lokálně ve vaší infrastruktuře nebo cloudu jako službu (SaaS).

Chcete-li použít Steadybit, definujete situaci, simulujete experimenty, provádíte simulované experimenty ve výrobě a automatizujete všechny experimenty. Spouští ve vašem systému inteligentní agenty, aby odhalili potenciální problémy a slabá místa. Snadno se integruje s více systémy.

Závěr

Neváhejte a buďte dostatečně odvážní, abyste použili principy chaosového inženýrství a otestovali svou výrobu pomocí výše uvedených nástrojů. Tyto nástroje vám pomohou najít více neidentifikovaných slabin ve vašem systému a pomohou vám zvýšit odolnost systému.