BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Gremlinが"Resilience as a Service"のSaaSプラットフォームをリリース

Gremlinが"Resilience as a Service"のSaaSプラットフォームをリリース

原文(投稿日:2017/12/19)へのリンク

読者の皆様へ: 皆様からの依頼を受け、重要な情報を維持したままノイズを減らす機能を開発しました。興味のあるトピックを選択しメールとウェブの通知を受け取りましょう

Gremlin IncがGremlinをリリースした。これは"resilience as a service"を提供するSaaSベースのプラットフォームであり、企業が"わざとおかしなことをする"のを助け、カオスな実験をできるようにすることで、アプリケーションにダウンタイムが発生しないようにすることを支援する。Gremlinを使うと管理されたインフラにリソースやネットワークや状態の障害を注入して、エンジニアがその状況で何か起きるかを観察できる。また、Undoボタンもあり、おかしくなったら自動的にクリーンアップできる。

昨年からカオスエンジニアリングの概念とレジリエンステストが徐々に人気になっている。パイオニアであるNetflixはカオスエンジニアリングについて以前から言及している。NetflixのChaos Monkey(またSimian Army)は比較的メインストリームのツールであり、最近の多くのカンファレンスのプレゼンテーションカオスについて言及している。しかし、この技術を使うにはインフラと運用技術に高い水準が必要になる。また、実験を設計し実行する能力や制御しながら障害のシナリオを調整するためのリソースも必要だ。プロダクション環境でのカオスエンジニアリングは単に障害を起こすだけでは駄目なのだ。

GremlinプラットフォームはウェブベースのGUIを提供しGremlinデーモン(エージェント)がインストールされているインスタンスでカオス実験を実行、管理できる。このデーモンはDebianとRPMパッケージ経由でLinuxにインストールできる。また、Dockerインストールのオプションもある。

Gremlin chaos as a service application UI

このウェブUIはインフラに対して、制御されたかたちで障害の原因となる"攻撃"を実行することができる。以下のような攻撃だ。

  • Resource Gremlins
    • CPU: ひとつ以上のCPUコアに対して高負荷をかける。
    • メモリ: RAMの一定領域を確保する。
    • IO: ハードディスクのI/Oデバイスに対して読み取り/書き込みを行う。
    • ディスク: 一定の割合になるまでファイルをディスクに書き込む。
  • Network Gremlins
    • ブラックホール: すべてのネットワークトラフィックをドロップする。
    • 遅延: 外向きのネットワークトラフィックに遅延を注入する。
    • パケットロス: 外向きのネットワークトラフィックにでパケットロスを誘発させる。
    • DNS: DNSへのアクセスをブロックする。
  • State Gremlins
    • シャットダウン: ホストのオペレーティングシステムを再起動したり停止したりする。ひとつ以上のクラスタマシンを失った場合、システムがどのように振る舞うのかをテストすることができる。
    • タイムトラベル: ホストのシステム時間を変えてしまう。夏時間への調整と時間に関連するイベントをシュミレートできる。
    • プロセス殺し: 特定のプロセスを殺す。アプリケーションやその依存がクラッシュするのをシュミレーションできる。

攻撃はアドホックに実行できる。プログラムから実行することもスケジューリングすることも可能だ。特定の日に特定の時間窓で攻撃を実行するようにスケジュールすることもできる。何かおかしくなったときのために、'undo'ボタンでクリーンアップすることも可能だ。セキュリティも"最初から考慮されている"。最小限の許可、多要素認証、監査、ロールベースのアクセス制御(RBAC)などだ。

Gremlinの価値提案の中核は、攻撃によって引き起こされる障害の中でシステムがどのように振る舞うのかを制御しながら観察できるということだ。Gremlinは自動的なカナリアリリース(例えば、Barometerを提供するような)を提供するものではない。また、障害検知(LightStepが提供するような)を提供するものではない。その代わりに、包括的な障害の原因を提供し、実験を設計して複雑な分散システムが障害発生時にどのように振る舞うかを観察することができる。また、Gremlinは配置のパイプラインやネットワークインフラを変更する必要はない。したがって、多くのインフラや配置のパラダイム(ベアメタルやクラウド/IaaS、コンテナなど)で簡単に使える。

InfoQはGremlin Incの創業者でありCEOであるKolton Andrus氏に、ソフトウェアシステムにおけるカオスエンジニアリングの役割やレジリエンス・テストの価値、Gremlinの将来について話を聞いた。

InfoQ: 簡単に自己紹介をお願いします。カオスエンジニアリングに対するバックグランドも簡単に説明してください。

Andrus: Kolton Andrusです。GremlinのCEOであり共同創業者です。私たちはカオスエンジニアリングを通じてより回復力のあるシステムの開発を目指しています。failure-as-a-serviceを提供しています。

私はAmazonとNetflixでコールリーダーとして働いていました。この職種の役割は、重圧のかかるインシデントを管理、解決し、サービスを提供し続けることです。私たちは皆、深夜に起こされて問題に対処することの辛さを身を以て味わっていました。

