BT

BloombergがKubernetes用のオープンソースのカオステストツール“PowerfulSeal”をリリース

| 作者: Daniel Bryant フォローする 634 人のフォロワー , 翻訳者 h_yoshida フォローする 1 人のフォロワー 投稿日 2018年2月27日. 推定読書時間: 4 分 |

原文(投稿日:2018/01/25)へのリンク

読者の皆様へ: あなたのリクエストに応じて、大切な情報を見逃すことなく、ノイズを減らす機能を開発しました。お気に入りのトピックを選択して、メールとウェブで通知をもらいましょう

米国オースチンで開催された先日のKubeCon North Americaカンファレンスで、Bloombergは、オープンソースの“PowerfulSeal”ツールを新たに公開した。対象となるポッドと基盤のノードインフラストラクチャを停止させることで、Kubernetesクラスタ内でのカオステストを可能にするツールだ。コンテナオーケストレーションプラットフォームのKubernetesは、マイクロサービスベースの(分散)アプリケーションをデプロイするための一般的な選択肢であり、カオスエンジニアリングに基づくプラクティスは、レジリエントなシステム構築の一助として期待される。

PowerfulSealはカオスエンジニアリングの原則に従って、悪名高いNetflixのChaos Monkeyにインスパイアされたソフトウェアだ。このツールを使うことで、エンジニアは“故意に障害を発生”させて、さまざまな障害モードの導入によって発生する問題を観察することが可能になる。Pythonで記述されたPowerfulSealは、現時点ではKubernetes専用で、OpenStackプラットフォームのインフラストラクチャ障害を管理する“クラウドドライバ”のみを装備しているが、他のクラウドプラットフォーム用のドライバのコントリビューションを促進するために、PythonのAbstractDriverクラスが参照されている。

PowefulSealは、対話(interactive)モードと自律(autonomous)モードという2つのモードで動作する。

  • 対話モードでは、クラスタのコンポーネントを検出し、手動で障害を発生させて、どのうように動作するかを確認することができる。ノードポッドデプロイメントネームスペースに関する操作が可能である。
  • 自律モードでは、任意の数のポッドとノード障害シナリオを記述したポリシファイルが読み込まれて、指定された“障害を発生”する。それぞれのシナリオにはマッチの一覧、フィルタ、クラスタ上で実行するアクションを記述する。

何も設定していない(障害を発生させない)最小のJSONポリシファイルを下記に示す — 発生させる障害は、JSONドキュメントの’nodeSenarios’と’podScenarios’のセクションに指定する。

config:
  minSecondsBetweenRuns: 47
  maxSecondsBetweenRuns: 452

nodeScenarios: []
podScenarios: []

それぞれのシナリオは、マッチ(match)とフィルタ(filter) -- 対象ノード名、IPアドレス、Kuberneteネームスペース、ラベル、日付時刻 -- とアクション -- 開始、停止、終了(kill) -- で構成可能だ。包括的なJSONスキーマを使用して、ポリシファイルを検証することができる。プロジェクトのテスト内には、使用可能なオプションのほとんどを網羅したポリシファイルの例が提供されている。

PowerfulSealはpip経由でインストール可能で、コマンドラインツールがKubernetesクラスタに対して次のように初期化され、構成される。

  • Kubernetesコンフィグファイルを指定して、ターゲットとなるKubernetesクラスタをPowerfulSealに指示する。
  • 適切なクラウドドライバと資格情報を指定して、基盤となるクラウドIaaSプラットフォームをPowerfulSealに指示する。
  • PowerfulSealがノードにSSH接続してコマンドを実行できるようにする。
  • 必要なポリシファイルを作成して、PowerfulSealにロードする。

カオスとレジリエンスに関するエンジニアリングの話題は、昨年から多くの関心を集めるようになっており、この分野での最初のツールとして、例えばGremlinなどが現れている。このような状況に対して、この分野での思想的リーダの一部 -- Adaptive Capacity Labsの共同創設者であるJohn Alspaw氏など -- からは、ツーリングよりも事実として重要なレジリエンスエンジニアリングの人間的側面を忘れてはならない、という警告がなされている。

Gremlin IncのCEOであるKolton Andrus氏もまた、ツーリングだけでは不十分だと述べた上で、訓練と“ゲームデー(game days)”の実施によって、エンジニアに障害への対応方法を教育することの必要性を主張する(氏は先日のInfoQポッドキャストでもこの問題を詳説している)。NetflixのシニアカオスエンジニアであるNora Jones氏も、先日のInfoQポッドキャストで、カオスエンジニアリングのプラクティスの確立と向上に関する自身の意見を述べている。

PowerfulSealに関する詳しい情報と対話型のデモが、プロジェクトのGitHub READMEにある。また、KubeConでの講演“Testing Distributed Software on Kubernetes with PowerfulSeal”のビデオが、CNCF YouTubeチャネルで公開されている。

 
 

この記事を評価

採用ステージ
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

特集コンテンツ一覧

ASP.NET Core - シンプルの力

Chris Klug 2018年6月4日 午前3時26分

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT