正常稼働中の本番システム上で、あえて障害を発生させて、自動回復システムの動作を確認し、より高いレジリエンス(障害からの復旧力)を持つシステムを構築するための手法です。
この手法では、故意に本番システムにストレスをかけ、それがどのように動作するかを観察します。カオスエンジニアリングを使用することで、予期せぬ障害が発生した場合でも、システムが回復することができます。
あるいは、明かな異常値だけでなく、本番で混入しそうなエラー値を入力することでシステムに予期せぬ障害が発生するかを試すこともあります。マイクロサービスによる分散化が進みシステム全体の挙動が複雑になればなるほど、事前にテスト環境でテストできないことにより本番でのカオスエンジニアリングの必要性が高まるのです。
カオスエンジニアリングは、特に複雑なシステムを扱う企業にとって非常に有益です。この手法を使用することで、システムの様々な部分に問題がある場合でも、それらを特定し、修正することができます。また、システムの耐久性が向上するため、障害が発生しても、システムが停止することがなくなります。
カオスエンジニアリングを組織に導入することは、組織の耐久性・耐障害性を向上するために行います。複雑性が高い世の中になり、組織の複雑性も高くなる中で、どのような障害が組織に発生するか予期できない状態においては有効です。
ゆめみも組織の人数が400名近くになり、各ギルドや各メンバーごとに自己完結した取り組みを行い、相互に連携していく中で、組織の複雑性が高くなり組織の全容を把握できる人がいなくなっているため、カオスエンジニアリングが必要となっています。
なお、Googleでも一部で組織に対してのカオスエンジニリングが行われています