人工知能による Azure サービス品質の向上: AIOps

2020年6月29日 に投稿済み

Chief Technology Officer, Microsoft Azure

「ビッグ データの時代には、Azure のスケールで稼働するクラウド サービスから収集された分析情報は、人間の注意持続時間をあっという間に超えます。収集した大量のデータをもとに、可能な限り最高のサービス品質を維持するための正しい手順を見極めることが重要です。Microsoft はこれを Azure に適用することで、クラウド プラットフォームや DevOps プロセスに AI を導入して AIOps にする構想を描いています。これにより Azure プラットフォームをより自己適応性、回復性、効率性の高いものにすることができます。また、AIOps では Microsoft のエンジニアがより効果的かつタイムリーに正しい行動を取れるようにサポートし、サービス品質を向上させ、Microsoft のお客様やパートナーの皆様にご満足いただけるよう引き続き取り組んでまいります。この投稿は、「Advancing Reliability」シリーズの続きで、Azure プラットフォームの信頼性を高めるための進行中のイニシアチブに焦点を当てています。以下の記事は、これらの取り組みを統括する Microsoft プログラム マネージャーである Jian Zhang が執筆したものです。彼女は AIOps に関する Microsoft のビジョンを共有し、エンドツーエンドのクラウド サービス管理の一部として既に現実のものとなっている、この AI インフュージョンの領域について特に焦点を当てます。」 - Mark Russinovich (CTO、Azure)


この記事には、Principal Data Scientist Manager の Yingnong Dang と Partner Group Software Engineering Manager の Murali Chintalapati の寄稿が含まれています。

 

Mark がこの「Advancing Reliability」ブログ シリーズを立ち上げた際に述べたように、Azure のスケールでグローバルなクラウド インフラストラクチャを構築して運用することは、何百ものサービスコンポーネントが常に進化し続け、160 以上のデータセンターと 60 以上のリージョンにまたがっている状況では、複雑な作業になります。この課題に立ち向かうために、Microsoft は Azure のエンジニアリング チームを横断して幅広く連携する AIOps チームを結成しました。また、Microsoft Research と提携して AI ソリューションを開発し、これまで以上に効率的で信頼性の高いクラウド サービス管理を実現しました。Microsoft のクラウド プラットフォームと DevOps プロセスに AI を吹き込むことの重要性について、そのビジョンを共有したいと思います。ガートナーが、AIOps (「AI Ops」と発音します) と似たようなことを言及し、Microsoft 社内でも一般的に使用される用語になりましたが、これはより広い範囲を示すものです。本日の記事はほんの手始めに過ぎませんが、今後は定期的に更新情報を提供して、AI 技術を使用した導入事例を共有し、Azure をどのように大規模に構築および運用していくかについて支援していきたいと考えています。

AIOps を採用する理由

クラウド サービスには、次の 2 つのユニークな特性があります。

  • クラウド プラットフォームとシステムのスケールと複雑さは常に増大する
  • 顧客、パートナー、そのワークロードのニーズは刻々と変化する

このように常に流動的な状態にある中で信頼性の高いクラウド サービスを構築、運用し、可能な限り効率的かつ効果的にそれを行うために、Microsoft のクラウド エンジニア (何千人もの Azure 開発者、運用エンジニア、カスタマー サポート エンジニア、プログラム マネージャーを含む) は、意思決定を行ったりアクションを起こしたりするのにデータに大きく依存しています。さらに、これらの決定やアクションの多くは、クラウド サービスや DevOps プロセスの不可欠な部分として、自動的に実行される必要があります。データ - 意思決定 - アクションの道筋の合理化には、データ内のパターンを特定し、推論を行い、過去のデータに基づいて予測を行い、その後、基礎となるすべてのデータから得られた分析情報に基づいてアクションを推奨したり、さらにはアクションを起こしたりすることが含まれます。

 クラウド プラットフォームと DevOps に AI を取り入れる - 顧客、エンジニアリング、サービスの中心に AI を据える
図 1.AI をクラウド プラットフォームと DevOps に採り入れています。

AIOps のビジョン

