2022年10月11日

DevOps

カオスエンジニアリングのトップツール

新しいカオスエンジニアリングツールをお探しですか?私たちは、カオスツールキットを構築する際に考慮すべき、トップクラスのオープンソースおよび商用のカオスエンジニアリンングツールを評価しました。

62d0eefb9db3dd0716fc7634_05.-Banner_Blog-header-p-800.png

企業は、さまざまな理由から、従来のデプロイ方法に対してクラウドネイティブデプロイメント(Kubernetesをベースとしたもの)を採用するようになってきていますが、そこで必要なことのうちの1つは、デプロイ速度を向上させることです。サイト信頼性エンジニア(SRE)と開発チームが現在直面している課題は、クラウドネイティブなシステム群が従来のデプロイメントよりも多くの方法で故障する可能性があることです。

 

計画外のダウンタイムは、ビジネスの財務、ブランド、風評に大きな影響を与える可能性があります。予期せぬダウンタイムがもたらすコストと、システムレベルの複雑化により、クラウドネイティブなシステム群のテスト方法を進化させる必要性が高まっています。カオスエンジニアリングは、システムレベルのソフトウェアテストが弱点を明らかにし、チームがより信頼性の高いシステムを提供できるよう支援するメカニズムを提供します。

 

今日の非常に複雑なソフトウェアシステムは、潜在的な弱点や不具合をテストする必要があります。カオスエンジニアリングは、その名の通り、ソフトウェアがシステム機能に影響を与えることなく故障を処理する能力をテストするプロセスのことです。ソフトウェアの回復力をテストすることで、開発チームは障害を特定し、積極的に対処することができます。

 

カオステストは、ソフトウェアのインフラを積極的に実験する手段として実施することができます。失敗を誘発することで、システムが乱流状態や停電を克服し緩和することができれば、組織の信頼を向上させることができるのです。

 

あなたのシステムは、ネットワーク遅延やインフラの性能問題を克服するために必要な現実的な能力を持っていますか?システム能力のテストは、ソフトウェアがどのような問題にも耐えうることを保証するために不可欠です。この原則を念頭に置き、現在市販されているトップクラスのカオスエンジニアリングツールをいくつかレビューしてみました。

なぜカオスエンジニアリングツールを使うのか?

カオスエンジニアリングツールは、システムに対する信頼性を確立するために使用される従来のテスト方法に対する比較的新しいアプローチです。ソフトウェアプラットフォームの障害は避けられないので、弱点を突き止め、業務に悪影響が出る前に修正することが重要です。

 

Amazon、Netflix、Microsoftなどのトップクラスのハイテク企業は、カオスエンジニアリングを利用して、内部のシステム動作と欠陥の理解を深めています。この手法の原理は、さまざまな仮説と性能に基づく指標を通じて、システムアーキテクチャをテストするという考え方が前提となっています。仮説の展開とカオス実験の成功により、カオスエンジニアリングのツールは、インフラストラクチャーの障害や応答性のないシステムを発見するためのロードマップを提供することができます。

 

カオスエンジニアリングは、これらの各ステップを含む一般的なガイドラインに従います。

 

  • 定常状態の仮説を作る:発生しうるシステムの問題を考える。故障注入カオスのテストプロトコルを設定し、さまざまな潜在的結果を予測する。
  • 実世界のシナリオをシミュレートする:システムがさまざまな変数にどのように反応するかを判断するための一連のテストを作成する。実験グループを使用して、さまざまな条件や要因をテストする。
  • システムメトリクスをレビューする:システム性能とメトリクスに関連するシステム成果をレビューする。仮説に対する失敗率を決定し、繰り返し発生する問題を修正し、解決するための道筋を考える。
  • 必要に応じて変更を実施する:カオス実験が終了した時点で、どのような行動をとるのがベストなのかを確認することができる。問題があれば修正し、システムがほとんどエラーなく動作するようになるまで、このプロセスを繰り返す。
  • カオス実験を自動化する:システムが障害モードに強いことが確認できたら、次のステップとして、カオス実験を作成し、ソフトウェアデリバリーパイプラインで自動化し、環境で発生する動的なシステム構成の変更を通じて継続的に検証を行うことができるようにする。実験が失敗した場合は、通知されるか、または失敗を導入した変更のロールバックを自動化することができる。既知の障害モードが原因でシステムが停止することはなく、それに対して保護される。

 

