カオス実験

Azure Chaos Studio で、カオス実験を作成して実行します。 カオス実験とは、実行する必要がある障害と、それらの障害を実行する必要がある対象のリソースを記述する Azure リソースです。

実験は、次の 2 つのセクションに分かれます。

  • セレクター: セレクターとは、障害またはその他のアクションを実行するターゲット リソースのグループです。 セレクターを使用すると、リソースを論理的にグループ化して、複数のアクション全体で再利用できます。

    たとえば、AllNonProdEastUSVMs という名前のセレクターを設定して、そこに、米国東部のすべての非運用仮想マシンを追加する場合があります。 このセレクターを参照すれば、CPU 負荷を適用した後に、仮想メモリ負荷をこれらの仮想マシンに適用することができます。

  • ロジック: 実験の残りの部分には、障害を実行する方法とタイミングについて記述します。 実験は、1 つずつ実行するステップに分けます。 各ステップには、同時に実行する分岐を 1 つ以上含めます。 ステップと分岐を使用することで、環境内のリソース全体で複数の障害を並行して挿入することができます。

    各分岐には、実行したい障害または時間遅延のいずれかの "アクション" を 1 つ以上含めます。 障害とは、何らかの中断を引き起こすアクションです。 ほとんどの障害は、障害の実行期間や適用するストレスの量など、1 つ以上のパラメーターを取ります。

カオス実験のレイアウトを示す図。

複数のサブスクリプションにまたがり、複数のテナントにまたがる実験

カオス実験とは、サブスクリプション、リソース グループ、リージョンに配置される Azure リソースです。 Azure portal または Chaos Studio REST API を使用して、実験の作成、更新、開始、キャンセル、状態の表示などを行うことができます。

カオス実験では、サブスクリプションが同じ Azure テナント内にある場合、その実験とは異なるサブスクリプションのリソースをターゲットにすることができます。 カオス実験では、リージョンが Chaos Studio でサポートされているリージョンである場合、その実験とは異なるリージョンのリソースをターゲットにすることができます。

カオス実験の文書化

カオス実験プロセスには、時間の経過に伴って追跡および変更できる重要な側面がいくつかあります。 アプローチの 1 つは、Azure Boards 内または GitHub Projects 内で作業項目を使用することです。 実験ごとに専用の作業項目を作成すると、実験の詳細、進行状況、結果を構造化された方法で追跡できます。 このドキュメントには、実験の目的、予想される結果、従う手順、関連するリソース、実験からの観察や学習などの情報を含めることができます。

項目 詳細
仮説 実験の目的と期待される結果を定義する
ターゲット スコープ カオス実験の対象とするシステムの部分 (ネットワーク、データベース、アプリケーション レイヤーなど) を特定する。
Duration カオス実験の概算時間を指定します。
ターゲット システム内の特定のターゲットまたはコンポーネントを決定します。
Environment 実験を実行するのが、運用環境か、ステージング環境か、または開発環境かを定義します。
所見 実験中に観察されたデータや動作を記録します。
結果 実験の結果と発見を要約します。
実施項目 結果に基づいて実行するアクション項目または手順を一覧表示します。

仮説は、実験の目的と期待される結果を定義するため、カオス実験の重要な側面です。 これは、予期しない中断を効果的に処理するシステムの機能をテストするのに役立ちます。 明確な仮説を立てることで、実験をシステムの特定の領域に集中させ、意味のあるデータを収集してその回復性を評価できます。 Azure Boards または GitHub Projects の機能を活用すると、チームとの共同作業、タスクの割り当て、期限の設定、カオス エンジニアリング イニシアチブの全体的な進行状況の追跡を行うことができます。

次のステップ

カオス実験について理解したので、次の準備が整いました。