Azure SRE エージェントでのワークフローの自動化

運用ワークフローは複数のツールにまたがり、次に何が起こるかを覚えておく必要があります。 1 つのシステムで状態を確認し、決定を行い、別のシステムで実行し、3 分の 1 でチームに通知します。 各ハンドオフにより、待機時間とリスクが増加します。

ヒント

ワークフローの自動化は、次の方法で役立ちます。

  • 誰も起こさずにエンドツーエンドでインシデントを処理する
  • 必要に応じ、人間による監視を使用してスケジュールされたタスクを自動的に実行する
  • 過去のインシデントからの知識を毎回一貫して適用する

ワークフローの自動化のしくみ

達成するもの:

  • スケジュールに従って、またはインシデントに対応して実行される自動化されたワークフロー
  • 特殊なタスク用の特定のツールを使用したカスタム エージェント
  • エンド ツー エンド フロー: トリガー→調査→アクション→通知

トリガーが起動すると (スケジュールされた時刻またはインシデント)、エージェントは次の手順を実行します。

  1. トリガーを受信します。 スケジュールされたタスクが実行されるか、インシデントが応答計画と一致します。
  2. カスタム エージェントを呼び出します。 構成されたカスタム エージェントは、そのツールと手順から始まります。
  3. ワークフローを実行します。 カスタム エージェントは、必要に応じて、他のカスタム エージェントを調査し、アクションを実行し、調整します。
  4. チームに通知します。 結果は、Teams、電子メール、またはインシデント プラットフォームに投稿されます。

各カスタム エージェントは、(コネクタから) 特定のツールにアクセスでき、実行モードに応じて、自律的または承認を得て指示に従います。

これは何が違うのか

スクリプトとは異なり、エージェントはパターンが変化したときに適応します。 入力が異なると、スクリプトは中断されます。 エージェントは、検出された内容に基づいて何を行うかに関する理由を説明します。

Runbook とは異なり、エージェントはドキュメントだけでなくワークフローを実行します。 Runbook は人間に何をすべきかを指示します。 エージェントがタスクを実行します。

IFTTT スタイルの自動化とは異なり、エージェントは動作する前に調査します。 トリガーが起動しても、盲目的に実行されることはありません。 代わりに、状況を評価し、適切な対応を決定します。

前と後

の前に 後の
監視ツールで状態を確認する エージェント クエリの自動実行
データに基づいて何を行うかを決定する エージェントの理由とアクションの提案
別のシステムで修正プログラムを実行する 接続されたツールを使用してエージェントが実行される
Slack/Teams でチームに通知する エージェントがコンテキスト通知を送信する
発生した内容をログに記録する エージェントがスレッド内のアクションを記録する

ワークフローの構築

ワークフローは、次の 3 つの構成要素を組み合わせたものになります。

構成要素 動作内容 構成する場所
コネクタ 外部システムからツールを提供する (Outlook、Teams、GitHub、PagerDuty) Builder > コネクタ
カスタム エージェント 特定のツール アクセスと自律性設定を持つ特殊なワーカー Builder > エージェント キャンバス
トリガー スケジュールに従って、またはインシデントに対応してワークフローを開始する スケジュールされたタスク/インシデント対応計画

ステップ バイ ステップのセットアップについては、ファースト ステップ ガイドの 「手順 5: ワークフローの自動化 」を参照してください。

例: 電子メールで毎日の健康レポート

このワークフローでは、Azure リソースの正常性がチェックされ、概要が電子メールで送信されます。

  1. コネクタ: 電子メールの送信を追加する (Office 365 Outlook)
  2. カスタム エージェント: health-reporter ツールを使用してSendOutlookEmailを作成する
  3. スケジュールされたタスク: プロンプトを使用してカスタム エージェントにアタッチします。
Check the health of Azure resources in prod-rg:
1. Query Azure Resource Health for any degraded resources
2. Check Application Insights for error rate trends
3. Summarize findings
4. Email the report using SendOutlookEmail

エージェントはこれを毎日実行し、手動の手順なしで電子メールを調査して送信します。

カスタム エージェントの委任

ワークフローに異なる手順で異なる専門知識が必要な場合は、複数のカスタム エージェントを使用します。

Step カスタム エージェント なぜでしょうか
データベースの診断 @DatabaseExpert 特殊化された KQL クエリ
通知を送信する @Notifier 電子メールと Teams のツール
インシデントを作成する @IncidentCreator PagerDuty/ServiceNow の統合

オーケストレーターは、必要に応じてタスクをカスタム エージェントに委任します。 カスタム エージェントを参照してください。

ベスト プラクティス

練習 共同作業の重要性
プレイグラウンドで最初にテストする トリガーにアタッチする前にカスタム エージェントの動作を確認する
レビュー モードで開始する 完全自動化の前にエージェントの判断を確認する
"今すぐタスクを実行する" を使用してテストする 運用前にスケジュールされたワークフローを検証する
カスタム エージェントごとに 1 つのツール 監査、デバッグ、更新が簡単
わかりやすい名前を使用する email-health-reportcustom-agent-1

スケジュールされたタスクをアタッチする前に、カスタム エージェントをテストします。

  1. BuilderAgent Canvas に移動する
  2. テストプレイグラウンドビューを選択する
  3. ドロップダウンからカスタム エージェントを選択し、[適用] を選択します
  4. [テスト] パネルに計画した指示を入力し、エージェントがそれを正しく実行できることを確認します

動作に自信が持てたら、トリガーをアタッチします。

概要

資源 学習する内容
手順 5: ワークフローを自動化する 電子メール通知を使用して自動正常性チェックを構築する
スケジュールされたタスクを作成する スケジュールされた自動化の詳細なチュートリアル
能力 追加されるもの
スケジュールされたタスク プロアクティブな監視と定期的なタスク方式
軽減策の実行 ワークフローで実行できるアクション
通知の送信 通知パターンとチャネル
インシデント対応 応答計画のトリガー
カスタム エージェント カスタム エージェントの詳細な構成
コネクタ 使用可能なツールの統合