IT運用における人工知能(AIOps)の活用は、ディープラーニング、データストリーム処理、ドメイン知識に由来する高度な手法を組み合わせ、内外のソースから取得したインフラストラクチャデータを分析することによって、運用を自動化し、異常(通常と異なるシステム挙動)がサービス品質に影響を与える前に検出しようというものである。ベルリン工科大学教授のOdej Kao氏はDevOpsCon Berlin 2021で、IT運用における人工知能の利用に関する基調講演を行った。
ログ情報は最も有力な情報源であり、広範に利用可能であると同時に、AIベースの予測モデルによる処理に適している、とKao氏は説明する。
データストリーム処理においては、十分な量のデータ収集に苦労することが少なくありません。一方、AIOpsでは、一般的なITインフラストラクチャで生成される、数テラバイトの容量を持った多数のデータソース(メトリクス、ログ、トレース、イベント、警告)が存在します。これらの情報に秘められた力を利用してDevOps管理者を支援すると同時に、AIモデルの助けを借りることで、可用性、セキュリティ、並びにシステム全体のパフォーマンス向上を実現します。
AIを活用したログ分析は、将来的なIndustory 4.0、IoT、スマートシティやスマートホーム、自動運転、データセンタ、IT組織では必須のコンポーネントになるだろう、とKao氏は予測する。
大部分の企業は、すでにAIOPプラットフォーム運用の準備を完了している — 運用中の監視やELKスタックは、AIベースの分析ツールで拡張することによって、可用性、パフォーマンス、セキュリティを確保していく必要がある、とKao氏は言う。
講演の中でKao氏は、AIOpsのワークフローを紹介した。
ワークフローはまず、さまざまなソースのデータを収集することから始まります — ハードウェアからはCPU/メモリ/ネットワーク使用に関するメトリクスデータ、ログスタッシュからシステムログ、リソースマネージャから分散トレース、といった具合です。ここで難しいのは、現行のインフラストラクチャの全体像を獲得することです。仮想化やSDN、VNFなどによってシステムは短期間に変化するため、現時点のトポロジグラフと依存関係を見つけ出す必要があります。
それにより、記録されたデータをソースにマップして、AIOpsパイプラインを活性化することが可能になります。一般的にこれは3つのステップで構成されます — 異常検出(anomaly detection)、真因解析(root cause analysis)、意思決定改善(decision-making remediation)です。最初の2つのステップでは、さまざまなディープラーニング技術を活用します。また意思決定では、システム異常処理の自動化を目的とします。
最低限の要件はDevOps管理者への警告通知ですが、将来的には、事前定義されたリカバリワークフローのアクティベーションや、さらには新たなワークフローの動的設計といったものも可能になるでしょう。
IT運用における人工知能の利用について、Odej Kao氏にインタビューした。
InfoQ: AIOpsの実践状況はどのようなものでしょう?
Odej Kao: AIOpsは今、増加段階にあります。すでに多くの企業が、高度な監視インフラストラクチャをインストールし、さまざまなソースのデータを収集、分析することによって、導入への準備を行っています。特にログには、システム運用者によって問題特定の手段として使用されてきた、長い歴史があります。トラブルシューティングにおけるこの情報の力は、多くの人たちが知るところです。
例えば、ログストレージと手作業による分析では、ELKスタックがデファクトスタンダードになっています。理論上の次ステップは、当社のlogsight.aiやmoogsoft、coralogixなどの分析用アドオンで、このインフラストラクチャを拡大することです。これらのコンポーネントは有効な入手可能なデータから異常をリアルタイムで検索し、インシデント警告やレポートを発行した上で、最終的にはトラブルシューティングに必要なデータをすべて収集し、企業の所持するKibanaやダッシュボードに可視化します。
今あるAIOPプラットフォームはいずれも良好に動作していますが、説明可能性や真因分析、誤警報の防止、自動修正といった部分においては、さらなる研究開発が必要です。2、3年以内には大半の企業が、将来のIoT世界におけるデータセンタの複雑性増加に対処する目的のみから、AIOPプラットフォームを運用するようになるでしょう。
InfoQ: AIOPにはどのようなアプローチがあって、そのおもな違いは何なのでしょうか?
Kao: 違いは主として、予測モデルの設計にあります。説明可能性(そのアクションが選択されたのはなぜか)と適応性(未知の状態や課題への対応)とのバランスによって、一般的には3つの異なるアプローチが存在します。
DevOpsdの知識から継承したルールセットを利用するのが、ルールベースアプローチです。これは説明可能性は十分なのですが、対象が既存の、事前定義されたカタログに制限されます。
教師あり学習モデルは、システムに障害をインジェクトして、出力を記録することによって生成されます。対応する入力/出力値が、そのモデルの学習ベースとして機能します。極めて高速に動作する反面、障害のインジェクションに使用される研究モデルが、ノイズ(アップデート、アップグレード、リリース、競合するアプリケーションなど)の面で、実際のシステムとは異なる場合が少なくありません。
教師なしアプローチは、システムがほとんどの場合においてスムーズに動作していることと、異常値の数が正常値に比較して大幅に少ないことを前提とするものです。従って、対応する推測モデルはシステムの正常状態を記述するものになり、期待する(正常な)動作との差異を異常として識別することになります。このアプローチは適応性の面では最高なのですが、検出された異常を分類するためには、異常のタイプを検出する真因解析実行ステップが必須となります。
InfoQ: ログの解析にAIをどのように利用できるのでしょう、それによって得られるメリットは何ですか?
Kao: ログは最もパワフルなデータソースです。人間である開発者によるコードで記載されるものなので、重要な意味情報を含めて記録することが可能になります。広く利用可能であると同時に、メトリクスデータとは対照的に、アジャイル開発で見られるような頻繁な変更にも対応します。
大企業では、1日の間に何千というソフトウェア、ハードウェア、コンフィギュレーションの変更が行われています。そのそれぞれに、エラーの発生源となる可能性があるのです。ログは、変更がシステム全体に与える影響を理解し、レコードデータを解釈するための一助となります。すべての変更が推測モデルに影響し、"新たな正常"を作り出します。これをログで検索し、適用することができるのです。
エラーやパフォーマンス低下、あるいはセキュリティ上の問題など、修正によって変化したシステムの挙動が説明できないような場合には、その原因に最も近いログ行が表示されます。当社のツールであるlogsight.aiは、3~5分で350,000行のログのロード、プリプロセス、分析を行って、そのデータ含まれる60種類のエラーをすべて検出します。これにより、トラブルシューティングを大幅にスピードアップすることで、開発者や運用担当者を支援するのです。
DevOps管理者は、無関係な数千行のログを見回す必要から解放されます。関連する情報はダッシュボードに表示されるので、確認した問題の解決にすぐに取り組むことができます。これがシステムの可用性、パフォーマンス、セキュリティに与える影響は計り知れません。
ログ分析の効果は、DevOpsへのサポート提供やトラブルシューティングだけではありません。サイバーセキュリティ、コンプライアンスと規制、ユーザエクスペリエンスなど他の分野においても、分析結果が重要な貢献をもたらす可能性があります。
InfoQ: AIOpsは今後、私たちに何をもたらしてくれるでしょう?
Kao: すべてのインフラストラクチャにおいて、AIOpsプラットフォームは標準的なコンポーネントになると思います。多くのSRE/NREを雇用するという現在のアプローチでは、データセンタの成長やエッジのスコープの拡大、フォグ(fog)コンピューティング環境に追随することはできません。
その上、ログはすべての自律的システム -- 乗用車の自動運転からスマートシティや家庭のIoTセンサに至るまで -- において重要な位置を占めていて、デバッグや不正検出、セキュリティ向上、さらには法的請求の基盤にも利用されています。
ですから、このようなAIを活用した基本的運用の自動化への投資なしには、データセンタや複雑なインフラストラクチャが将来的にその義務を全うできるとは考えられないのです。