Pedia

カオスエンジニアリング

かおすえんじにありんぐ

English: Chaos Engineering

意味

カオスエンジニアリングとは、本番稼働中の分散システムに対して、意図的にサーバーダウンや通信遅延などの障害(カオス)を注入し、システムが予期せぬ事態に耐えられるかという回復力(レジリエンス)を検証・強化する手法。

概要

分散システムにおいて、本番環境であえて疑似的な障害(サーバーを落とす、通信を遅らせるなど)を発生させることで、システムの弱点を見つけ出し、耐障害性を高める取り組み。 「壊れないように祈る」のではなく、「実際に壊してみることで、壊れない仕組みを作る」という逆転の発想です。

Chaos Monkey

動画配信サービスのNetflixが開発したツールが有名です。AWS上のサーバーをランダムにシャットダウンさせるプログラムで、「訓練されたサルがデータセンターで暴れ回っても、サービスが止まらないか?」を確認するために作られました。

原則

  1. 仮説を立てる: 「このDBが落ちても、キャッシュが効いてトップページは表示されるはずだ」。
  2. 実験する: 実際に落としてみる(本番環境でやるのが理想)。
  3. 検証する: 仮説通りだったか?想定外のエラーが出なかったか?

これにより、大規模災害などが起きても、システムが自律的に回復できる力(レジリエンス)を養います。

タグ

TOP / 検索 Amazonで探す