操作に合わせた設計
- 15 分
|
|
|---|
開発の早い段階および頻繁に失敗をテストします。 パフォーマンスの問題が信頼性に与える影響を判断します。 根本原因分析と事後分析のために、すべてのチームが依存関係の状態と継続的な障害を確認できることを確認します。 監視可能なシステムからの分析情報、診断、アラートを使用してインシデントを管理し、継続的に改善します。
Contoso University は、Contoso の教職員と学生向けに、オンライン クラスなどの教育サービスを提供するマイクロサービス上に構築された Web アプリを実行します。 ワークロードは、Azure App Service、Azure SQL Database、Microsoft Entra ID、Azure Key Vault、Azure Service Bus、Azure Monitor、および Azure DevOps 上に構築されています。
堅牢な監視を追加する
テレメトリを関連付けることができる監視可能なシステムを構築します。
監視と診断は重要な操作です。 何かが失敗した場合は、失敗した日時、失敗した理由を知る必要があります。 コンポーネント レベルでの可観測性は基本的なものですが、コンポーネントとフローの全体的な監視は、正常性状態の全体像を提供します。 このデータは、サイト信頼性エンジニアが問題を解決するための取り組みに優先順位を付けるのに役立ちます。
"Contoso の課題"
ワークロード アプリケーションは、複数の機能レベルで分離された 5 つのサービスのスイートの一部としてデプロイされます。
チームは、さまざまなレベルのソリューションを移動するトランザクションとユーザーの要求を分析して、不安定性を引き起こす可能性のあるボトルネックを特定し、効率的にトラブルシューティングできるようにしたいと考えています。
"アプローチの適用と結果"
ワークロード チームは、Application Insights を使用してログとメトリックをキャプチャし、すべてのプラットフォーム サービスのログ記録を構成します。 すべてのログは、ワークロードの Azure Monitor ワークスペースに転送されます。
Azure Monitor ワークスペース内のデータを使用して、個々のコンポーネントの正常性とソリューション全体を分析できます。
コンポーネントと階層間で同じ要求に属するエントリを関連付けると、チームはワークロードの正常性を判断し、問題のトラブルシューティングをより簡単に行うことができます。
潜在的な問題と異常な動作を予測する
信頼性の問題を表示するには、優先順位付けされた実用的なアラートを使用します。 トリアージを高速化するために、信頼性の高いプロセスとインフラストラクチャに投資します。
サイト信頼性エンジニアは、問題をすぐに通知できます。 継続的なライブ サイト インシデントを処理し、予測アラートがライブ インシデントになる前に特定する潜在的な障害に事前に対処できます。
"Contoso の課題"
学生が授業に登録し、シラバスにアクセスし、教科書を購入すると、各期間の開始時にトラフィックが急増すると予想されます。
学年度のこの重要な期間に、チームは負荷の増加に対処するのに十分な容量があることを確認する必要があります。 発生する可能性のある他の可用性の問題に迅速に対応できる必要があります。
"アプローチの適用と結果"
チームは、需要の増加が予想される前に容量が追加され、負荷が増加すると容量が追加されるように、Web 層とデータベース層を自動的にスケールアウトするように構成します。
緊急対応計画が更新され、インシデント対応チームは、この期間中にストレスを受けたフローに関連するアラートに優先順位を付けます。
信頼性リスクのテスト
運用環境および実稼働前環境でエラーをシミュレートし、テストを実行します。
復旧に対する現実的な期待を設定できるように、運用環境で障害が発生すると便利です。 この方法では、障害に適切に対応する設計の選択を行うことができます。 また、ビジネス メトリックに設定したしきい値をテストできます。
"Contoso の課題"
Web 層とこのワークロードの学生登録 REST サービス間の通信は、クライアント証明書に依存します。
学期が始まると、学生登録機能はあまり使用されません。 そのため、その証明書の有効期限が切れると、しばらくの間問題が検出されない可能性があります。
前回の登録期間中は、システムが一時的な接続エラーを適切に処理しなかったため、サービスにいくつかの中断が発生しました。 チームは、一時的な障害に対処するためにコードを改善しましたが、実際の運用シナリオで機能がどのように動作するかはわかりません。
"アプローチの適用と結果"
チームは、運用環境で毎月実行するシンセティックトランザクションテストを作成します。 このテストでは、登録フローを含む複数のフローをシミュレートします。
シンセティックトランザクションテストのためにアラートが設定されているため、証明書の期限切れなどの問題で失敗が発生した場合、チームに通知されます。
チームは、ソフトウェア開発ライフサイクル (SDLC) にカオス テストを追加します。 彼らは、定期的な混乱のテストを行い、結果をキャプチャして自己保存手法を検証し、不明な信頼性の問題を明らかにするのに役立ちます。