【かおすえんじにありんぐ】
カオスエンジニアリング とは?
最終更新:
💡 障害時も期待どおり動くか、範囲を決めて実験する
現実に起こり得る障害や負荷の変化を制御した実験として与え、システムが期待する状態を保てるか検証する手法。測定できる仮説と影響範囲を決め、弱点の発見と改善につなげる。
📌 このページのポイント
ただシステムを壊してみるの?
目的は壊すことではなく、障害や負荷の変化が起きても期待するサービスを保てるか学ぶことだよ。測定する指標と仮説を決めて、制御した実験をするんだ。
どんな仮説を立てるの?
たとえば「サーバー1台が停止しても、決めた応答時間とエラー率の範囲を保てるか」だね。正常な状態を数値で決め、実験対象と比較対象の結果を調べるんだ。
Chaos Monkeyは何をするの?
最初から本番で試す必要がある?
本番の通信や環境を使うと、実際の挙動に近い検証ができるよ。一方、実験の影響は小さく抑える必要がある。環境の違いを理解しながら、管理できる範囲から進めよう。
実験で弱点を見つけたら?
結果を仮説と比べ、切り替えや再試行の仕組みなどを改善するよ。改善後も同じ条件で確かめる。ある実験が成功しても、試していない障害への強さまで証明したことにはならないんだ。
もっと詳しく知りたい人へ
障害注入テストと何が違う?
障害注入は実験に条件を与える方法の一つ。カオスエンジニアリングでは、測定できる正常状態、仮説、現実的な変化、比較と影響範囲の管理を合わせて扱う。故障だけでなく、アクセス急増のような変化も対象になる。
まとめ:ざっくりこれだけ覚えればOK!
「カオスエンジニアリング」って出てきたら「障害時のシステムの振る舞いを、制御した実験で確かめる手法」と思えばだいたいOK!
📖 おまけ:英語の意味
「Chaos Engineering」 = 混乱を扱うエンジニアリング
💬 分散システムで予測しにくい障害の影響を、実験で理解する考え方だよ。NetflixのChaos Monkeyは、そのためのツールの一例なんだ