この10年でカオスエンジニアリングが根付き、多くの素晴らしいオープンソースツールがこの分野を推し進めるのを支援しましたが、ニーズはまだあります。Gremlinはこれらの問題をすでに解決しており、エンジニアが安全にセキュアに実験を行ったり、自動化したり、ツールを使ってシンプルにかつ、簡単にできるようにしたりするのに必要なことを理解しています。

InfoQ: カオスエンジニアリンングは今、"ホットトピック"になっています。多くのブログ記事が書かれ、Nora JonesのAWS re:inventのキーノートにも現れました。しかし、決して新しいトピックではありません(NetflixもAWSも今まで何度か言及していました)。なぜ、今ホットトピックになっているのでしょうか。

Andrus: AWSとNetflixは早くからニーズがありました。そして、大企業、中小企業に関わらず分散システムの複雑さに影響を受けるようになってきたのです。今が変曲点なのです。分散システムを開発するための新しい方法はより複雑になり、何がいつ障害を起こすのか知るのは難しいです。昔は、ソフトウェアは制御された、ベアメタルの環境で少ない変数を与えられ動いていました。新しい世界では、ソフトウェアは制御できないインフラとサービスに依存しています。

クラウドコンピューティングの普及とマイクロサービスというトレンドが今までにないやり方でアプリケーションを開発、配置、運用できるインフラを作り出しました。しかし、複雑さのギャップも生み出されたのです。システムはエンジニアにとっては複雑すぎて理解できないものになり、障害は見えなくなりました。

InfoQ: カオスエンジニアリングやレジリエンス・テストの最大の利点は何でしょうか。このふたつを実施できるのはインフラチームがある大規模な組織にだけでしょうか。

Andrus: 多くの企業が、障害が起きたときに反応する、という運用をしています。多くの人が気づいていないのは、これらの障害を大惨事になる前に特定し排除できるということです。時間を節約し、エンジニアリングチームの頭痛を排除し、利益を失わないようにします。サービスやシステムを支えるチームは全て恩恵を受けます。運用負荷が下がり、ダウンタイムが少なくなるからです。

カオスエンジニアリングは、しっかりと考えられた計画された実験によって、システムに障害を注入し、未知の障害を検知し修正します。究極的には強く回復力のあるシステムを構築します。インフルエンサの予防摂取みたいなものです。

従来は、カオスエンジニアリングはランダムにシステムに障害を起こすことだと考えられていました。しかし、私は、通常の試験の一部として、高度に制御され自動化された場合に、もっとも効果を発揮すると思います。ベンチマークを作って優劣を測り、システムが継続的に改善することができます。

InfoQ: カオスエンジニアリングを実践しようとする企業が直面する最大の課題は何でしょうか。

Andrus: 教育です。訓練としてのカオスエンジニアリングはエンジニアリングコミュニティで議論のトピックになり始めたばかりです。多くの人は何から始めてよいのかわかりません。一方、幹部チームは多くの障害が回避可能であることを認識していません。この考えは私たちが事前に修正するべきものです。

私たちはGremlinを立ち上げたばかりで、2018年は教育に注力したいと思っています。私たちの考えに賛同してくれ、自分たちの利益にもなると考えてくれた企業とパートナーシップを組んだのはそのためです。

ひとつのやり方としてGamedayを使う方法があります。正式な契約を交して顧客になってもらう前に、先方のエンジニアリングチームと一緒にGremlinをテスト実行して攻撃をしてみる、というやり方です。これによって、彼らはシステムが障害に対してどう反応するかを見ることができ、ツールの価値も理解できます。

InfoQ: Gremlinはどの程度使われていますか。成功事例を教えてください。

Andrus: 先ほど話した通り、私たちはまだ創業したばかりですが、引き合いは強いです。すでに12の顧客がいます。Expedia、Twilio、Confluent、Remindといった企業が顧客になっています。

ConfluentのチームとGamedayをやりました。彼らは以前にこれを手作業でやったことがあり、その時は丸一日かかりました。私たちは2時間ですべてのシナリオを実行できました。TwilioはGremlinを使って実験を自動化することについてブログに書いています。

InfoQ: Gremlinのロードマップを教えてください。カオスエンジニアリングの未来はどうなるでしょうか。

Andrus: カオスエンジニアリングはより意識され、導入が進みます。私には、すべての企業が予算を確保し、大学のコンピュータサイエンス部のカリキュラムに入るという世界が見えます。いくつかの学校はすでにカリキュラムに入れています。これは始まりに過ぎません。

InfoQ: インタビューを受けていただきありがとうございました。InfoQの読者に伝えたいことはありますか。

Andrus: 私たちは、すべての人にとってインターネットをより信頼できるものにする、ということに心を踊らせています。私たちは皆、インターネットに依存しています。インターネットがおかしくなったら、生活に大きな影響が出るでしょう。業界を支援し、顧客の成功を支援することで、社会全体に影響を与えることができると考えています。

Gremlin Incは最近、シリーズAラウンドの資金調達を実施し、750万ドルを調達した。Expedia、Twilio、Confluentを顧客として抱えている。Gremlinの詳しい情報はホームページを参照。Chaos Communityが運営するサイトにはカオスエンジニアリングの原則についてさらに詳しい情報がある。

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

BT