BÍLÁ KNIHA
Zajistěte aplikaci výkon uprostřed chaosu
Zajistěte výkon aplikací uprostřed chaosu
Testování chaosu je důležitou součástí chaosového inženýrství, disciplíny zaměřené na hodnocení odolnosti systému vůči neočekávaným poruchám. Na rozdíl od tradičních testovacích metod, které simulují známá selhání, testování chaosu zavádí náhodné, nekonvenční scénáře – jako je síť outages nebo náhlé dopravní špičky – k vyhodnocení toho, jak systémy fungují pod zátěží. Proces zahrnuje simulaci neobvyklých událostí k identifikaci zranitelností dříve, než povedou k problémům v reálném světě. Klíčové ukazatele výkonu (KPI) jsou stanoveny pro monitorování stability systému a pomáhají týmům definovat přijatelný rádius výbuchu, aby se minimalizoval dopad na uživatele. Tento proaktivní přístup nejen odhaluje slabá místa, ale také zlepšuje mechanismy obnovy a zlepšuje celkovou odolnost systému. Mezi výhody testování chaosu patří zvýšená robustnost systému, snížení prostojů a lepší pochopení chování systému. Pomáhá týmům připravit se na incidenty a zvyšuje spokojenost zákazníků tím, že předchází narušení služeb. Integrace testování chaosu do existujících rámců, jako jsou řešení OpenText™ performance engineering, umožňuje komplexní testovací strategii.
Otázky, které si můžete položit ohledně testování chaosu:
- Co je testování chaosu?
- Jaký je rozdíl mezi testováním chaosu a inženýrstvím chaosu?
- Jaké druhy problémů lze vyřešit testováním chaosu?
- Co jsou někteří exampmnožství aplikací v reálném světě, které dnes využívají chaosové inženýrství?
- Dokážete simulovat útoky chaosu na vaše systémy?
- Jsou dnes k dispozici nějaké nástroje, které zahrnují testování chaosu?
Úvod do testování chaosu
Chaos testování je podmnožinou chaosového inženýrství věnovaného testování. Chaos engineering je disciplína experimentování se systémem k vybudování důvěry ve schopnost systému odolat turbulentním podmínkám ve výrobě. Tím, že zajistíte, aby systém vydržel chaotické výkyvy, si můžete být jisti jeho schopností zvládnout neočekávané problémy v reálném světě. To může zahrnovat situace, jako jsou výpadky infrastruktury, sítě nebo napájení v různých bodech systému.
Je těžké si představit tým vývoje softwaru, který neprovádí žádné testování. Testování softwaru je široce přijímáno jako nejlepší postup v životním cyklu vývoje softwaru (SDLC), ať už jde o jednotku, integraci, funkčnost, výkon, zabezpečení nebo dokonce manuální. Společnosti obvykle plánují a vytvářejí testovací cvičení předem. Ty často zahrnují použití častých testovacích případů na očekávané události.
Nicméně chyby a zranitelnosti, které nastavují stage pro závažné selhání systému, zneužití nebo narušení v důsledku neočekávaných událostí. Primárním rozdílem mezi běžným testováním a testováním chaosu je rozsah a výsledky. Testování chaosu se snaží zajistit, aby i v případě chaosu softwarové systémy fungovaly a sledovaly požadavky klientů, i když se zhroutí celé části systému.
Tento dokument vás provede testováním chaosu, jak to funguje a proč a jak byste jej měli používat.
Jak funguje testování chaosu
Testování chaosu zahrnuje simulaci nebo vstřikování neobvyklých událostí do systému. Měli bychom to udělat proaktivně – dříve, než tyto události mohou způsobit neplánované odstávky nebo jiné dopady na uživatelskou zkušenost. Testování chaosu funguje tak, že aplikace zatěžuje neobvyklými případy použití, jako je odesílání chybně tvarovaných vstupů do a web aplikace, přetížení aplikace provozem, záměrné pokusy o spuštění běžných zranitelností a ohrožení (CVE) nebo známé útoky, jako je SQL injection. Obvykle chceme definovat klíčové ukazatele výkonu (KPI) pro sledování stabilního stavu systému ve výrobě. Před aktivním pokusem prolomit nebo narušit testovací cíl tedy definujeme přijatelný rádius výbuchu, abychom nezpůsobili zhoršení uživatelské zkušenosti.
KPI se liší, ale obvykle je jejich cílem snížit míru selhání způsobených změnami, zkrátit čas strávený hašením požárů a omezit dobu prostojů. Jak si dokážete představit, v těchto testech je důležitý účinný monitorovací systém. Napřample, varuje monitorovací systém klíčový personál před, během a po překročení prahových hodnot? A co protokoly incidentů? Jsou generovány v reálném čase, jsou tamper-proof, a zachytí všechny problémy?
Možná budeme chtít potvrdit, že automatické zmírňování, jako je horizontální a vertikální škálování, funguje správně v našem kanálu CI/CD. Je roztočeno více virtuálních strojů (VM) nebo kontejnerů, když se zvyšuje počet souběžných požadavků? Je na virtuální počítač aplikován větší výpočetní výkon v případě zvýšené a prodloužené složitosti zpracování? Co se stane, když jsou systémové hodiny ve finanční zátěži záměrně nesynchronizovány – zastaví se systém? Je zákazníkovi chybně odepsána nebo připsána částka? Jsou stvrzenky o transakcích doručeny pozdě nebo vůbec?
Tento druh testování poskytuje lepší přehled o zásazích nebo upgradech, které by mohly systém posílit.
Proč používat testování chaosu?
Ať se snažíme sebevíc, nemůžeme předvídat každou výrobní chybu. Od špatné konfigurace infrastruktury, chyby na jednom řádku od vývojáře, pomalé mikroslužby, která ovlivňuje latenci celého systému, nebo dokonce prosté lidské chyby – pokud má něco potenciál se pokazit, pravděpodobně se to stane. Proto testujeme.
Ale proč konkrétně používat testování chaosu?
Zlepšuje odolnost systému
Testování chaosu pomáhá určit odolnost ve výrobě záměrným experimentováním s neobvyklými selháními, aby se zjistilo, zda systém navrácení po selhání a mechanismy převzetí služeb při selhání fungují. Testování obvykle zahrnuje kontrolu každého problému, se kterým se váš tým obvykle setkává, s výjimkou neočekávaných. Testování chaosu zaplňuje tuto díru a využívá informace z vašich experimentů k posílení vašeho systému proti takovým selháním.
Snižuje prostoje systému
Chaos engineering vám pomáhá porozumět chování systému během selhání a pomáhá odhalit cestu k obnově podsystémů. To znamená, že můžete rychle zjistit a případně se vyhnout velkým selháním IT nebo je zmírnit, snížit tak cenné ztráty produkčního času, platit obrovské částky za škody nebo mít dopad na důvěru investorů.
Identifikuje slabá místa systému
Testování chaosu je důležité, protože generuje znalosti o chování, vlastnostech a výkonu systému. Distribuovaný systém má obvykle tendenci mít více bodů selhání kvůli své složitosti a rozsáhlé povaze. Testování chaosu se snaží tyto body selhání objevit a identifikovat, co se stane v případě nedostupnosti zdroje nebo objektu. V případech, kdy váháte s vyzkoušením nových technologií z důvodu spolehlivosti, testování chaosu identifikuje slabá místa a měří skutečné chování systému v reálném čase za těchto podmínek.
Připravuje váš tým
Pro zaměstnavatele je náhodnou výhodou testování chaosu to, že odráží připravenost reakce týmu na incidenty. Testovací cvičení je příležitostí k řešení nedostatků v procesu a k tomu, jak v případě potřeby fungují nouzové schvalování, k posouzení technických znalostí a měkkých dovedností pod tlakem a ke zjištění, zda byste se neměli přeškolit. To je zvláště důležité, když vaše organizace spadá pod statutární regulační posouzení pro certifikaci nebo schválení.
Zlepšuje spokojenost zákazníků
Poslední výhodou testování chaosu je, že zabraňuje narušení služby včasnou identifikací potenciálních outages, což zase zlepšuje uživatelský zážitek.
Jak zahájit testování chaosu
Prvním krokem k úspěšnému testování chaosu je uznat, že to potřebujete. Bez ohledu na schopnosti a předvídavost vašeho týmu se s vaším systémem vyskytnou neočekávané problémy. Testování chaosu je důležité pro posílení odolnosti a dává vám jistotu, že cokoli se stane, váš systém reaguje dobře. Jakmile váš tým pochopí důležitost testování chaosu, můžete začít následovně.
Výběr nástroje
Můžete začít pomocí nástrojů s otevřeným zdrojovým kódem, jako je např Chaos Monkey or ChaosBlade. Chaos Monkey má pouze vypínací útok a vyžaduje a spinakr a MySQL. Funguje to tak, že odešle požadavek na vypnutí libovolnému náhodnému virtuálnímu počítači ve vaší architektuře v libovolném bodě v nastaveném čase. Než se útok spustí, možná budete chtít zkontrolovat, zda probíhá outagE. Chcete-li to provést, musíte napsat vlastní skript Go. Tento nástroj má přísné limity pro moderní testování, což je
proč to není populární.
Naproti tomu ChaosBlade poskytuje několik typů útoků – včetně spotřeby zdrojů, ztráty paketů a dalších – pro testování zátěže baremetal, kontejnerů a Kubernetes. Podporuje také vkládání chyb na aplikační úrovni pro aplikace C++, Java a NodeJS. PřampMezi tyto typy chyb patří zpožděné spuštění kódu, vložení libovolného kódu a úprava hodnoty paměti. ™ ChaosBlade má však omezení: není podporováno GUI, dokumentace je v čínštině, vyžaduje znalost kódování a křivka učení je strmá.
Nejplodnějším jediným dostupným nástrojem pro testování chaosu je Skřítek. Nabízí širokou škálu vektorů útoků, které můžete použít na úlohy virtuálních počítačů, kontejnerů a Kubernetes ve vrstvách prostředků, stavu a sítě přes intuitivní GUI. Napřample, můžete se rozhodnout pro simulaci stavového testu pro VM výběrem preferovaných možností na a web formě, jako je zabití systémového procesu, změna systémového času nebo provedení náhlého vypnutí virtuálního počítače. Další testy pro virtuální počítače zahrnují omezení zdrojů, jako je paměť, CPU a místo na disku, přidání latence k odpovídajícímu provozu nebo blokování přístupu k serverům DNS na síťové vrstvě.
Nejlepší způsob, jak správně otestovat váš systém, je integrovat testování chaosu do vaší stávající testovací sady, protože testování chaosu je pouze jedním nástrojem ve vašem pásu testovacích nástrojů. Zvažte integrace z Gremlin do OPenText™ Professional Performance Engineering napřample — umožňuje vám připojit váš účet Gremlin pomocí klíčů API k OpenText Professional Performance Engineering a spustit Gremlin v aplikaci. To vám umožní přidat testování chaosu k již solidnímu testovacímu přístupu.
OpenText Professional Performance Engineering se také integruje se Steadybit, nástrojem pro testování chaosu, který podporuje jak off-cloud, tak SaaS, aby zákazníkům umožnil flexibilitu pracovat v rámci jejich vlastních bezpečnostních pokynů.
OpenText Professional Performance Engineering je určen pro použití v prostorách pro místní týmy. Funguje tak, že simuluje virtuální uživatele (Vusers), kteří generují zátěž tím, že zadávají požadavky aplikací na váš testovací cíl. Cíl musí přijímat a
potvrdit odpověď ve stanoveném časovém rámci, aby prošel testem výkonu.
Pokud je váš tým globálně distribuován v prostorách nebo je migrován do cloudu, OpenTex t Enterprise Performance Engineering integruje se se Steadybit a OpenTex t™ Core Performance Engineering integruje se s Gremlinem, aby vyhovoval vašim potřebám testování chaosu. Řešení výkonového inženýrství OpenText jsou jedinými nástroji výkonového inženýrství, které nabízejí možnosti chaosu mimo cloud i SaaS. ™ Přampméně testovacích cílů pro výkonová inženýrská řešení OpenText zahrnují aplikace ERP, jako je Oracle® E-business nebo SAP, mobilní, web, web 2.0, protokoly jako DNS, SMTP, FTP; Databáze (ODBC) a vzdálený přístup (RDP, Citrix ® ) — ale existuje mnohem více.
Zdroje
OpenText Professional Performance Engineering >
OpenText Enterprise Performance Engineering >
OpenText Core Performance Engineering >
OpenText DevOps Cloud >
Závěr
Testování chaosu je především o posílení odolnosti systému. Nemá nahradit testování, které již provádíte – místo toho doplňuje vaše stávající testovací nástroje tím, že najde chyby a zranitelnosti, které společnosti obvykle uniknou.
Kroky k úspěchu v chaosu:
- Zvyšte odolnost služeb a schopnost reagovat na poruchy.
- Neustále aplikujte principy chaosu.
- Vytvořte a zorganizujte centrální tým inženýrů chaosu.
- Dodržujte osvědčené postupy pro testování chaosu.
Až budete připraveni začít s testováním chaosu, zvažte řešení OpenText performance engineering ›
Copyright © 2024 Open Text
10.24 | 262-000143-001
Dokumenty / zdroje
![]() |
opentext Zajistěte výkon aplikací uprostřed chaosu [pdfUživatelská příručka 262-000143-001, Zajistit výkon aplikací uprostřed chaosu, výkon aplikací uprostřed chaosu, výkon uprostřed chaosu, uprostřed chaosu, chaosu |