はじめに
Azure のミッション クリティカルな設計手法では、障害や予期しない状況が発生した場合でも、ワークロードが確実に動作し続けるために継続的な検証が必要です。 これには、制御された環境での変更とリリースの定期的なテストが含まれます。 このようなテストには、ユーザーに対する負荷の維持や障害の挿入が含まれる場合があります。 目標は、ワークロードの回復性と、運用環境にデプロイする前に障害を処理するそれの能力をテストすることです。
継続的な検証は、一連のプロセスとツールとして実装します。 これをワークフローに統合することで、開発者と運用チームが、リリースや重要なコード変更の前などに、一貫して定期的に検証を実行できるようにする必要があります。 検証プロセスは、運用環境に似た条件で実行する必要があります。
継続的な検証を設計するための大まかなタスクを次に示します。
- ユーザーおよびシステム フロー、および期待されるパフォーマンスに基づいてテストを定義します。
- さまざまなシナリオとステージのベースラインを確立します。
- ベースラインとしきい値を定期的に評価して調整します。
- Azure サービスを自動化されたパイプラインに実装します。
Microsoft Azure では、ロード テストとカオス エンジニアリングを実装するために、次のマネージド サービスを提供しています。
- Azure Load Testing は、アプリケーションと基になるインフラストラクチャとサービスをテストするための、実際の合成トラフィックを生成するためのマネージド サービスです。
- Azure Chaos Studio は、アプリケーションの主要なコンポーネントに障害を体系的に挿入するための、カオス エンジニアリング機能を提供するマネージド サービスです。
この 2 つのサービスを、Azure DevOps の継続的インテグレーションと継続的デリバリー (CI/CD) パイプラインに埋め込み、同時に実行することができます。 開発サイクル内のどのようなタイミングでも、現実的な条件下でアプリケーションの変更の影響を検証することができます。
サンプル シナリオ
このモジュールでは、ラーニング パスの一環として導入した例に継続的な検証を組み込んでいます。 この例の特に以下の点について理解を深めることをお勧めします。