効果的で充実した実践を行うことは、組織の回復力をテストし、潜在的な障害許容度を発見するのに役立ちます。ここでは、システムを最適化するために利用できる、一般的なカオスエンジニアリングツールをいくつか紹介します。

Chaos Mesh

長所

  • 使いやすい機能性と自動化
  • ユーザーインターフェースはさまざまな設定に対応
  • 実験の一時停止、再開が自由自在

短所

  • 攻撃をスケジュール化することができないため、実験が無制限に実行される
  • ノードレベルの攻撃は実行できない
  • ダッシュボード内のユーザーアクセスを制御できないため、セキュリティーリスクが高まる

 

Chaos Meshは、オープンソースのクラウドネイティブツールです。Chaos Meshは、さまざまな障害シミュレーションにより、開発、テスト工程、生産段階のあらゆる部分で発生する可能性のあるシステムの異常を判断することに役立ちます。

 

Chaos Meshは、Chaos Dashboardと呼ばれるウェブユーザーインターフェースで作成されたオープンソースのカオスツールで、DevOpsワークフローに追加することで、潜在的な弱点やタイムアウトの領域を特定することができます。Chaos Meshは、耐障害性を確保するために、Kubernetes環境内のカオス実験を利用しています。分散システム内の障害シミュレーションに関連するさまざまなタイプのシナリオを利用できるのです。

 

Chaos Meshは、ネットワーク遅延、システム時間操作、リソース使用率などをテストする攻撃を展開することができます。Chaos Dashboardは、設定された時間枠内であらゆる形式の実験を変更し、管理するために使できます。

 

主な特徴

 

  • Chaos Meshは、Apache APISIXやRabbitMQなどの視認性の高いディストリビューションシステムのテストに使用される完全自動化とグラフィック機能をサポートしたKubernetesベースのインターフェイスを使用します。
  • Chaos Meshの技術は、イベントドリブンの障害シミュレーションを使用して、さまざまなシナリオをテストすることができます。
  • Chaos Meshは、さまざまな変数やステータスチェックを使用して、プラットフォーム上で実験をデザインする機能を提供します。

 

コスト

 

オープンソースのカオスツールであるChaos Meshは無料で使用でき、商用ライセンスは必要ありません。

 

Chaos Meshは使ったほうがいいのでしょうか?

 

Chaos Meshは、Kubernetesで自動化された実験を設計・管理するために使用できるオープンソースの技術を提供しています。ただし、この技術にはある種の制限があることに注意しましょう。クラウドの運用は複雑なため、障害の予測は面倒な作業になる可能性があります。信頼性の低い機能や障害は、評価の低下や消費者の信頼の喪失につながる可能性があります。

Chaos Monkey

長所

  • 設定可能なテクノロジーにより、攻撃のモニタリングやスケジューリングが容易に可能
  • オープンソースソフトウェアのため、ライセンス費用が不要
  • 豊富な開発実績

短所

  • 1種類の実験しか行えない
  • 攻撃はランダムに行われ、ユーザーがコントロールできる範囲は限定されている
  • カスタムコードの作成が必要

 

NetflixのChaos Monkeyは、もともとNetflixの開発者によって作られたオープンソースのカオスエンジニアリングツールです。AWSクラウドに移行した後、システムの信頼性と回復力をテストするために開発されました。このソフトウェアは、予測不可能な攻撃を継続的に実施することで機能します。Chaos Monkeyは、1つまたは複数の仮想マシンインスタンスを終了させるという基本中の基本を採用しています。

 

Chaos Monkeyの設定の可変性によって、簡単にスケジューリングでき、綿密な監視が可能です。この技術は簡単に再現できますが、ユーザーが攻撃の余波への備えをしていない場合、頭痛の種になる可能性があります。導入前に障害発生を確認することは可能ですが、Goのカスタムコードを作成・編集できることが条件となります。

 

主な特徴

 

Chaos Monkeyは、最初のカオスエンジニアリングツールの1つであり、このムーブメントの始まりを支援する最初のオープンソース技術です。その後、Netflix は、Simian Army と総称されるフォールト インジェクション ツールを追加開発しました。

Chaos Monkeyの主な機能は以下の通りです。

 

  • システムのボトルネックを検出し、本番環境の中断を制限できます。
  • アプリケーションの回復力と可用性をインフラレベルでテストすることができます。
  • テストは特定の時間帯にスケジュールすることができます。
  • 簡単なモニタリングが可能です。

 

