bélyegkép| A Netflix által használt Chaos Monkey logó A káosztechnika a gyártási szoftverrendszerekkel kísérletezik. Célja a bizalom növelése úgy, hogy a rendszer képes ellenállni a turbulenciának és a váratlan helyzeteknek.

A szoftverfejlesztés során jellemzően követelményként meghatározzák, hogy egy adott szoftverrendszer képes-e elviselni a hibákat, miközben biztosítja a szolgáltatás megfelelő minőségét - gyakran rugalmasságként hivatkozva arra. Azonban olyan tényezők miatt, mint a rövid határidők vagy a terület ismeretének hiánya, a fejlesztő csapatok gyakran nem teljesítik ezt a követelményt. A káosztechnika olyan technológia, amely megfelel a rugalmas igényeknek.

A káosztechnikával a rugalmasságot a következő területeken lehet elérni: Infrastrukturális hibák Hálózati hibák Alkalmazáshibák

Történelem Miközben 2011-ben felügyelte a Netflix felhőbe történő migrációt, Greg Orzellnek az az ötlete támadt, hogy orvosolja a megfelelő rugalmasság-tesztelés hiányát egy olyan eszköz létrehozásával, amely meghibásodásokat okozhat a termelési környezetben, a Netflix ügyfelek által használt környezetben. A cél az, hogy a nem kudarcot feltételező fejlesztési modellről egy olyan modellre váltsunk, ahol a kudarcokat elkerülhetetlennek tartják, és ez arra késztesse a fejlesztőket, hogy a beépített rugalmasságot inkább kötelezettségként, mint lehetőségként kezeljék:"A Netflixnél a szabadság és a felelősség kultúrája megakadályozza, hogy arra kényszerítsük a mérnököket, hogy sajátos módon tervezzék meg kódjukat. Ehelyett azt tapasztaltuk, hogy a szerver semlegesítése által okozott problémákat elkülönítve és a végletekig kitolva igazíthatjuk csapatunkat az infrastruktúra rugalmasságának koncepciójához. Létrehoztuk a Chaos Monkey programot, amely véletlenszerűen kiválaszt egy szervert, és a szokásos aktív ideje alatt letiltja azt. Vannak, akik szerint ez őrültség, de nem támaszkodhatunk véletlenszerű eseményekre, hogy teszteljük viselkedésünket az esemény következményeivel szemben. Tudva, hogy ez gyakran előfordul, a mérnökök erős szövetségeket hoztak létre redundancia és folyamat-automatizálás létrehozása érdekében, hogy túléljék az ilyen eseményeket anélkül, hogy a Netflix-felhasználók millióit érintenék. A Chaos Monkey az egyik leghatékonyabb eszköz a szolgáltatás minőségének javítására. " A szoftveres szolgáltatások véletlenszerű példányainak időszakos "megölésével" redundáns architektúrákat lehet tesztelni annak igazolására, hogy a szerverhibák nem befolyásolják-e jelentősen az ügyfeleket.

A káosztechnika koncepciója közel áll a Phoenix Szerverekhez, amelyet Martin Fowler vezetett be először 2012-ben.

Perturbációs modellek bélyegkép|Simian Army logó a Netflix-től A Simian Army egy olyan eszközkészlet, amelyet a Netflix fejlesztett ki az Amazon Web Services infrastruktúrájának megbízhatóságának, biztonságának vagy rugalmasságának tesztelésére, beleértve a következő eszközöket:

Chaos Monkey A Chaos Monkey egy olyan eszköz, amelyet a Netflix talált ki 2011-ben, hogy tesztelje informatikai infrastruktúrájának rugalmasságát. Úgy működik, hogy szándékosan letiltja a számítógépeket a Netflix termelési hálózatban, azért, hogy tesztelje, hogyan reagálnak a fennmaradó rendszerek a megszakításokra. A Chaos Monkey immár egy nagyobb, Simian Army nevű eszközkészlet része, amelynek célja a különféle rendszerhibákra és élhelyzetekre adott válaszok szimulálása és tesztelése.

A Chaos Monkey mögött álló kódot a Netflix 2012-ben adta ki Apache 2.0 licenc alatt.