AIOps により、クラウド ビジネスの変革が始まっています。インテリジェントなツールでエンジニアの生産性を高め、継続的なコスト最適化を推進し、最終的にはプラットフォーム自体の信頼性、パフォーマンス、効率性を向上させながら、サービス品質やカスタマー エクスペリエンスが大規模に改善されています。AIOps と関連テクノロジの進化に投資すると、最終的にはさまざまな方法で価値が生まれることをご覧いただけると思います。

  • より高いサービスの品質と効率性: クラウド サービスには、自己監視、自己適応、自己復旧機能が組み込まれており、これらを使用することで、人の介入を最小限に抑えることができます。このようなインテリジェンスを活用したプラットフォームレベルの自動化により、サービス品質 (信頼性、可用性、パフォーマンスを含む) とサービスの効率が向上し、最高のカスタマー エクスペリエンスを提供することができます。
  • DevOps による生産性向上: AI と ML の機能を利用した自動化により、エンジニアは繰り返される問題の調査や手作業での運用、サービスのサポートなどの手間から解放され、その代わりに、新しい問題の解決や新機能の構築、顧客やパートナーのエクスペリエンスにより直接的に影響を与える仕事に集中できるようになります。実際には、AIOps は開発者やエンジニアが生データを見ないで済むようにするための分析情報を提供し、それによりエンジニアの生産性を向上させることができます。
  • より高い顧客満足度: AIOps ソリューションは、お客様が Microsoft のクラウド サービス上でワークロードの使用、維持、トラブルシューティングを可能な限り簡単に行えるようにする上で重要な役割を果たしています。Microsoft は、お客様のニーズをよりよく理解するために AIOps を使用し、場合によっては潜在的な問題のポイントを特定し、必要に応じて積極的に手を差し伸べるよう努めています。データドリブンの分析情報をお客様のワークロードの振る舞いに取り込むことで、Microsoft やお客様が問題を防ぐためのアクションを取ったり回避策を適用したりする必要がある時に警告することができます。最終的には、問題点を迅速に特定し、緩和し、修正することで満足度を向上させることが目的です。

私の同僚である Marcus Fontoura、Murali Chintalapati、Yingnong Dang が、第 34 回 AAAI Conference on Artificial Intelligence (人工知能における AAAI 会議) に関連して行われた AAAI-20 Workshop on Cloud Intelligence (クラウド インテリジェンスにおける AAAI-20 ワークショップ) の基調講演「AI for Cloud-Toward Intelligent Cloud Platforms and AIOps (クラウドの AI - インテリジェントなクラウド プラットフォームと AIOps に向けて)」の中で、この分野における Microsoft のビジョン、投資、その成果の例を共有しました。このビジョンは、Azure、Microsoft 365、Bing、LinkedIn などのクラウド サービス製品グループを横断する Microsoft AIOps 委員会、および Microsoft Research (MSR) によって作成されました。この基調講演では、下図のように AIOps がクラウド システムの構築や運用に変革をもたらす可能性のあるいくつかの重要な領域を共有しました。
 

クラウドのための AI、システムのための AI、DevOps のための AI、顧客のための AI のユース ケースの例を示す AI Ops と AI サービス プラットフォーム


図 2. クラウドのための AI: AIOps と AI サービス提供プラットフォーム。

AIOps

Microsoft は、そのビジョン以上に、AIOps ソリューションを構築するための一般的な方法論を簡単にまとめることから始めたいと考えていました。この分野のソリューションは、システム、顧客、およびプロセスのデータ測定から始まります。そして AIOps ソリューションの鍵となるのは、システムの動作、顧客の行動、DevOps の成果物とプロセスに関する分析情報を抽出することです。分析情報には、今起きている問題の特定 (検出)、それが起きている理由 (診断)、将来何が起きるのか (予測)、それを改善する方法 (最適化、調整、緩和) などが含まれます。このような分析情報は、顧客満足度、システム品質、DevOps の生産性などのビジネス メトリクスと常に関連付けられ、そしてビジネスへの影響によって決定された優先順位に沿ったアクションを推進する必要があります。また、アクションはシステムやプロセスにフィードバックされます。このフィードバックは、完全に自動化されている (システムに採り入れられている) 場合と、人間が関与している (DevOps プロセスに採り入れられている) 場合があります。この全体的な方法論により、Microsoft は 3 つの柱で AIOps ソリューションを構築することができました。