コスト

 

オープンソースソフトウェアであるため、Chaos Monkeyは商用ライセンスなしで自由に使用することができます。

 

Chaos Monkeyは使うべき?

 

Chaos Monkeyはカオスエンジニアリングツールとして有名です。オープンソースコミュニティに革命をもたらしたかもしれませんが、その現代的な応用は、今日、あまり実用的ではありません。Chaos Monkeyはある程度有用ですが、ユーザーはその限界と困難な展開機能を考慮する必要があります。

Gremlin

長所

  • 使いやすいUIにより、さまざまな攻撃やテストを行い、チームをオンボードにすることが可能
  • 手動で統合を作成するためのAPIによるサポート
  • あらゆる異なる要素に基づいて信頼性を評価

短所

  • ソフトウェアがカスタマイズできない
  • 実験用JSONファイルをソフトウェアデリバリーパイプラインに統合するのは難しい 
  • 最小限のレポート機能

 

Gremlinは、ウェブベースの信頼性を向上させるために設計された、初のホスト型カオスエンジニアリングプラットフォームです。Software-as-a-Service (SaaS)として提供されるGremlinは、複数の攻撃タイプを使用してシステムの回復力をテストすることができます。ユーザーは、どのタイプの攻撃が最適な結果をもたらすかを判断する手段として、システムの入力を提供します。このテストは、インフラストラクチャーの包括的な評価を容易にする手段として、相互に関連して実行することができます。

 

主な特徴

 

Gremlinの特徴は以下の通りです。

 

  • 正確かつ制御された方法で障害をコントロールする
  • マルチレベルのシステムアタックを含むカスタムシナリオ
  • メモリーリーク、レイテンシーインジェクション、ディスクフィルアップなどのテストプロセス
  • GameDay機能
  • 事前に定義されたテストに基づく信頼性スコア

 

コスト

 

Gremlinの価格設定は、エージェント単位の価格設定から、チームが必要とするテスト頻度をサポートするターゲット単位の攻撃まで、長年にわたって変動してきました。

 

Gremlinを使うべきですか?

 

世界初のマネージド・エンタープライズ・カオス・エンジニアリング技術として、Gremlinはユーザーに数十の攻撃ベクトルを起動し、攻撃を停止およびロールバックし、システムの信頼性を向上させる能力を提供します。持続可能で信頼性の高いインターネットを構築することを使命として設計されたGremlinは、ソフトウェアの弱点をピンポイントで特定し、収益損失とシステム上の悪影響を最小限に抑えます。

Harness Chaos Engineering Powered by Litmus

長所

  • Enterprise ChaosHubで提供される、複数の信頼性故障モードをカバーする多様な実験機能
  • 実験の自動化を可能にするカオスプローブと、システムの自動復旧による安全性と中止の制御を提供
  • 環境の変化に基づいてトリガーされる、イベントドリブンのカオス実験を通じたCI/CDやGitOpsの自動化により、信頼性を継続的に検証することが可能

 

Harness Chaos Engineeringは、エンジニアリングチームと信頼性チームの双方に向けたソリューションです。このツールは、DevOpsチームとSREチームが協力してカオステストを実行し、デプロイメントにおける信頼性の問題を特定することを可能にします。これらのシナリオは、従来のユニットテスト、インテグレーションテスト、システムテストの枠を超え、本番環境における障害をより忠実に再現します。

 

チームは、定義された障害シナリオの下で、システムがどのように動作するかのインサイトを得ることで、アプリケーションやインフラストラクチャーに存在する弱点を把握し、コストのかかるダウンタイムを防止するための信頼性を積極的に作り出せるようになります。Harness Chaos Engineeringは、企業がソフトウェアの信頼性に関するベストプラクティスを導入し、スケールし、自動化することを支援するために設立されました。

 

このHarnessが提供する機能により、積極的なアプリケーション信頼性テストアプローチが可能になり、障害が本番環境に侵入するリスクを低減し、障害に伴うアプリケーションのダウンタイムを大幅に削減することができます。

 

主な特徴

 

Harness Chaos Engineeringは、SREや開発者がカオス実験を簡単に実行できるように作成されました。クラウドネイティブなシステム向けに設計されており、CI/CDパイプラインに簡単に追加することができ、本番環境をダウンタイムから守るための継続的な信頼性検証を行うことができます。

 

