2022年10月11日
DevOps
新しいカオスエンジニアリングツールをお探しですか?私たちは、カオスツールキットを構築する際に考慮すべき、トップクラスのオープ ンソースおよび商用のカオスエンジニアリンングツールを評価しました。
企業は、さまざまな理由から、従来のデプロイ方法に対してクラウドネイティブデプロイメント(Kubernetesをベースとしたもの)を採用するようになってきていますが、そこで必要なことのうちの1つは、デプロイ速度を向上させることです。サイト信頼性エンジニア(SRE)と開発チームが現在直面している課題は、クラウドネイティブなシステム群が従来のデプロイメントよりも多くの方法で故障する可能性があることです。
計画外のダウンタイムは、ビジネスの財務、ブランド、風評に大きな影響を与える可能性があります。予期せぬダウンタイムがもたらすコストと、システムレベルの複雑化により、クラウドネイティブなシステム群のテスト方法を進化させる必要性が高まっています。カオスエンジニアリングは、システムレベルのソフトウェアテストが弱点を明らかにし、チームがより信頼性の高いシステムを提供できるよう支援するメカニズムを提供します。
今日の非常に複雑なソフトウェアシステムは、潜在的な弱点や不具合をテストする必要があります。カオスエンジニアリングは、その名の通り、ソフトウェアがシステム機能に影響を与えることなく故障を処理する能力をテストするプロセスのことです。ソフトウェアの回復力をテストすることで、開発チームは障害を特定し、積極的に対処することができます。
カオステストは、ソフトウェアのインフラを積極的に実験する手段として実施することができます。失敗を誘発することで、システムが乱流状態や停電を克服し緩和することができれば、組織の信頼を向上させることができるのです。
あなたのシステムは、ネットワーク遅延やインフラの性能問題を克服するために必要な現実的な能力を持っていますか?システム能力のテストは、ソフトウェアがどのような問題にも耐えうることを保証するために不可欠です。この原則を念頭に置き、現在市販されているトップクラスのカオスエンジニアリングツールをいくつかレビューしてみました。
カオスエンジニアリングツールは、システムに対する信頼性を確立するために使用される従来のテスト方法に対する比較的新しいアプローチです。ソフトウェアプラットフォームの障害は避けられないので、弱点を突き止め、業務に悪影響が出る前に修正することが重要です。
Amazon、Netflix、Microsoftなどのトップクラスのハイテク企業は、カオスエンジニアリングを利用して、内部のシステム動作と欠陥の理解を深めています。この手法の原理は、さまざまな仮説と性能に基づく指標を通じて、システムアーキテクチャをテストするという考え方が前提となっています。仮説の展開とカオス実験の成功により、カオスエンジニアリングのツールは、インフラストラクチャーの障害や応答性のないシステムを発見するためのロードマップを提供することができます。
カオスエンジニアリングは、これらの各ステップを含む一般的なガイドラインに従います。
効果的で充実した実践を行うことは、組織の回復力をテストし、潜在的な障害許容度を発見するのに役立ちます。ここでは、システムを最適化するために利用できる、一般的なカオスエンジニアリングツールをいくつか紹介します。
長所
短所
Chaos Meshは、オープンソースのクラウドネイティブツールです。Chaos Meshは、さまざまな障害シミュレーションにより、開発、テスト工程、生産段階のあらゆる部分で発生する可能性のあるシステムの異常を判断することに役立ちます。
Chaos Meshは、Chaos Dashboardと呼ばれるウェブユーザーインターフェースで作成されたオープンソースのカオスツールで、DevOpsワークフローに追加することで、潜在的な弱点やタイムアウトの領域を特定することができます。Chaos Meshは、耐障害性を確保するために、Kubernetes環境内のカオス実験を利用しています。分散システム内の障害シミュレーションに関連するさまざまなタイプのシナリオを利用できるのです。
Chaos Meshは、ネットワーク遅延、システム時間操作、リソース使用率などをテストする攻撃を展開することができます。Chaos Dashboardは、設定された時間枠内であらゆる形式の実験を変更し、管理するために使用できます。
主な特徴
コスト
オープンソースのカオスツールであるChaos Meshは無料で使用でき、商用ライセンスは必要ありません。
Chaos Meshは使ったほうがいいのでしょうか?
Chaos Meshは、Kubernetesで自動化された実験を設計・管理するために使用できるオープンソースの 技術を提供しています。ただし、この技術にはある種の制限があることに注意しましょう。クラウドの運用は複雑なため、障害の予測は面倒な作業になる可能性があります。信頼性の低い機能や障害は、評価の低下や消費者の信頼の喪失につながる可能性があります。
長所
短所
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は、ウェブベースの信頼性を向上させるために設計された、初のホスト型カオスエンジニアリングプラットフォームです。Software-as-a-Service (SaaS)として提供されるGremlinは、複数の攻撃タイプを使用し てシステムの回復力をテストすることができます。ユーザーは、どのタイプの攻撃が最適な結果をもたらすかを判断する手段として、システムの入力を提供します。このテストは、インフラストラクチャーの包括的な評価を容易にする手段として、相互に関連して実行することができます。
主な特徴
Gremlinの特徴は以下の通りです。
コスト
Gremlinの価格設定は、エージェント単位の価格設定から、チームが必要とするテスト頻度をサポートするターゲット単位の攻撃まで、長年にわたって変動してきました。
Gremlinを使うべきですか?
世界初のマネージド・エンタープライズ・カオス・エンジニアリング技術として、Gremlinはユーザーに数十の攻撃ベクトルを起動し、攻撃を停止およびロールバックし、システムの信頼性を向上させる能力を提供します。持続可能で信頼性の高いインターネットを構築することを使命として設計されたGremlinは、ソフトウェアの弱点をピンポイントで特定し、収益損失とシステム上の悪影響を最小限に抑えます。
長所
Harness Chaos Engineeringは、エンジニアリングチームと信頼性チームの双方に向けたソリューションです。このツールは、DevOpsチームとSREチームが協力してカオステストを実行し、デプロイメントにおける信頼性の問題を特定することを可能にします。これらのシナリオは、従来のユニットテスト、インテグレーションテスト、システムテストの枠を超え、本番環境における障害をより忠実に再現します。
チームは、定義された障害シナリオの下で、システムがどのように動作するかのインサイトを得ることで、アプリケーションやインフラストラクチャーに存在する弱点を把握し、コストのかかるダウンタイムを防止するための信頼性を積極的に作り出せるようになります。Harness Chaos Engineeringは、企業がソフトウェアの信頼性に関するベストプラクティスを導入し、スケールし、自動化することを支援するために設立されました。
このHarnessが提供する機能により、積極的なアプリケーション信頼性テストアプローチが可能になり、障害が本番環境に侵入するリスクを低減し、障害に伴うアプリケーションのダウンタイムを大幅に削減することができます。
主な特徴
Harness Chaos Engineeringは、SREや開発者がカオス実験を簡単に実行できるように作成されました。クラウドネイティブなシステム向けに設計されており、CI/CDパイプラインに簡単に追加することができ、本番環境をダウンタイムから守るための継続的な信頼性検証を行うことができます。
Harness Chaos Engineeringの特長は以下の通りです。
コスト
Harness Chaos Engineeringは、オープンソースツールLitmusChaosを開発したチームによって提供 される、完全なエンタープライズサポートと実行された実験に基づく、分かりやすい価格設定となっています。
Harness Chaos Engineeringは使うべき?
Harness Chaos Engineeringは、開発者が多くのクラウドプロバイダーやプラットフォームの信頼性をテストできるように、多数のカオス実験を用意しています。プライベートデプロイメントにより、セキュリティーを通じて簡単に導入・承認できるツールです。エンタープライズグレードの機能と専門的なサポートにより、企業はこの実践を長期間にわたってチームごとに行うのではなく、即座にスケールすることができます。
長所
短所
LitmusChaosは、クラウドネイティブなインフラやアプリケーションのために設計されたオープンソースのプラットフォームです。制御されたカオステストを実行することによりシステム欠陥や停止の特定し、チームを支援します。LitmusChaosは、クラウドネイティブの戦略を用いて、カオスの実践を綿密に制御・管理します。
開発者はLitmusChaosを、Kubernetes内でカオスを作成、促進、分析するためのツールセットとして使用します。LitmusChaosにより、開発者はカオス実験を開発し、エラーを発見し、本格的な本番環境に到達する前に修正することができます。LitmusChaosの技術により、ユーザーは将来の使用に備える手段として、さまざまな実験をKubernetesクラスターにデプロイすることができます。