AIOps の方法論: データ (顧客/システム/DevOps)、分析情報 (検出/診断/予測/最適化)、アクション (軽減/将来の問題の回避/使用構成の最適化/アーキテクチャやプロセスの改善)。
図 3.AIOps の方法論: データ、分析情報、アクション。

システムのための AI

本日は、既に利用されており、Azure を裏で支えている AIOps ソリューションをいくつかご紹介します。目的は、システム管理を自動化して人間の介入を減らすことです。その結果、運用コストの削減、システムの効率化、顧客満足度の向上につながります。これらのソリューションは既に Azure プラットフォームの可用性向上に大きく貢献しており、特に Azure IaaS の仮想マシン (VM) についてはそれが顕著に見られます。AIOps ソリューションは、ハードウェアの障害予測、ライブ移行や Project Tardigrade やプロビジョニング済み VM のようなプロアクティブなアクションを通じたホスト障害から、VM 作成時間を短縮することまで、お客様のワークロードを保護するためのいくつかの方法で貢献しました。

もちろん、プラットフォームの信頼性を継続的に向上させるためには、エンジニアリングの改善や継続的なシステム革新も重要な役割を果たします。

  • ハードウェア障害予測は、ハードウェア障害による中断からクラウドのお客様を守るためのものです。Microsoft は 2018 年に、「Improving Azure Virtual Machine resiliency with predictive ML and live migration (予測 ML とライブ移行による Azure Virtual Machine の回復性の強化)」のストーリーを共有しました。Microsoft Research と Azure は、Azure Compute 用のディスク障害予測ソリューションを構築しました。これは、お客様の VM の障害が起こると予測されるノードから正常なノードへのライブ移行をトリガーします。また、メモリやネットワーク ルーターの故障など、その他の種類のハードウェアの問題にも予測を拡張しました。これにより、予測メンテナンスを実行して可用性を向上させることができます。
  • Azure の Pre-Provisioning Service は、事前プロビジョニングされた VM を作成することで、VM デプロイの信頼性と待機時間のメリットをもたらします。事前プロビジョニングされた VM は、お客様の VM の要求の前に事前に作成され、部分的に構成された VM です。上記の AAAI-20 基調講演で説明したように、Pre-Provisioning Service では、予測エンジンを活用して VM の構成や 1 構成あたりの VM 数を予測して、事前に作成します。この予測エンジンは、過去と現在のデプロイの挙動に基づいて訓練された動的モデルを適用し、将来のデプロイを予測します。Pre-Provisioning Service はこの予測を使用して、VM 構成ごとに VM プールを作成して管理します。Pre-Provisioning Service は、最新の予測に基づいて VM を削除または追加することで、VM プールのサイズを変更します。お客様の要求に一致する VM が特定されると、その VM は事前に作成されたプールからお客様のサブスクリプションに割り当てられます。

DevOps のための AI

AI はエンジニアリングの生産性を高め、高品質なサービスをスピーディーに出荷するのに役立ちます。DevOps のための AI ソリューションの例を次に示します。

  • インシデント管理はクラウド サービス管理の重要な側面であり、まれではあるが避けられないプラットフォームの停止を特定して軽減します。一般的なインシデント管理手順は、検出、関与、軽減のステージを含む複数のステージで構成されています。各ステージで費やされた時間は、課題解決を迅速に進めるための重要業績評価指標 (KPI) として使用されます。KPI には、検出までの時間 (TTD)、関与までの時間 (TTE)、軽減までの時間 (TTM) が含まれます。

 検出までの時間 (TTD)、関与までの時間 (TTE)、軽減までの時間 (TTM) などのインシデント管理手順。
図 4. インシデント管理手順。

