カオス エンジニアリングと回復力について

Azure Chaos Studio の使用を開始する前に、適用される中核となるサイトの信頼性エンジニアリングの概念を理解しておくことが役立ちます。

回復性とは

大規模な分散アプリケーションの構築は、かつてないほど簡単になりました。 インフラストラクチャはクラウドでホストされ、プログラミング言語のサポートは多様であり、構築するオープン ソースおよびホストされたコンポーネントとサービスが多数存在します。 これらの基になるコンポーネントと依存関係、またはそれらに基づいて構築されたシステムに対しては、残念ながら信頼性は保証されません。 インフラストラクチャはオフラインになることがあり、サービスの中断や停止がいつでも発生する可能性があります。 1 つの領域での軽微な中断は、影響を広げることがあり、別の領域に長期の副作用を及ぼす可能性があります。

アプリケーションとサービスは、サービスの停止、既知の依存関係および不明な依存関係への中断、予期しない負荷、システム全体の待機時間に備えて計画する必要があります。 アプリケーションとサービスは、障害に対処するように設計し、中断に対して強化される必要があります。

ストレスや問題に対処するアプリケーションやサービスは、回復性に優れています。 個々のコンポーネントの信頼性は優れていますが、回復性はシステム全体のプロパティです。 エンドツーエンドのシステム回復性は、統合的な、実稼働環境で発生する可能性のある条件と負荷を備えた実稼働環境に似た環境で検証する必要があります。

カオス エンジニアリングおよびフォールト インジェクションとは

カオス エンジニアリングでは、信頼できない状態や依存関係の欠落に対する回復性を構築して検証するために、アプリケーションとサービスを実世界の圧力と障害にさらす実験を行います。 フォールト インジェクションは、システムにエラーを注入する行為です。 ネットワーク待機時間や記憶域へのアクセスの損失などのさまざまなエラーを、アプリケーションまたはサービスが対処または回復できる必要があるシナリオを引き起こす対象システム コンポーネントの抽出に使用できます。 カオス実験とは、1 つまたは複数のサブスクリプション リソースまたは依存関係に対して個別に、並列で、または順番に発生するエラーの適用です。システムの動作と正常性を監視し、発生した問題に対処することを目標とします。 実験は、データセンターの停電や DNS サーバーへのネットワーク待機時間など、実際のシナリオを表すことができます。 また、ブラック フライデーの爆買いや、人気バンドのコンサート チケット販売で発生する極端な条件をシミュレートするためにも使用できます。