見出し画像

Netflixが始めたカオスエンジニアリング

本記事はGremlin社が公開しているカオスエンジニアリングの年次報告(State of Chaos Engineering)を紹介する記事の解説のために書いたものです。すでにカオスエンジニアリングが何かをおおよそ理解されている方は、こちらをどうぞ。

カオスエンジニアリング(Chaos engineering)は、可用性(耐障害性)を高めるためにNetflixが紹介したプラクティスです。顧客に提供している実稼働サービスを構成するサーバの一部を意図的に停止させたり性能劣化を起こすことで、本当の障害が起きたとしても問題が起こらないようにすることを目指すプラクティスです。

実稼働サービスの一部に意図的に障害を起こすのは、勇気が必要です。対策が十分でなければ実際にサービスが停止するかもしれないからです。また、そうでなくても精神的な抵抗があります。しかし、適切な冗長化や障害復帰の自動化が実現されていれば、問題なくサービス提供を続けられると考えることもできます。

Spinkerというツールも公開されており、自分のサービスでもカオスエンジニアリングを実践することもできるようになっています。冒頭のState of Chaos Engineeringでも、実際に使うサービスが増えていることを報告しています。

カオスエンジニアリングに似た考え方でバグインジェクションがあります。開発中のソフトウェアに意図的にバグを混入させておいて、テストをはじめ品質を確認する開発活動でそれが見つかるかどうかを確認します。バグインジェクションでも混入したバグを修正しないままリリースしてしまったことがあるという話を聞いたことがあります。

Chaosをカオスとするかケイオスとするか迷ったのですが、Google検索すると「ケイオスエンジニアリング」で22万件程度の検索結果、「カオスエンジニアリング」で75万件程度の検索結果があると表示されます(2021年2月)。多いほうを選びました。

この記事が気に入ったらサポートをしてみませんか?