解決すべき課題
NetflixはストリーミングサービスをAWS上で運用していた。そこではインスタンス障害が頻繁に起こり、業界は障害に何度も苦しめられていた。エンジニアチームは不意打ちを待つのではなく、自ら自分たちを不意打ちすることにした。
発想
本番環境を意図的に壊す。Chaos Monkeyは稼働中のAWSインスタンスをランダムに停止させるため、エンジニアは顧客に気づかれずにサービスが生き残る仕組みを構築せざるを得なくなる。
仕組み
小さなツールが各クラスタからインスタンスを1台ランダムに選び、平日の業務時間中に予告なく停止する。エンジニアは待機してサービスの反応を観察する。Netflixは2012年7月にChaos Monkeyをオープンソース化し、その後「Simian Army」にJanitor MonkeyとSecurity Monkeyを加えた。その明言されたルールは「大規模な予期せぬ障害に対する最善の防御は、頻繁に失敗すること」だった。
成果
Chaos MonkeyはNetflixのアーキテクチャにインスタンス喪失を顧客影響なしに許容することを強制し、障害訓練を日常業務に変えた。オープンソース化されたツールはTechCrunchやWiredで取り上げられ、Stack ExchangeのJeff Atwoodは自身の障害を解決したのは同じ発想だと述べ、この実践はカオスエンジニアリングという分野へと発展した。
背景
NetflixはストリーミングサービスをAWS上で運用しており、クラウドではインスタンスが故障する。ホストは落ち、ネットワークは瞬断し、ロードバランサーは誤動作する。障害が弱点を露呈するのを待つのではなく、エンジニアチームはChaos Monkeyを開発した。これは業務時間中に本番インスタンスをランダムに無効化するソフトウェアで、エンジニアは待機して見守った。
その名前は「データセンターに武器を持った野生の猿を放ち、インスタンスをランダムに撃ち落とし、ケーブルをかじらせる。その間も我々は顧客へのサービスを中断せずに提供し続ける」という発想に由来する。要点はツールそのものではなく、考え方の転換にあった。システムが毎日ランダムな攻撃に耐えなければならないなら、何も壊れないことを願うのではなく、自動復旧を構築するのだ。
2012年7月、NetflixはChaos Monkeyをオープンソース化し、そのアイデアは広がった。TechCrunchとWiredの報道により「頻繁に失敗する」は有名なエンジニアリングのモットーとなった。Stack ExchangeのJeff Atwoodは、「Chaos Monkeyが自分たちを選んだ」後に初めて障害問題を解決できたと述べた。この実践は後にカオスエンジニアリングとして体系化された。本番システムで実験を行い、乱れた状況に耐えられるという自信を築くのである。
なぜ定着したか
業務時間中のランダムで無人監視の障害は、まれで恐ろしい障害を、エンジニアが待機する日常的な訓練へと変える。
頻繁に失敗することで自動復旧の仕組みが強制され、午前3時の障害が危機ではなくなる。
オープンソース化がアイデアに勢いを与え、他の企業も実践を取り入れ、分野として確立された。
名前が概念を忘れがたくしたため、実践はこれほど速く広まった。
得られる教訓
予測できない障害を待つのではなく、日中にエンジニアが見守る中で小さな障害を誘発し、午前3時の大惨事に教えられる前に、システムとチームが回復力を学べるようにしよう。
その後
Netflixはこのアイデアを拡張し続けた。Latency Monkey、Doctor Monkey、可用性ゾーン全体を対象とするChaos Kong、そして後にChaos Automation Platformを加え、2015年には専任のカオスエンジニアリングチームを結成した。当初のSimian Armyリポジトリは2021年に廃止され、独立したツールに置き換えられたが、この実践はNetflixの枠を超えて広がった。カオスエンジニアリングは書籍、カンファレンス、商用ツール、そしてCapital Oneのような採用企業を擁する業界の分野となった。
出典をたどる
出典
- Netflix/SimianArmy — Tools for keeping your cloud operating in top form Netflix (GitHub) · github.com
- Netflix Open Sources Chaos Monkey — A Tool Designed To Cause Failure So You Can Make A Stronger Cloud TechCrunch · beta.techcrunch.com ·
- Netflix Abuses Amazon With Monkeys. Now You Can Too Wired · wired.com ·
- What is Chaos Monkey? Chaos engineering explained InfoWorld · infoworld.com ·