AutoChaos ist ein leistungsstarkes Tool, das dazu dient, Chaos in verschiedenen Systemen (vorerst Kubernetes-Clustern) zu verursachen.
Der Zweck von AutoChaos besteht darin, das Chaos in Systemen zu analysieren und zu simulieren und Unternehmen dabei zu helfen, potenzielle Schwachstellen, Engpässe und Fehlerquellen zu identifizieren. Durch die Unterwerfung von Systemen in kontrollierte Chaosszenarien können Unternehmen wertvolle Einblicke in ihre Widerstandsfähigkeit gewinnen und fundierte Entscheidungen zur Verbesserung treffen.
AutoChaos nutzt LLM, um kontrolliertes Chaos in Systeme zu bringen. Es kann verschiedene chaotische Ereignisse simulieren, wie zum Beispiel plötzliche Nutzungsspitzen, Hardwareausfälle, Netzwerkunterbrechungen und mehr. Das Tool misst die Reaktion des Systems auf diese chaotischen Ereignisse und liefert detaillierte Analysen und Visualisierungen des Systemverhaltens unter Stress.
sudo apt update
sudo apt install python3.xx python3.xx-dev python3.xx-venv
1 – Klonen Sie dieses Repository
git clone https://github.com/nervousapps/AutoChaos.git
2 – Gehen Sie in das Repo-Verzeichnis
cd AutoChaos
3 – Es wird empfohlen, ein Python-Venv in Ihrem Terminal zu erstellen:
python3.xx -m venv autochaos
Und aktivieren Sie es
source ./autochaos/bin/activate
4 – Installieren Sie das AutoChaos-Paket und die Abhängigkeiten, indem Sie Folgendes ausführen:
pip install -r ./python/requirements.txt
pip install ./python --no-deps
nano ./openai_key.txt
if local_ai_url :
# Change api url to LLM local tool one
openai . base_url = local_ai_url
openai . api_key = "sx-xxx"
else :
# Initialize openai api_key
with open ( "./openai_key.txt" , "r" ) as file :
openai . api_key = ( file . read ()). strip ()
# Systems
k8s_system = K8sSystem ( namespace )
locust_system = LocustSystem ()
# Load system description
initial_state = {
"system_resources" : k8s_system . describe (),
"api_routes" : api_routes ,
"availability_route" : availability_route ,
}
# It is time to do chaos !
chaos = Chaos ([ k8s_system , locust_system ], initial_state )
chaos . chaos ( objective = 10 )
chaos . report ()
# Write the result file
with open (
os . path . join ( f"autochaos.json" ), "w"
) as file :
file . write ( json . dumps ( chaos . messages , indent = 4 ))
Umgebungsname | Beschreibung | Standardwert |
---|---|---|
K8S_CTX | K8s-Kontext | Standard |
SCHLÜSSELDATEI | Pfad zu openai keyfile.txt | ./openai_key.txt |
NAMENSRAUM | Namespace, auf den Chaos angewendet wird | alle |
VERFÜGBARKEIT_ROUTE | Route zur Überprüfung der Systemverfügbarkeit | Keiner |
API_ROUTES | Routen, auf denen das Locust-System einen Lasttest durchführt, müssen die Form „/foo/hostname /bar/hostname“ haben. | „“ |
LOCAL_AI_URL | URL einer lokalen Instanz einer API, die mit dem OpenAi-Python-Paket kompatibel ist | „“ |
MODEL_NAME | Zu verwendender Modellname | gpt-3.5-turbo-16k |
NB_ITERATION | Anzahl der Chaos-Iterationen | 5 |
Zunächst werden Aktionen wie im folgenden Beispiel in der Systemeingabeaufforderung (chaos_engineer.txt) definiert:
- DESCRIBE : this action must be used to see the system state during chaos, no arguments required, use it after chaos has begun
- KILL : this action must be used to kill a process, a task, a pod, a node of anything in the system, you have to indicate in this order: the type, the name and the namespace of resource to kill (for example KILL pod kop-123 namespace_1), no talking, no comments
LLM (als Chaos-Ingenieur) wählt eine der definierten Aktionen aus und fordert sie mit entsprechenden Argumenten auf. Eine Antwort kann zum Beispiel sein:
KILL pod kop-123 namespace_1
Handler für definierte Aktionen müssen in der Systemklasse implementiert werden, die von auto_chaos.chaos.BaseSystem erbt. Diese BaseSytem-Klasse definiert eine do_action-Methode, die die Reaktion des Chaos-Ingenieurs analysiert und gegebenenfalls den entsprechenden Handler aufruft. Andernfalls wird ein Standardhandler aufgerufen.
Das AutoChaos-Tool liefert genaue und detaillierte Ergebnisse zum Systemverhalten bei Chaosereignissen. Die Analyse umfasst Metriken wie Reaktionszeit, Fehlerraten, Ressourcennutzung und Systemstabilität. Es werden auch Visualisierungen wie Diagramme und Grafiken erstellt, um die Daten zu visualisieren und Muster oder Anomalien zu erkennen. Durch die Analyse der Ergebnisse können Unternehmen potenzielle Schwachstellen identifizieren und proaktive Maßnahmen ergreifen, um die Belastbarkeit und Leistung des Systems zu verbessern.
AutoChaos ist ein leistungsstarkes Tool zur Analyse des Chaos in Systemen und bietet Unternehmen wertvolle Einblicke in ihre Widerstandsfähigkeit und Schwachstellen. Durch die Simulation von Chaosereignissen und die Analyse der Systemreaktion können Unternehmen fundierte Entscheidungen treffen und proaktive Maßnahmen ergreifen, um die Robustheit ihrer Systeme zu verbessern. Installieren Sie AutoChaos noch heute und gewinnen Sie ein tieferes Verständnis für das Verhalten Ihrer Systeme unter Stress.
Dies ist kein offizielles OpenAI-Produkt. Dies ist ein persönliches Projekt und steht in keiner Verbindung zu OpenAI.
SCHWARZ
Lizenz MIT