AutoChaos は、さまざまなシステム (現時点では Kubernetes クラスター) にカオスを注入するように設計された強力なツールです。
AutoChaos の目的は、システム内のカオスを分析およびシミュレートし、組織が潜在的な脆弱性、ボトルネック、障害点を特定できるようにすることです。システムを制御されたカオス シナリオにさらすことで、企業はその回復力に関する貴重な洞察を獲得し、情報に基づいて改善のための意思決定を行うことができます。
AutoChaos は LLM を利用して、制御されたカオスをシステムに注入します。使用量の突然の急増、ハードウェア障害、ネットワーク中断など、さまざまな混沌としたイベントをシミュレートできます。このツールは、これらの混沌としたイベントに対するシステムの応答を測定し、ストレス下でのシステムの動作の詳細な分析と視覚化を提供します。
sudo apt update
sudo apt install python3.xx python3.xx-dev python3.xx-venv
1 - このリポジトリのクローンを作成します
git clone https://github.com/nervousapps/AutoChaos.git
2 - リポジトリ ディレクトリに移動します
cd AutoChaos
3 - ターミナルで Python venv を作成することをお勧めします。
python3.xx -m venv autochaos
そしてそれを有効にします
source ./autochaos/bin/activate
4 - 次のコマンドを実行して、AutoChaos パッケージと依存関係をインストールします。
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 ))
環境名 | 説明 | デフォルト値 |
---|---|---|
K8S_CTX | K8s コンテキスト | デフォルト |
キーファイル | openai keyfile.txt へのパス | ./openai_key.txt |
名前空間 | カオスが適用される名前空間 | 全て |
可用性_ルート | システムの可用性を確認するルート | なし |
API_ROUTES | Locust システムが負荷テストを実行するルートは、「/foo/hostname /bar/hostname」の形式である必要があります。 | 「」 |
LOCAL_AI_URL | openAi Python パッケージと互換性のある API のローカル インスタンスの URL | 「」 |
MODEL_NAME | 使用するモデル名 | gpt-3.5-ターボ-16k |
NB_反復 | カオス反復の数 | 5 |
最初に、次の例のようにシステム プロンプト (chaos_engineer.txt) でアクションを定義します。
- 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 (カオス エンジニアとして機能) は、定義されたアクションの 1 つを選択し、対応する引数を使用してそれを実行するように要求します。応答は、たとえば次のようになります。
KILL pod kop-123 namespace_1
定義されたアクションのハンドラーは、auto_chaos.chaos.BaseSystem を継承するシステム クラスに実装する必要があります。この BaseSytem クラスは、カオス エンジニアの応答を分析し、対応するハンドラーがあればそれを呼び出し、そうでない場合はデフォルトのハンドラーを呼び出す do_action メソッドを定義します。
AutoChaos ツールは、カオス イベント中のシステムの動作に関する正確かつ詳細な結果を提供します。分析には、応答時間、エラー率、リソース使用率、システムの安定性などの指標が含まれます。データを視覚化し、パターンや異常を特定するのに役立つチャートやグラフなどの視覚化も生成されます。結果を分析することで、企業は潜在的な弱点を特定し、システムの回復力とパフォーマンスを向上させるための事前の対策を講じることができます。
AutoChaos は、システム内のカオスを分析するための強力なツールであり、企業にその回復力と脆弱性に関する貴重な洞察を提供します。カオス イベントをシミュレートし、システムの応答を分析することで、組織は情報に基づいた意思決定を行い、システムの堅牢性を向上させるための事前の措置を講じることができます。今すぐ AutoChaos をインストールして、ストレス下でのシステムの動作をより深く理解してください。
これは OpenAI の公式製品ではありません。これは個人的なプロジェクトであり、OpenAI とは一切関係ありません。
黒
MITライセンス