## Memo ## Abstract [[AIOps]]とは、ソフトウェアやサービスのエンジニア(開発者、プログラムマネージャー、サポートエンジニア、サイトリライアビリティエンジニアなど)が、人工知能(AI)や機械学習(ML)の技術を用いて、オンラインサービスやアプリケーションを効率的かつ効果的に大規模に構築・運用できるようにすることです。AIOpsは、サービス品質や顧客満足度の向上、エンジニアの生産性向上、運用コストの削減に貢献します。このテクニカルブリーフィングでは、まず、マイクロソフトでの実践と経験に基づき、AIOpsソリューションを構築する上での現実的な課題をまとめています。次に、AIOpsに関連する研究の方向性を示すロードマップを提案し、マイクロソフトのサービス製品向けに構築したいくつかのAIOpsソリューションの成功例を紹介します。 ## I. WHY AIOPS? ソフトウェア業界は、パッケージ製品からサービス(オンラインサービスやアプリケーションを含む)のリリースへと変化しています。それに伴い、サービスの構築・リリース方法も従来の箱物製品とは異なり、サービスの運用効率が重要視されています。サービスを継続的に開発・リリースするための手法であるDevOps[4]が広く採用されています。クラウドコンピューティングの普及に伴い、サービスの規模や複雑さは飛躍的に増大しています。サービスの大規模化・複雑化に伴い、ソフトウェアエンジニアやサービスエンジニアにとって、DevOpsによるサービスの構築・運用を効率的・効果的に行うことは大きな課題となっています。このような背景から、DevOpsの課題をAIで解決するために、Gartner社からAIOpsという言葉が出てきました[1]。 AIOpsの定義については、まだ広く合意されたものはありません。一般的にAIOpsとは、ソフトウェアエンジニアやサービスエンジニアが、人工知能や機械学習の技術を用いて、サポートやメンテナンスが容易なサービスを効率的かつ効果的に構築・運用できるようにすることです。AIOpsの価値は大きく、高いサービス品質と顧客満足度を確保することができます。 ## II. OUR VISION OF AIOPS ![[Pasted image 20210830151000.png]] AIOpsは、図1に示すように、以下の3つの目標の達成に貢献することを想定しています。 高いサービスインテリジェンス。AIOpsを搭載したサービスは、品質の低下、コストの増加、ワークロードの変化など、多面的な変化をタイムリーに認識することができます。また、AIOpsを搭載したサービスは、過去の行動、ワークロードのパターン、基盤となるインフラの活動などに基づいて、将来の状態を予測することができます。このような自己認識と予測は、サービスの自己適応や自動修復のトリガーとなり、人間の介入はほとんど必要ありません。 高い顧客満足度。内蔵されたインテリジェンスを持つサービスは、顧客の利用行動を理解し、顧客満足度を向上させるための積極的な行動をとることができます。例えば、お客様が最高のパフォーマンスを得られるように、サービスは自動的にチューニング案を提案することができます(例:構成、冗長性レベル、リソースの割り当ての調整)。また、サービスは、お客様がサービス品質の問題に悩まされていることを知り、人間によるサポートでお客様の苦情に反応するのではなく、積極的にお客様に働きかけ、解決策や回避策を提供することができます。 エンジニアリングの高い生産性。ソフトウェアエンジニアやサービスエンジニアは、サービスのライフサイクル全体を通して、効果的かつ効率的にサービスを構築・運用するための強力なツールを手に入れることができます。エンジニアやオペレーションは、(1)問題を調査するために様々なソースから手作業で情報を収集する、(2)繰り返される問題を修正する、といった面倒な作業から解放されます。また、エンジニアやオペレーターは、AI/ML技術によって、システムの動作パターンを学習し、サービスの動作や顧客の活動の将来を予測して、必要なアーキテクチャの変更やサービス適応戦略の変更などを行うことができます。