A név "Chaos Monkey" a könyvben Chaos Monkeys című könyvben van elmagyarázva, amelyet Antonio Garcia Martinez publikált:"Képzelje el, hogy egy majom belép egy adatközpontba. Ezeknek a szervereknek a „farmja” az online tevékenységeink összes kulcsfontosságú funkcióját ellátja. A majom véletlenszerűen leválasztja a kábeleket, tönkreteszi a berendezéseket, és mindent visszaad, ami elhalad [ürülékeket dobál]. Az informatikai vezetők számára az a felelős információs rendszerek megtervezése, hogy együtt tudjanak működni ezekkel a majmokkal. Senki sem tudja, mikor érkeznek és mit pusztítanak el. " alt=LitmusChaos Bird|bélyegkép| A LitmusChaos Bird a káosztechnika kurálja Kubernetes rendszereken A LitmusChaos a felhő-natív káosztervezés eszközkészlete. A Litmus olyan eszközöket kínál a káosz összehangolásához a Kubernetesen, amelyek segítenek az SRE-t megtalálni a telepítés gyengeségeit. Az SRE a Litmus segítségével kezdetben káoszkísérleteket futtat egy szakaszos környezetben, végül hibákat és sebezhetőségeket talál a termelésben. A gyengeségek kijavítása növelheti a rendszer rugalmasságát.

A LitmusChaos a CNCF Projektek része, amely az Apache 2 alatt lett licenszelve és létfontosságú volt a következő generációs Chaos Engineering sztori vezetésében, mivel lehetővé teszi a Chaos munkafolyamatának a nulláról percek alatt történő ütemezését tanulási görbe használata nélkül. A káosztechnika útjának kezdete Litmusé egymás mellett halad előre:

Nyílt forráskód: Rugalmasságot, mozgékonyságot és közösségi támogatást nyújt. Lényegében deklaratív: A káosz kezeléséhez a Litmus káosz CRD-ket biztosít, a káosz menedzseléséhez. A káosz API használatával deklaratív módon befejezheti az hangszerelést, az ütemezést és az összetett munkafolyamat-kezelést. A káoszkísérleteket bármikor elérhetővé teheti: a legtöbb általános káoszkísérlet bármikor felhasználható az eredeti káosztechnikai igények kielégítéséhez. A Litmus SDK segítségével gyorsan létrehozhat egy alapvető kísérleti struktúrát, amely saját zavart okozhat. A Kubernetes fejlesztőknek és az SRE-nek káosz logikát kell hozzáadniuk az új kísérletek létrehozásához.

Káosz Kong A Simian hadsereg hierarchiájának csúcsán Chaos Kong egy teljes AWS "régiót" helyezett el. Bár ritka, a teljes terület vesztesége bekövetkezhet. A Káosz Kong szimulálja a rendszer válaszát és az ilyen események helyreállítását.

Káosz Gorilla A Káosz Gorilla egy teljes "Amazon" "elérhetőségi zónát" (egy vagy több földrajzi régiót kiszolgáló teljes adatközpontot) dob le.

Késleltetési majom Bevezeti a kommunikációs késleltetést a hálózat meghibásodásának vagy megszakadásának szimulálásához.

Majom doktor Elvégzi az állapotellenőrzéseket, úgy, hogy monitorozza a metrikák teljesítményét (például CPU töltés), azért, hogy észre vegye az egészségtelen példányokat, a gyökér okok analizálásért és végül kijavítsa vagy lekapcsolja ezeket.

Portás majom A felesleges erőforrások azonosítása és ártalmatlanítása a pazarlás és az összetévesztés elkerülése érdekében.

Megfelelőségi majom Olyan eszköz, amely meghatározza, hogy egy példány minősítés nélküli-e, amelyet szabályokkal tesztel. Ha bármely szabály megállapítja, hogy a példány nem felel meg, a majom e-mail értesítést küld a példány tulajdonosának.

Biztonsági majom A Megfelelőségi Majomból származik, amely ismert sérülékenységű vagy helytelen konfigurációjú példányok keresésére és letiltására szolgál.

10-18 Majom A különböző földrajzi régiókban működő ügyfeleket kiszolgáló szoftverek lokalizációs és nemzetközivé válási problémáinak (röviden „l10n” és „i18n”) felderítésére használt eszköz

Byte-Majom Egy kis Java könyvtár a JVM-alkalmazások hibakörülményeinek teszteléséhez. Szándékosan vezet be hibákat, például kivételeket és késéseket az alkalmazáskód menet közbeni észlelésével.

Káoszgép A CKáoszgép az alkalmazás szintű káosztervezés eszköze a JVM-ben. Összpontosít az alkalmazásban részt vevő minden egyes próbálkozási blokk hibakezelési képességeinek elemzésére, kivételek beillesztésével.

