[https://chaostoolkit.org](https://chaostoolkit.org/)
- 公式ドキュメントはリンク切れが多い
2018年にChaosIQからリリース。
- Chaos Toolkitは,あらかじめ定義された実験を選択するのではなく,自分で実験を定義できる。
- 各実験はActionsとProbesで構成されている。Actionsは対象システムにコマンドを実行し、Probesは実行されたコマンドを期待値と比較する。例えば,WebサーバのCPUを消費するためにstress-ngを呼び出すActionを作成し,Probeを使ってWebサイトが一定時間内に応答するかどうかを調べることができる。
- Chaos Toolkitは、さまざまなプラットフォームやサービスと対話するためのドライバも提供する。例えば,AWSドライバを使って,AWSサービスを実験したり,ToxiproxyやIstioのような他のChaos Engineeringツールを管理したりできる。また,Chaos Toolkitは,あなたの環境にあるサービスを自動的に発見し,それに合わせた実験を推奨できる。
実験は、JSONファイルで定義され、3つのステージに分かれている。
1. steady-state-hypothesisは,システムの現在の状態を測定し,実験に十分な健全性があるかどうかを判断する。
2. methodは、実験を行うための手順を含んでいる。
3. rollbackは、システムを定常状態に戻する。 各ステージには、複数のActionとProbesを含められる。例えば、故障したKubernetes Podを再起動する能力をテストしたい場合、次のような実験を行える。
Pros:
- 実験に対する完全な制御
- サービスディスカバリと実験の推薦
- ビルドインのロギング、capabilitiesのレポート。
Cons:
- ネイティブのスケジューリング機能
- 複数システムへアタックする簡単な方法がない
- 実験の作成がたいへん
- ポータビリティが限られている。