TechTargetは2025年3月13日、「アプリケーションパフォーマンスの監視と管理の違い」に関する記事を公開した。アプリケーションパフォーマンスの監視と管理の微妙な違いについて、アプリケーションの効率やユーザー体験といった観点から解説する。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
TechTargetは2025年3月13日(米国時間)、「アプリケーションパフォーマンスの監視と管理の違い」に関する記事を公開した。多くのIT担当者は「APMは重要だ」と考えている。しかし、「APMとは何か」と尋ねれば、その答えは人によって異なることが多い。ある技術者は「アプリケーションパフォーマンス監視」(Application Performance Monitoring)のことだと言い、別の技術者は「アプリケーションパフォーマンス管理」(Application Performance Management)と答えるだろう。
このような言葉の捉え方の違いは、APMの取り組み方、実践方法、成果において重要な意味がある。これら2つのAPMは、10年以上にわたりITの中核的な実務として定着しており、アプリケーションのパフォーマンス向上、ダウンタイムの削減、エンドユーザー体験の改善に貢献してきた。ただし、両者を“表現が違うだけで同じもの”として扱うのではなく、それぞれの違いと意味合いを正しく理解することが重要だ。
アプリケーションパフォーマンス監視は、アプリケーションの状態を追跡し、応答の遅さ、CPUやメモリの使用率の異常な高さといった問題を特定する。一方、アプリケーションパフォーマンス管理は、アプリケーションのパフォーマンスを監視するだけでなく、改善や最適化の機会を特定することも目的としている。
いずれの場合も、チームは一般的に監視ツールを用いて、アプリケーションのパフォーマンス指標(メトリクス)やログを収集する。こうしたメトリクスやログは、アプリケーションに依存関係を持つ上流や下流のサービスから収集することもあれば、アプリケーションをホストするサーバなどのITインフラから取得することもある。
収集されたパフォーマンスに関するデータは、以下のような問題の兆候がないかどうかを分析するために使用される。
これらの洞察に基づき、技術者は問題への対応と修復が可能になる。アプリケーションパフォーマンス管理では、このプロセスを一歩先に進め、アプリケーションのパフォーマンスを継続的に向上させる手段も模索する。
アプリケーションパフォーマンスの監視と管理は、どちらもアプリケーションのパフォーマンスに関連する問題を特定し、修正することで、ユーザー体験(ユーザーエクスペリエンス)の向上に貢献する。また、どちらも、リアルタイムでのメトリクスやログデータの収集、分析といった手法を用いて、パフォーマンスの問題を検出する点が共通している。
しかし、このような共通点を除けば、両者は異なるプラクティスだ。ここからは、5つの観点で、2つのAPMの主な違いを説明する。
両者の最も大きな違いは、適用範囲にある。
アプリケーションパフォーマンス監視は、問題の「検出」と「対処」に特化した手法だ。アプリケーションの動作が低下していることをチームに通知し、ユーザー体験の阻害を防ぐための対応を促す。
アプリケーションパフォーマンス管理は、問題の検出と修復に加えて、アプリケーションのパフォーマンスを継続的に最適化することも目的とする。つまり、単なる障害対応にとどまらず、中長期的な効率向上と将来的なリスク軽減も考慮している。
アプリケーションパフォーマンス管理では、例えば次のような対策が行われる。
アプリケーションパフォーマンス管理は、パフォーマンス問題の「特定と修復」と「継続的な改善機会の発見と実行」という2つの目標を持つ。そのため、アプリケーションパフォーマンス監視は、アプリケーションパフォーマンス管理の構成要素、あるいはその一部として位置付けられる。
パフォーマンスデータの収集と分析に用いられるAPMツールは、“監視”と“管理”で共通している場合が多い。ただし、アプリケーションパフォーマンス管理では、監視やデータ収集の範囲を超えて、追加のソフトウェアが必要になることもある。例えば、アプリケーションのコード内に潜む非効率的な処理を特定するために、ソフトウェアデバッグツールやコード最適化ツールを用いることがある。これらのツールは、開発者がアプリケーションの内部ロジックを改善する際に役立つ。
アプリケーションパフォーマンス監視は、主にリアルタイムでのパフォーマンス問題の検出と対応に焦点を当てている。別の言い方をするなら、将来のパフォーマンスに関する考慮は監視の主目的ではない。
パフォーマンスの問題検出とトラブルシューティングは、アプリケーションパフォーマンス管理の領域だ。ただし、アプリケーションパフォーマンス管理には、アプリケーションの将来的なパフォーマンスを最適化する役割もある。つまり、アプリケーションパフォーマンス管理は、より長期的なタイムラインにわたる取り組みであり、現状のパフォーマンス管理にとどまらず、将来に向けた改善と最適化を目的としている。
アプリケーションパフォーマンス管理は、幅広いデータ種別とデータソースを対象としている。例えば、アプリケーションパフォーマンス監視の対象であるアプリケーションのパフォーマンスに関連するメトリクスやログも、主要なデータソースだ。アプリケーションパフォーマンス管理ではそれに加え、アプリケーションのホスティングにかかるコストに関連するデータなども分析対象となることがある。このような情報は、パフォーマンスを損なうことなくコストを削減する方法を見つけるために有用だ。こうした分析は、アプリケーションパフォーマンス管理の重要な目的の一つだ。
同様に、アプリケーションパフォーマンス管理では、メトリクスのような定量データだけでなく、ユーザーからの定性的なフィードバック(全体的な使用感や体験に関する意見)を分析対象に含めることもある。こうした洞察は、優先的に改善すべきアプリケーションの機能や特性を判断する助けとなる。例えば「ユーザーが最も価値を感じていると報告された機能のパフォーマンス最適化を優先する」といった具合だ。
アプリケーションパフォーマンス監視は、現時点におけるアプリケーションの状態を追跡することに重きを置いている。アプリケーションパフォーマンス管理では、アーキテクチャ自体の見直しや変更などに取り組むことがある。例えば、パフォーマンスを長期的に最適化するために、モノリシックなアプリケーションをマイクロサービスアーキテクチャにリファクタリング(再構築)する、といった施策が検討される場合もある。
“監視”も“管理”も、主に担当するのはIT運用チームだ。なぜなら、運用環境におけるアプリケーションのパフォーマンス管理をIT運用チームが担っていることが多いからだ。
ただし、アプリケーションパフォーマンス管理を実施する際には、他部門の協力が必要になることがある。例えば、アプリケーションのコードやアーキテクチャを改善するためには、ソフトウェア開発者の協力が不可欠だ。ITセキュリティへの影響を考えれば、アプリケーションのコード変更やデプロイメントパターンの変更時には、セキュリティアナリストに声を掛けた方がよいだろう。
一方、アプリケーションパフォーマンス監視は、より限定されたプロセスとなるため、多くの場合はIT運用チームが単独で実行する。
アプリケーションパフォーマンスの監視と管理の両方を導入することで、IT部門は多くのメリットが得られる。アプリケーションパフォーマンス監視は、発生しているパフォーマンス問題をリアルタイムで検出できる。アプリケーションパフォーマンス管理は長期的なパフォーマンス最適化を支援する。
この2つのAPMを実装するには、まずアプリケーションパフォーマンス監視から始めるのが理にかなっている。“監視”は必要とするツールもデータ量も比較的少なく、導入のハードルが低いからだ。対象となるアプリケーションのログを収集、分析できるAPMソフトウェアを導入すればよく、またそうしたソフトウェアには、アプリケーションのエラー率の上昇や応答時間の遅延といった潜在的な問題を検知するアラートを設定する機能も備わっている。
その後、アプリケーションパフォーマンス監視への投資を拡張し、スケールアップおよびスケールアウトを図ればいい。例えば、アプリケーションのホスティングコストを分析するツールや、アプリケーションコードをスキャンして内部ロジックの最適化機会を特定するツールを導入するなどだ。また、モニタリングの中心となるメトリクスやログに加え、それ以外の種類のデータを収集、分析することも有効だ。
最終的な目標は、2つのAPMをフル活用することだ。そうすれば、アプリケーションパフォーマンス監視によって問題を即時に発見、修正し、アプリケーションパフォーマンス管理によってパフォーマンス問題の発生率を下げ、長期的な運用コストの最適化を図ることが可能になる。
Copyright © ITmedia, Inc. All Rights Reserved.