Dokkoló Káosztechnika Platform Káosztechnikai platform, a Microsoft Azure platformra és az Azure DevOps szolgáltatásokra összpontosít és azokat használja fel. A felhasználók az infrastruktúra, a platform és az alkalmazás szintjén adhatnak fel hibákat.

Gonosz szellem Az internet megbízhatóságának javítására szolgáló "szolgáltatási hiva" platform. Úgy működik, hogy a mérnököknek egy teljesen menedzselhető megoldást kínálnak, hogy biztonságosan kísérletezhessenek az összetett rendszereken, ezáltal a kudarcokat rugalmassággá alakítva a gyengeségek azonosítása érdekében, mielőtt azok az ügyfelekhez eljutnak és bevételkiesést okoznának.

Facebook Vihar Az adatközpont elvesztésére való felkészülés érdekében a Facebook rendszeresen teszteli infrastruktúrájának ellenállását a szélsőséges eseményekkel szemben. Ezt a programot Vihar projektnek hívják, és szimulálni tudja a nagyméretű adatközpont-hibákat.

Káosz napok Az AWS GameDays ihlette alkalmazásának rugalmasságának tesztelése érdekében a Káosz Napok megtartását, amelyben a Voyages-sncf.com csapata részt vett. 30 percenként az üzemeltetők hibákat szimuláltak. A csapatok észlelések, diagnózisok és megoldások alapján szereztek pontokat. Ez a fajta gamifikációs esemény segít megismertetni a fejlesztő csapatokat az ellenálló képesség koncepciójával.

A 2017-es DevOps REX konferencián bemutatott koncepciókat a http://days-of-chaos.com weboldalon mutatták be más kísérletek gyűjtésének céljából.

ChaoSlingr A ChaoSlingr az első nyílt forráskódú alkalmazás, amely a káosztervezést alkalmazza a hálózat biztonsága érdekében. A ChaoSlingr főként az AWS infrastruktúra biztonsági kísérleteire összpontosít, hogy proaktív módon felfedezze a rendszer biztonsági gyengeségeit a komplex elosztott rendszerkörnyezetekben. A GitHub-on, 2017 szeptemberében jelent meg.

Káosz eszköztár A Káosz eszköztár azért született, hogy egyszerűsítse a káosztechnika tudományághoz való hozzáférését, és bebizonyítsa, hogy a kísérleti módszerek különböző szinteken végezhetők: infrastruktúra, platform és alkalmazások. A Káosz eszköztár egy nyílt forráskódú eszköz, amely az Apache 2 alatt licencelt, és 2017 októberében jelent meg.

Mangle A Mangle lehetővé teszi, hogy zökkenőmentesen futtasson káosz technikai kísérleteket az alkalmazás és az infrastruktúra összetevőin, hogy értékelje a rugalmasságot és a hibatűrést. Úgy tervezték, hogy nagyon kevés előkonfigurációval hozza létre a hibákat, és minden infrastruktúráját támogatja, beleértve a K8S-t, a Docker-t, a vCentert vagy bármely távoli gépet, ahol az ssh engedélyezve van. Erőteljes plug-in modelljével meghatározhat egy tetszőleges egyedi hibát egy sablon alapján, és futtathatja azt anélkül, hogy a nulláról kellene elkészítenie a kódot.

Káoszháló A Káoszháló egy nyílt forráskódú felhő natív Káosztechnikai platform, amelyet káoszkísérletekhez használnak Kubernetes környezetben. Támogatja az átfogó hibaszimulációt, beleértve a Pod hibát, a tároló hibát, a hálózati hibát, a rendszerhibát, a rendszeridő meghibásodását és a rendszermag meghibásodását.

A Káoszháló Apache 2 licenc alatt jelent meg 2019 decemberében, és 2020 júliusában Cloud Native Computing Foundation (CNCF) homokozó projektje lett.

Lásd még

Hibatűrés Hibatűrő számítógépes rendszer Adatredundancia Hiba észlelése és kijavítása Esik vissza és előre Rugalmasság (hálózat) Robusztusság (informatika)

Megjegyzések és hivatkozások

További információk Principle of Chaos Engineering – The Chaos Engineering manifesto Chaos Engineering – Adrian Hornsby How Chaos Engineering Practices Will Help You Design Better Software – Mariano Calandra

Kategória:Szoftverfejlesztés