システム運用の課題
昨今のシステムは、クラウド利用の増加やマイクロサービス化等により高度かつ複雑な構成となるものが多く、そのようなシステムの安定稼働に運用者は頭を悩ませています。
図1:クラウド運用の課題
また同時にIT技術者も不足してきており、障害対応が可能な人材が足りない、ということも生じてきています。このような状況下では、今までの障害対応のやり方では障害復旧までに時間がかかり、稼働率の低下からSLA違反となってしまう可能性もあります。
このような課題へのアプローチとして近年利用が増えているものがAIOpsです。これは、文字通りAIを利用し運用を効率化するものです。運用作業の一部をAIで置き換え、迅速な処理が可能になることで、システム運用の大幅な効率化に繋がると考えられます。では、AIOpsは具体的にどのようなものなのでしょうか。
AIOpsのいま
AIOpsは一般的に、データを入力し、AIにより分析し、データの異常や、相関、因果関係等の結果をシステム運用に役立てるものです。
図2:AIOpsの流れ
入力データについては様々なものが考えられますが、よく用いられるものはシステムのテレメトリデータ(メトリクス、ログ、トレース)です。その他、ヘルプデスクで用いられるような自然言語処理等もAIOpsの一種と言えます。本稿ではAIOpsの適用例として、障害復旧時間を短縮するユースケースについて紹介します。
一般的な運用フローを例として考えます。このフローでは障害発生時、監視アラート発出後、適切な運用者へエスカレーションを経て、アラート内容やそれに関連するログやメトリクスを確認します。この時、運用者は自身の知識や経験から障害の原因を特定し、対処を行いますが、環境が複雑になるほど時間がかかってしまいます。
図3:運用フローの例
この作業をAIで置き換えた場合、AIがアラートに関連するログやメトリクスを自動的に紐づけ、障害の根本原因分析を行うことで、短時間で障害の原因を絞り込むことができ、障害復旧時間を短縮することができます。つまり、AIOpsを導入した場合、迅速な障害対応フローを実現することができ、稼働率や顧客満足度の向上が期待できます。
このようなAIOpsを実現するためには、AIOps機能のあるツールを使う必要があります。障害対応に利用したい場合は、異常検知や根本原因分析等の機能があるツールを選びます。しかし、AIOpsの実現には様々な課題が存在します。AIOps導入の際には、これらの課題について整理する必要があります。
AIOpsの実現に向けて
AIOps実現の課題としては主に以下のようなものがあります。いずれも検討開始時に考慮に入れ、適切にAIOpsを導入することが重要です。
運用課題がAIOpsで解決できるかわからない
AIOpsは適用範囲が広く、どのような運用課題が解決できるのか初見ではわかりづらい側面があります。また、あらゆる運用課題の解決に適しているものでもないため、導入はしたが根本的な課題解決に至らない可能性もあります。例えば、簡単な自動化で解消できる課題や、設計や運用フロー自体に課題があるもの等は、AIOpsを導入しても大きな効果は見込めません。現在の運用課題を整理し、AIOpsのユースケースや適用事例を確認しながら導入後のイメージを策定し、適切な箇所に適用することが重要です。
どのようにツールを選べばよいか分からない
AIOpsツールは様々なものがあり、運用課題やシステムの環境に対して最適なツールを選ぶことは簡単ではありません。机上検討では良いものであっても、実際に導入した場合に想定した結果が出ない、ということもあり得ます。また、AIOps機能だけでなく、ライセンスの考え方やセキュリティ要件等も確認することが必要です。AIOpsツールはトライアルライセンスの利用ができるものが多いため、トライアル利用を行い、適しているツールであるかを確認することが望ましいです。
AIOpsツールを使いこなせる運用者がいない
AIOpsツールは高度なものが多いため、運用者が一部機能しか使えず、ツールによって置き換えられる箇所も人力のまま、ということもあります。実際の導入時にはツールの機能や特性を踏まえた詳細な運用フローを策定すること、また研修等も利用し、運用者が適切にツールを使えるようにすることが必要です。
NTTデータでは、このようなAIOps導入時の課題を解決するために、アセット整備と導入支援を実施しています。AIOpsの導入時だけではなく、導入後の運用や、その後の展開等も視野に入れています。これらのアセットを各フェーズにおいて利用することで、最適なアプローチでAIOpsを実現することが可能となります。
図4:提供アセット
現在は、整備したアセットを用いて実際のシステムでAIOpsの利用検証を行い、効果の確認やアセットの改善を実施しています。とある案件では、障害の原因特定時間が50%以上削減できることが確認できました。この案件では、障害発生時、各サーバにログインし手あたり次第メトリクスやログを確認しながら障害の原因特定を行っていましたが、AIOpsの導入によりこの作業をAIに置き換えることができました。
また、クラウド等の運用について検討する際には、本記事で取り上げた障害対応だけではなく、セキュリティ等も考える必要があります。NTTデータではこのようなクラウド運用の効率化のために、AIOpsだけではなく、SecOpsやFinOps等も含めたCloudOpsについても検討しています。
図5:CloudOpsについて
NTTデータ社内でもクラウド運用で困っている案件は多く、CloudOpsの提案機会が増加しています。NTTデータでは引き続き、CloudOps適用のためのアセット整備や支援体制の強化に取り組んでいきます。AIOpsをはじめとしたCloudOpsの実現によりさらなる運用の効率化を図り、顧客満足度の高いシステムを世の中に提供していきます。