AAAI-20 カンファレンスの AIOps Innovations in Incident Management for Cloud Services (Cloud Services でのインシデント管理における AIOps のイノベーション) でお知らせしたように、Microsoft は AI ベースのソリューションを開発しました。これによりエンジニアは、問題を早期に発見するだけでなく、関与する適切なチームを特定し、可能な限り迅速に問題を軽減することができるようになります。プラットフォームへの緊密な統合により、一部のシナリオではエンドツーエンドの非接触での軽減策が可能となり、お客様への影響が大幅に軽減され、全体的なカスタマー エクスペリエンスが向上します。

  • 異常検出は、Azure IaaS 向けのエンドツーエンドの監視および異常検知ソリューションを提供します。検出ソリューションは、しきい値で定義された汎用的なパターンだけでなく、リーク パターン (たとえば、メモリ リーク) や出現パターン (急増ではなく、長期的な変動に伴って増加する) のような一般的に検出が困難なパターンも含む、広範囲の異常パターンを対象としています。異常検出ソリューションによって生成された分析情報は、既存の Azure DevOps プラットフォームとプロセスに採り入れられており、たとえば、テレメトリ プラットフォーム、インシデント管理プラットフォームを介したアラートを送信したり、そして場合によっては、影響を受けたお客様への自動通信をトリガーしたりしています。これにより、可能な限り早期に問題を検出することができます。

既に顧客向けの機能に組み込まれている例として、動的しきい値 は ML ベースの異常検出モデルです。これは、Azure portal または ARM API を介して使用される Azure Monitor の機能の 1 つです。動的しきい値を使用すると、監視アラートをトリガーする違反ポイントの数を指定するなど、ユーザーが検出感度を調整できます。

  • 安全なデプロイは、Azure インフラストラクチャ コンポーネントを安全にロールアウトするための、インテリジェントなグローバルの "番人" として機能します。Microsoft はコード名 Gandalf というシステムを構築しました。これは、時間的、空間的な相関関係を分析して、ロールアウト後数時間から数日後に発生した潜在的な問題を捕捉します。これは、Azure のシナリオでは一般的な、(進行中の多数のロールアウトの間の) 不審なロールアウトを特定するのに役立ち、問題の伝播を防ぐことができるため、その他の顧客に影響が及ばないようにすることができます。安全なデプロイ方法の詳細については、こちらの以前のブログ記事でご紹介しており、また Gandalf のしくみについて、USENIX NSDI 2020 の記事スライド デッキで詳しく説明しています。

お客様のための AI

Azure のカスタマー エクスペリエンスを向上させるために、Microsoft では顧客管理のライフサイクル全体を強化する AI ソリューションを開発してきました。たとえば、お客様のサービス選択や経験した問題点の概要を一語一句たがわずまとめたものを活用してお客様を最適なサポート リソースの選択に導く、意思決定支援システムが開発されました。これにより、お客様やパートナーが必要とする適切なガイダンスとサポートを得られるまでにかかる時間を短縮できます。

AI サービス提供プラットフォーム

グローバル規模でのクラウド管理の効率化を実現するために、Microsoft は AI を活用したクラウド リソースの最適利用を支援し、そしてカスタマー エクスペリエンスを向上させるシステム構築に投資してきました。その一例として、Communications of the ACMで説明した Azure 向けの AI サービス提供プラットフォームである Resource Central (RC) があります。これは Azure コンテナーとサーバーからテレメトリを収集し、以前の動作から学習します。そして、要求があったときに、その将来の動作の予測を生成します。リソースの調達や割り当てなど、Azure Compute ワークロードの多くの特性を正確に予測するために、Microsoft は既に RC を使用しており、そのすべてがシステム パフォーマンスの向上と効率化に貢献しています。

将来の見通し

AI インフュージョンを Azure プラットフォームと Microsoft の DevOps プロセスに取り入れる構想を共有し、さまざまな分野でサービス品質を向上させるために既に使用されているいくつかのソリューションをご紹介しました。今後、さらにインテリジェントなクラウド管理を実現するために、Microsoft 社内の AI と ML ソリューションの詳細を共有してまいります。Microsoft は、これらが Azure プラットフォーム自体の信頼性やパフォーマンスの向上など、クラウド プロバイダーとしての効果や効率性を高めるための正しい投資先ソリューションであると確信しています。