【かおすえんじにありんぐ】

カオスエンジニアリング とは?

最終更新:
💡 障害時も期待どおり動くか、範囲を決めて実験する

現実に起こり得る障害や負荷の変化を制御した実験として与え、システムが期待する状態を保てるか検証する手法。測定できる仮説と影響範囲を決め、弱点の発見と改善につなげる。

📌 このページのポイント
カオスエンジニアリング:仮説を実験で確かめる 仮説を立てる 正常時の指標 停止・遅延の実験 観察 比較 改善 再検証 影響範囲を 小さく管理 本番の条件を重視し、制御して実験する
測定できる正常状態と仮説を決め、現実的な条件を与え、結果を比較する。弱点を改善して再検証する例。影響範囲を限定し、実験していない障害への強さは保証しない。
ひよこ ひよこ
ただシステムを壊してみるの?
ペンギン先生 ペンギン先生
目的は壊すことではなく、障害や負荷の変化が起きても期待するサービスを保てるか学ぶことだよ。測定する指標と仮説を決めて、制御した実験をするんだ。
ひよこ ひよこ
どんな仮説を立てるの?
ペンギン先生 ペンギン先生
たとえば「サーバー1台が停止しても、決めた応答時間とエラー率の範囲を保てるか」だね。正常な状態を数値で決め、実験対象と比較対象の結果を調べるんだ。
ひよこ ひよこ
Chaos Monkeyは何をするの?
ペンギン先生 ペンギン先生
Netflixのツールで、本番環境の仮想マシンやコンテナをランダムに終了させるよ。現在の公開版はSpinnakerとの連携を前提としている。カオスエンジニアリング全体が、このツールだけを指すわけではないんだ。
ひよこ ひよこ
最初から本番で試す必要がある?
ペンギン先生 ペンギン先生
本番の通信や環境を使うと、実際の挙動に近い検証ができるよ。一方、実験の影響は小さく抑える必要がある。環境の違いを理解しながら、管理できる範囲から進めよう。
ひよこ ひよこ
実験で弱点を見つけたら?
ペンギン先生 ペンギン先生
結果を仮説と比べ、切り替えや再試行の仕組みなどを改善するよ。改善後も同じ条件で確かめる。ある実験が成功しても、試していない障害への強さまで証明したことにはならないんだ。
もっと詳しく知りたい人へ

障害注入テストと何が違う?

障害注入は実験に条件を与える方法の一つ。カオスエンジニアリングでは、測定できる正常状態、仮説、現実的な変化、比較と影響範囲の管理を合わせて扱う。故障だけでなく、アクセス急増のような変化も対象になる。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「カオスエンジニアリング」って出てきたら「障害時のシステムの振る舞いを、制御した実験で確かめる手法」と思えばだいたいOK!
📖 おまけ:英語の意味
「Chaos Engineering」 = 混乱を扱うエンジニアリング
💬 分散システムで予測しにくい障害の影響を、実験で理解する考え方だよ。NetflixのChaos Monkeyは、そのためのツールの一例なんだ

参考資料

← 用語集にもどる