BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース NetflixがChaos Monkeyをオープンソースに

NetflixがChaos Monkeyをオープンソースに

ブックマーク

原文(投稿日:2012/07/31)へのリンク

 

Netflixは話題の“Chaos Monkey”をオープンソースにした。Chaos Monkeyは故意にサーバをオフラインにしてクラウド環境の耐障害性をテストするツールだ。同社はこのツールの長い間社内で利用してきたがオープンソースにして技術コミュニティが自由に使えるようにした。

Netflixが初めてChaos Monkeyの存在を明らかにしたのは、2010年12月のブログの記事だ。この記事では、大人気の動画配信サービスをAWSで運営したことから学んだことを説明している。なかでも、“障害を防ぐ最高の方法は頻繁に障害を発生させることだ”という教訓は同社が積極的に障害を発生させ、運用環境の問題点をあぶり出していることを物語っている。

我々のエンジニアがAWSで初めて構築したシステムはChaos Monkeyというものです。Chaos MonkeyはAWS上のインスタンスとサービスをランダムに停止します。正常に動作することではなく、障害状態を定期的にテストしなかったら、最も大事なときに、つまり、予想外の障害のときに正常に動作しないかもしれません。

2012年7月30日のブログ記事で、同社の技術チームはChaos Monkeyをオープンソースプロジェクトとしてリリースすると発表した。この記事で、同社はこのツールの目的と運用上の考慮点を説明している。同社によればChaos MonkeyはAWS以外のクラウドでも正常に動作し、利用者の環境で障害の条件を検出するのに使える。同社はChaos Monkeyがどのような設定で動くのか想像できないユーザが抱いている恐怖感を和らげるための各種設定を用意した。まず、Chaos Monkeyはサポートスタッフが問題に対処する準備が出来ているときに動作するよう設定できる。

デフォルトでは平日の午前9時から午後3時の間に動作します。ほとんどの場合、インスタンスがオフラインになってもアプリケーションは動作し続けるように設計していますが、動作しなかった場合、問題を解決できる人がいて、発生した問題から学べるようにしておきたいです。この点を考慮して、Chaos Monkeyは限られた時間内で動作することで、エンジニアが問題に対処できるようになっています。

また、ユーザはChaos Monkeyを新しいアプリケーションに対してどの程度積極的に動作させるのかを決めることができる。同社はChaos Monkeyを使ってすべてのアプリケーションのテストをしている(アプリケーションの所有者が明示的にテストを拒否しない限り)が、より控えめな使い方もできる。また、特定のアプリケーションに対してのみ利用したり、インスタンスが停止する可能性が低い環境を想定したテストもできる。

すべてのアプリケーションがインスタンスのオフライン化に対処できるわけではありません。バックアップを利用して人間が手動で回復する場合もあるでしょう。エンジニアはプロセスを簡単に高速にして最終的には自動化するのが理想的です。このようなアプリケーションにはChaos Monkeyのオプトアウト機能が役に立ちます。また、Chaos Monkeyにはチューニング可能な"確率"があり、この確率を変更することでインスタンス停止の発生確率を制御できます。

Chaos Monkeyがオープンソースになる少し前にプロジェクトAsgardがオープンソースになっている。同社の別のブログ記事によれば、AsgardはAWSの環境と配置を行うウェブインターフェイスだ。AWSマネジメントコンソールはすべての機能を備えているものの、“アプリケーション”という概念で作られていない。同社はこのギャップを埋めるためにAsgardを利用した。

サービス指向アーキテクチャ(Netflixが持っているような)上には多くのクラウドオブジェクトがあります。ユーザにとって重要なのは彼らのアプリケーションに関連するオブジェクトをすべて見つけられることです。AsgardはSimpleDB上のアプリケーションレジストリと命名規約を利用して多くのクラウドオブジェクトをひとつのアプリケーションと結びつけます。

さらに、AsgardはAWS Auto Scaling Groupsを“クラスタ”と呼ばれるオブジェクトに集約する。このクラスタは配置に失敗したときに簡単にロールバックできる。アプリケーションやクラスタは自動配置タスクと共に、AWSの管理を単純化し人的ミスを少なくするように設計されている。

Chaos MonkeyもAsgardも、積極的にオープンソースとしてソフトウエアを公開しより広いコミュニティを支援するという同社の指針の一環として公開された。Github上で同社のすべてのオープンソースプロジェクト確認できる。

 

この記事に星をつける

おすすめ度
スタイル

BT