Harness Chaos Engineeringの特長は以下の通りです。

 

  • ソフトウェアデリバリーパイプラインでカオスエンジニアリング実験を自動的にオーケストレーションする機能
  • 複数のクラウドプロバイダーやプラットフォームをカバーする先進の実験カタログ、Enterprise ChaosHub
  • セルフホスティング、オンプレミス、またはエアギャップによるデプロイメントを使用してカオスエンジニアリングを安全に実装するプライベートデプロイメント
  • デプロイの自動ロールバック、サービスレベル目標、機能フラグ、クラウドコスト管理を提供する他のモジュールと自動的に統合できる、完全なSaaSプラットフォーム
  • GitOpsとイベントトリガーのカオステストによる企業全体へのロールアウト
  • 改善点を測定するだけでなく、実験分析と結果を自動化するためのレジリエンス・スコア
  • アプリケーションパフォーマンスのモニタリング、およびオブザーバビリティツールとのカスタム統合
  • エンタープライズ・ダッシュボード、分析、レポートにより、主要な測定基準の整合性を確保します。
  • GameDay機能により、複数の実験が簡単に実行できるように整理された、繰り返し可能なイベントをチームで実行可能

 

コスト

 

Harness Chaos Engineeringは、オープンソースツールLitmusChaosを開発したチームによって提供される、完全なエンタープライズサポートと実行された実験に基づく、分かりやすい価格設定となっています。

 

Harness Chaos Engineeringは使うべき?

 

Harness Chaos Engineeringは、開発者が多くのクラウドプロバイダーやプラットフォームの信頼性をテストできるように、多数のカオス実験を用意しています。プライベートデプロイメントにより、セキュリティーを通じて簡単に導入・承認できるツールです。エンタープライズグレードの機能と専門的なサポートにより、企業はこの実践を長期間にわたってチームごとに行うのではなく、即座にスケールすることができます。

LitmusChaos

長所

  • さまざまな実験を含む一元的なリポジトリーが利用可能
  • 定期的なシステムの健全性チェック
  • 自動的なエラー検出と回復力のスコア

短所

  • LitmusChaosの利用開始は、ユーザーのバックグラウンドによっては困難な場合がある
  • 煩雑な管理タスクでは、名前空間ごとにサービスアカウントとアノテーションをセットアップする必要がある
  • パーミッションの管理・追跡が難しい

 

LitmusChaosは、クラウドネイティブなインフラやアプリケーションのために設計されたオープンソースのプラットフォームです。制御されたカオステストを実行することによりシステム欠陥や停止の特定し、チームを支援します。LitmusChaosは、クラウドネイティブの戦略を用いて、カオスの実践を綿密に制御・管理します。

 

開発者はLitmusChaosを、Kubernetes内でカオスを作成、促進、分析するためのツールセットとして使用します。LitmusChaosにより、開発者はカオス実験を開発し、エラーを発見し、本格的な本番環境に到達する前に修正することができます。LitmusChaosの技術により、ユーザーは将来の使用に備える手段として、さまざまな実験をKubernetesクラスターにデプロイすることができます。

 

主な特徴

 

LitmusChaosは、Kubernetes内で使用されるオープンソースツールとして作成されました。Kubernetesのバグや不備をピンポイントで指摘するために設計されています。

 

Litmusの特徴は以下の通りです。

 

  • カオステストと機能テストの両方を実行する機能
  • テスト・スイートの実行、ログ取得、レポート作成が可能です。 
  • 実験前、実験中、実験終了時にアプリケーションの健全性を監視する機能

 

コスト

 

オープンソースソフトウェアであるLitmusChaosは、商用ライセンスなしで自由に使用することができます。迅速に規模を拡大し、プラクティスを構築するためのエンタープライズサポートは、Harnessが提供します。

 

LitmusChaosは使うべきですか?

 

LitmusChaosは、Dockerコンテナのテストから特定のPodに至るまでの実験を容易にするKubernetesネイティブのツールです。Prometheusによるさまざまな監視機能を持つ汎用的なツールとして、LitmusChaosは有用ですが、使い始める前にかなりの深い知識が必要です。

カオスエンジニアリングツールHarnessのご紹介

Harness Chaos Engineeringの活用方法について、ご興味がおありですか?今すぐデモをお申し込みください。


この記事はHarness社のウェブサイトで公開されているものをDigital Stacksが日本語に訳したものです。無断複製を禁じます。原文はこちらです。

Harnessに関するお問い合わせはお気軽にお寄せください。

お問い合わせ