Azure Proactive Resiliency Library v2
Tools Glossary GitHub GitHub Issues Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Develop

The presented Microsoft Azure Well-Architected Framework recommendations in this guidance include the Develop Stage and associated resources and their settings.

Summary

RecommendationImpactCategoryPG Verified
適切なパターンを使用して発信接続を管理するMediumScalabilityPreview
発信接続が失敗することが予想されるMediumHigh AvailabilityPreview
インフラストラクチャが発信接続の数をサポートできることを確認するHighScalabilityPreview
部分的な障害を処理するコーディング パターンを実装するMediumHigh AvailabilityPreview
カスケード障害を防ぐために回路ブレーカーを実装するHighHigh AvailabilityPreview

Details


適切なパターンを使用して発信接続を管理する

Impact:  Medium Category:  Scalability PG Verified:  Preview

Description:

発信接続は、クラウド ソリューションがデータベース、API、サードパーティ プロバイダーなどの外部サービスまたはリソースに対して行うリクエストです。これらの接続を適切に管理することは、ソリューションの信頼性とパフォーマンスを確保するために非常に重要です。リクエストのタイプと頻度に応じて、発信接続のオープン、クローズ、再利用、プールに適切なパターンを使用する必要があります。たとえば、サーキット ブレーカー パターンを使用して、ソリューションが障害が発生したサービスに対して繰り返しリクエストを行うことを防止したり、接続プーリングを使用して既存の接続を再利用し、新しい接続を作成するオーバーヘッドを削減したりできます。さらに、依存関係の注入やファクトリー パターンなどのパターンを使用してコード内の接続オブジェクトを管理し、使用しなくなった接続を確実に閉じてポートの枯渇を防ぐことができます。

Potential Benefits:

Increase connection management
Learn More:
Using dependency injection in .NET
Use IHttpClientFactory to implement resilient HTTP requests


発信接続が失敗することが予想される

Impact:  Medium Category:  High Availability PG Verified:  Preview

Description:

クラウド コンピューティングの主な課題の 1 つは、ネットワーク通信の不確実性と予測不可能性に対処しなければならないことです。発信接続は、ネットワークの輻輳、タイムアウト、サービスの停止、構成エラーなど、さまざまな理由で失敗する可能性があります。これらの障害が発生することを予期し、それらを適切に処理するようにソリューションを設計する必要があります。たとえば、再試行、フォールバック、タイムアウトなどのパターンを使用して一時的な障害から回復したり、バルクヘッドやキューベースの負荷平準化などのパターンを使用して、システムに対する障害の影響を分離して管理したりできます。発信接続の障害を予測して処理することで、クラウド ソリューションの復元力と可用性を向上させることができます。

Potential Benefits:

Increase the application's outgoing connection reliability
Learn More:
Architecture Center - Retry Patterns


インフラストラクチャが発信接続の数をサポートできることを確認する

Impact:  High Category:  Scalability PG Verified:  Preview

Description:

発信接続は、ネットワーク パス上のさまざまなコンポーネントを経由して宛先に到達します。これらのコンポーネントには、ゲートウェイ、プロキシ、ファイアウォール、その他のアプライアンスに加え、Azure NAT ゲートウェイや送信接続をスケーリングするその他の手段が含まれます。これらのコンポーネントが、少なくとも予想される送信トラフィック量まで拡張できることを確認してください。

Potential Benefits:

Increase the application's outgoing connection Scalability
Learn More:
Ensure zone resilient outbound connectivity with NAT gateway


部分的な障害を処理するコーディング パターンを実装する

Impact:  Medium Category:  High Availability PG Verified:  Preview

Description:

分散システムでは部分的な障害が避けられず、他のコンポーネントは機能し続けているにもかかわらず、一部のコンポーネントが障害を起こしたり使用できなくなったりすることがあります。したがって、クラウド ソリューションでは、部分的な障害を適切に処理し、システム全体の中断を回避するパターンを実装する必要があります。これらのパターンには、指数バックオフを使用して失敗した操作を再試行すること、タイムアウトを使用して低速または応答しないサービスの影響を制限すること、プライマリ サービスが利用できない場合に代替応答を提供するフォールバック ロジックが含まれます。たとえば、Web ページに読み込まれた動的コンテンツは、コンテンツが利用できない場合、または完全に非表示にする必要がある場合、デフォルト値に戻す必要があります。これにより、エラー メッセージを表示するよりも好ましいユーザー エクスペリエンスが得られます。

Potential Benefits:

Enable users to function despite ongoing issues
Learn More:
Recommendations for self-healing and self-preservation


カスケード障害を防ぐために回路ブレーカーを実装する

Impact:  High Category:  High Availability PG Verified:  Preview

Description:

サーキット ブレーカーは、分散システムにおける連鎖障害の防止に役立つ設計パターンです。アイデアは、各サービスの健全性を監視し、サービスが異常になったり応答しなくなったりした場合に、サービスへのリクエストの送信を停止することです。こうすることで、1 つのサービスの障害がシステムの残りの部分に影響を与えず、過負荷を回避してサービスをより迅速に回復できます。サーキット ブレーカーは、プライマリ サービスが利用できない場合に、キャッシュされたデータやデフォルト値を使用するなどのフォールバック ロジックをトリガーすることもできます。これにより、システムの信頼性と回復力が向上し、より良いユーザー エクスペリエンスが提供されます。

Potential Benefits:

Prevent cascading failures during reliability incidents
Learn More:
Architecture Center - Circuit Breaker Pattern