APM とは何か

APM は、Application Performance Management (アプリケーションパフォーマンス管理) の頭字語ですが、Application Performance Monitoring (アプリケーションパフォーマンス監視) の頭字語でもあります。その違いは後述しますが、ここではアプリケーションパフォーマンス管理としての APM について取り上げます。APM は、アプリケーションのライフサイクル全体を通じてアプリケーションのパフォーマンスを監視および管理する方法です。開発中およびテスト中にアプリケーションがパフォーマンス目標を満たしているかを確認することから、運用環境でのアプリケーションのパフォーマンスを監視し、必要に応じて変更を加えてパフォーマンス目標を継続的に達成することまで、ライフサイクルのすべてが含まれます。

アプリケーションのパフォーマンスには、コード、インフラストラクチャ、ユーザーエクスペリエンスなど、様々な要因が影響します。APM では、Web ベースのアプリケーションとネイティブアプリケーションの両方のパフォーマンスに関する監視と管理を行います。パフォーマンスの問題を特定して診断し、解決できるように設計された APM ツールも多く存在します。

APM の機能

パフォーマンス監視

応答時間やスループット、その他のメトリクスを収集してアプリケーションのパフォーマンスを監視します。異常が検知された場合に適切な担当者に警告通知することが可能です。得られるデータを使用してパフォーマンスのボトルネックを特定し、アプリケーションのパフォーマンスを最適化できます。

キャパシティ計画

アプリケーションパフォーマンスの将来的なニーズを予測して、ニーズを満たすために十分なリソースが利用可能かどうかなどをチェックすることが含まれます。

パフォーマンスチューニング

アプリケーションのパフォーマンスを向上させるために、必要であればアプリケーションに変更を加えて調整します。これには、コード、アーキテクチャ、またはインフラストラクチャの変更が含まれる場合があります。

問題管理

パフォーマンス問題へのトラブルシューティング機能です。問題の解決には、ネットワーク運用部門やデータベース部門などの他部門との協力が必要になることがあります。

サービスやアプリケーションに APM がどう役立つか

サービスやアプリケーションをスムーズに稼働させ続けるにはパフォーマンス管理が必要であり、APM は次のような点に関して貢献します。

問題解決

APM は、問題を検出して解決するのに役立ちます。主要パフォーマンス指標 (Key Performance Indicator、KPI) を監視することで、問題を早期に検出して問題の根本原因を解明し、問題が顕在化してエンドユーザーに影響が及ぶ前に是正措置を講じることができます。パフォーマンスに関する詳細情報によって、迅速かつ効率的に問題解決できます。

ダウンタイムの削減

サービスとアプリケーションのパフォーマンスを監視し、発生する可能性のある問題を特定して診断できるため、重要なビジネスアプリケーションのダウンタイムを回避するのに役立ちます。潜在的な問題を大きな問題になる前に解決することで、サービスをスムーズに実行し続けられるようにできます。

パフォーマンス向上

APM は、サービスとアプリケーションのパフォーマンスを向上させるのにも役立ちます。メトリクスデータからサービスのパフォーマンスが低い領域を特定し、パフォーマンスを向上させるための変更を加えることができます。サービスやアプリケーションがどのように使用されているかについての詳細情報を確認して、全体的なエクスペリエンスを向上させるための変更を加えることができます。

運用コストの削減

APM を利用すると、アプリケーションやサービスの分析、監視、レポート作成に必要な時間数が減り、専門的なスキルを持つ社員数がそれほど多くなくても対処できるようになり、運用コストを削減できます。

サービスとアプリケーションを監視することで、コストのかかるダウンタイムにつながる可能性のある潜在的な問題を回避することも可能になります。単なるコスト削減ではなく、ビジネスと製品の全体的な品質にも好影響を与えます。

APM as a Service - サービスとしての APM

サービスとしての APM、APM as a Service は、アプリケーションの管理と監視の新しい方法であり、テクノロジーの進歩を促進します。APM as a Service でアプリケーションをより効率的かつ効果的に監視および管理できるようになり、パフォーマンスと安定性の向上につながります。

APM ツールの種類

メトリクスベースの APM

サーバーとアプリケーションのメトリクスを使用するだけのツールは、アプリが取得するリクエストの数や、潜在的にどの URL のパフォーマンスが悪いかなどはわかっても、コードレベルのプロファイリングを行わないので、その理由を伝えることはできません。

コードレベルのパフォーマンス APM

プログレスの Flowmon、Stackify Retrace、New Relic、AppDynamics、Dynatrace は、コードプロファイリングとトランザクショントレースに基づく、典型的な APM ツールです。

アプリケーションパフォーマンス管理とアプリケーションパフォーマンス監視

アプリケーションパフォーマンス管理とアプリケーションパフォーマンス監視は、既述のようにどちらも頭字語としては APM となり、ソフトウェアアプリケーションのパフォーマンスを向上させるための重要なアプローチです。前者はパフォーマンス問題の根本原因の特定と対処に重点を置いており、後者はアプリケーションのリアルタイムの動作を可視化します。

管理ツールは通常、アプリケーションコードから基盤となるインフラストラクチャまで、包括的なパフォーマンスの可視性を提供します。この可視性は、遅いデータベースクエリ、非効率的なコード、ネットワーク遅延などの問題を特定するのに役立ちます。管理ツールには、多くの場合、アプリケーションのトレースやプロファイリングなどの機能が含まれており、パフォーマンスのボトルネックをさらに詳細に把握できます。

一方、監視ツールは、包括的な可視性は低くなりますが、アプリケーションのパフォーマンスに影響を与えている問題を素早く特定するのに役立ちます。監視ツールは通常、応答時間やエラー率などの主要パフォーマンス指標 (KPI) の監視に重点を置いています。これらの KPI を監視することで、サーバーの過負荷やネットワーク接続の遅延などの問題を特定できます。 プログレスの WhatsUp Gold には、アプリケーションの KPI を監視するために特別に設計されたモジュール統合製品として提供されています。


Tags