アプリケーション・パフォーマンス管理(APM)とは、ソフトウェア・ツール、データ分析、アプリケーション管理プロセスを使用して、組織がビジネス・アプリケーションのパフォーマンス、可用性、ユーザー・エクスペリエンスを最適化できるようにする手法のことです。
オブザーバビリティー・ソリューションの前身であるAPMにより、ITチームは、アプリケーション・パフォーマンスの問題がユーザーに悪影響を及ぼす前に、その問題を視覚化し、防止、予測し、対処できるようになります。
APMはアプリケーション・パフォーマンス監視の略語でもあり、監視ツールは応答時間、エラー率、リソース使用率、ユーザー・アクティビティーなどのアプリケーション・パフォーマンス・メトリクスに関するデータを継続的に収集します。これらの用語は多くの場合同じ意味で使用されますが、パフォーマンス監視は総合的なアプリケーション・パフォーマンス管理戦略の1つの要素にすぎません。
監視に加えて、APMはデータ分析プロセス(傾向、不規則性、パフォーマンスのボトルネックを特定するため)、トラブルシューティング・プロトコル(根本原因分析と問題解決を自動化するため)、最適化ツール(パフォーマンスの低下を事前対応的に解決し、ユーザーにとってのアプリの効率を最大化するため)を使用します。
APMソリューションは、ITチームがユーザーにとって最も重要なアプリケーションとサービスがどれか、パフォーマンスの問題がユーザーの生産性にどのような影響を与えるかを判断するのにも役立ちます。
効果的なAPMツールと高度なオブザーバビリティーソリューションは、エンド・ユーザーにサービスを提供するためにソフトウェア・アプリケーションに依存している組織にとって非常に貴重なものとなります。
APMツールは、特に組織のアプリケーション・ポートフォリオが複数のIT環境(ハイブリッドクラウドやマルチクラウドなど)に分散している場合に、開発者がエンタープライズ・アプリケーションの健全性とパフォーマンスを維持するのに役立ちます。APMシステムの正確な構成は企業ごとに(またツールごとに)異なりますが、主要なAPMツールのほとんどは5つの主要な次元の範囲内で動作します(元々はGartner Research社によって公開されました)。
パッシブおよびアクティブのエンドユーザー・エクスペリエンス監視ツールは、ユーザーがアプリをどのように体験し、操作しているかを評価します。パッシブ監視とは、実際のユーザーからユーザー・データ(センサー、ネットワーク・トラフィック、エラー・ログなど)を継続的に収集することです。
アクティブ監視は、ユーザーのアクティビティーをシミュレートして、状況に応じたソフトウェアの動作(例えば、予期しないトラフィックの急増時にアプリがどのように動作するか)をより適切に理解および予測します。
例えば、APMソフトウェア内のエクスペリエンス監視ツールは、動作スクリプト(またはパス)を実行して、Eコマース・サイトでの決済プロセスにおける顧客体験をシミュレートできます。その後、ソフトウェアはスクリプトを監視して、アプリが支払いを処理する速度とチェックアウトのスループットを把握できます。
ランタイム・アプリケーション・アーキテクチャー監視により、アプリケーションの基盤となるアーキテクチャーを可視化できます。これにより、ITチームは、さまざまなアプリ・コンポーネントと依存関係(データベース、サーバー、ネットワーク・デバイス、仮想マシンなど)がどのように相互作用してアプリケーションをサポートするかを理解できるようになります。
APMツールはモデリング・プロセスを自動化し、アプリ、サービス、インフラストラクチャー・コンポーネント、ユーザー・インタラクションのトポロジーを動的にマッピングします。オンプレミスのデータセンター、プライベートクラウド、パブリッククラウド(SaaSソリューションを含む)、ハイブリッドクラウド環境にわたってマッピングするのが理想的です。APMトポロジー・マップは、ITチームがパフォーマンスのボトルネックと最適化の機会を迅速に特定するのに役立ちます。
トランザクション・プロファイリングはビジネス・トランザクション管理とも呼ばれ、監視に対してより具体的なアプローチを提供します。プロファイリング機能は、ユーザーのデバイスからトランザクションに関係するすべてのアプリケーション・コンポーネントまたはリソースまで、アプリケーション・スタック内を移動する特定のユーザー・トランザクションを追跡します。
この監視アプローチにより、開発者は重要なアプリの機能に関する詳細な洞察を得ることができるため、問題のあるコンポーネントやパフォーマンスが低いコンポーネントがユーザー・エクスペリエンスに影響を与える前に対処できます。
DDCMは、個々のアプリ・コンポーネント(Webサーバーやアプリケーション・サーバーなど)に焦点を当て、特定のコード・セクション、外部サービス呼び出し、データベース・クエリ、その他の要素をコード・レベルで監視します。
特定のアプリのコンポーネントを調べることで、チームはパフォーマンスの問題の根本原因を迅速に特定し、無関係なコンポーネントに影響を与えることなく、的を絞った改善を行うことができます。
APMソフトウェアは膨大な量のデータを収集し、APMツール内の分析機能とレポート機能は、収集したデータを実用的な洞察に変換するプロセスの中心となります。
APMプラットフォームは、各監視タッチポイントから収集されたデータを集約して、わかりやすいレポート、ダッシュボード、視覚化を作成し、ITチームがパフォーマンスの傾向を特定し、ソリューションと最適化について情報に基づいた意思決定を行えるようにします。
注目すべきことに、Gartner Research社はその後、5つの側面を3つにまとめました。エンド・ユーザー・エクスペリエンス監視は、今ではデジタル・エクスペリエンス監視(DEM)と呼ばれています。アプリケーションの検出、トレース、診断(ADTD)ディメンションには、ランタイム・アーキテクチャーの検出、ユーザー定義のトランザクション・プロファイリングという、以前は別々であったものの相互にリンクされていた3つの機能が含まれます。レポートと分析のディメンションは、スタンドアロン機能のままです。
アプリケーション・パフォーマンス監視ツールは監視のみに焦点を当てており、APMの1つの側面のみを表示します。
従来の監視ソリューションは、「エージェント」と呼ばれる小さなソフトウェア・コンポーネントに依存しています。これらのコンポーネントは、アプリケーション環境とサポート・インフラストラクチャー全体にデプロイされ、パフォーマンスとパフォーマンス関連のメトリクス(またはテレメトリー)を定期的に(1分ごとに1回など)サンプリングします。より現代的なソリューションでは、エージェントレス監視を使用して非侵入型のデータ収集アプローチを採用し、ネットワーク・トラフィック分析を利用してアプリケーションのパフォーマンス・データを収集します。
アプリケーション・パフォーマンス管理は、多くの点で、アプリケーション・メンテナンス・ライフサイクルにおける次の自然なステップです(監視の後)。アプリケーション・パフォーマンス管理システムは、アプリケーション・パフォーマンス・データと監視プロセスから洞察を得て、開発者がエンタープライズ・アプリケーションのパフォーマンスと可用性を最適化できるようにします。
APMソリューションは、アプリケーション内のサービスから豊富なデータと分析を取得するための万能ツールを提供します。アプリケーション・アーキテクチャーを観察可能にします。APMアプローチは、以前は高品質のアプリケーション管理には十分でしたが、複数のランタイムと複数のレイヤーを持つ分散型アプリケーションとサービスを管理するには不十分でした。
今日のアプリケーションはサービスとマイクロサービスに依存しており、多くの場合、コンテナ化されたKubernetesクラスターで実行されます。つまり、複数のランタイムがあり、各ランタイムがアーキテクチャー内の異なる場所にログを出力することになります。APMを使用して複数のランタイムに対応するには、開発者は複数のAPMツールをデプロイする必要があります。また、各場所からのロギング・データを統合するには、ログ・ストリーミング・サービスまたは別の集約ツールを使用する必要もあります。
また、企業がアーキテクチャーにサービスやマイクロサービスを追加すると、複雑さが増し、何か問題が発生した場合にリクエストを追跡することが難しくなります。
オブザーバビリティーソリューションは、アプリケーションのログ記録と監視に対して総合的な クラウドネイティブ・アプローチを採用することで、APMツールを上回ります。シームレスなプロセス自動化を提供し、履歴コンテキスト・データと連携して、チームがエンタープライズ・アプリケーションをより適切に最適化できるようにします。
オブザーバビリティーツールを使用すると、チームはサービスが相互にどのように動作するか(例えば、依存関係グラフを使用)をよりよく理解し、全体的なアーキテクチャーに適合させることができます。また、オブザーバビリティーソリューションを使用してアプリケーション・データを集約および検証し、そのデータから実用的な洞察を得ることもできます。
今日のAPMツールは多用途で、企業がカスタマイズされたAPM戦略を実装するのに役立つさまざまなカスタマイズ可能な機能を備えています。各機能は、ITチームがアプリケーション・エコシステムにフルスタックのオブザーバビリティーを導入するのに役立ちます。例としては、次のようなものがあります。
他の多くのIT運用(ITOps)プラクティスやソリューションと同様に、APMツールは人工知能(AI)の普及とクラウド・コンピューティングの進化に伴って大きく変化しました。
従来のAPMツールに関連付けられた定期的なサンプリングは、モノリシック・アプリや従来の分散型アプリケーション(新しいコードが定期的にリリースされ、ワークフロー、依存関係、サーバー、および関連リソースがよく知られているか、簡単に追跡できるもの)を管理するには十分でした。
しかし今日、企業が最新のアプリケーション開発手法とクラウドネイティブ・テクノロジー(アジャイルやDevOps手法、マイクロサービス、Docker、コンテナ、Kubernetes、サーバーレス関数など)を採用するにつれて、従来の監視戦略では対応しきれない数の言語と場所にまたがって、新しいアプリ・コンポーネントを頻繁にデプロイするケースが多くなっています。
さらに、従来のAPM技術では、コードの実行を監視して問題を診断します。しかし、今日のクラウドベースのSaaSアプリケーションは、数百万行のコードで構成されており、多くの場合、複数のコンテナに分散されています。
そのため、主要なAPMツールでは、フルスタックのオブザーバビリティーを実現する最先端の監視機器を導入し、AIと機械学習(ML)テクノロジーを活用して、データをリアルタイムで相関させて分析しています。
AI 駆動型APMツールは、複雑な分散型IT環境全体で動作し、大量のパフォーマンス・データを迅速に分析し、パフォーマンス・データとコンテキスト・データを相関させ、パフォーマンスの問題の根本原因を特定できるAIアルゴリズムを導入します。
最新のAPMシステムでは、予測分析を生成し、パフォーマンスの傾向を予測するためにMLモデルも使します。また、自然言語処理(NLP)機能により、APMソフトウェアはパフォーマンス・データを系統的にふるいにかけ、チームにわかりやすい言葉で洞察を提供できます。
AIテクノロジーには課題がないわけではありません。説明可能性、プライバシー、データ・セキュリティーは、AIベースのITツールに共通する懸念事項です。ただし、AI駆動型APMソフトウェアは、監視とトラブルシューティングを大幅に加速し、企業がアプリケーション・ポートフォリオに関してよりスマートで事前対応型の意思決定を行うのに役立ちます。
APMは、エンタープライズ・ソフトウェア・アプリケーションの効率性と信頼性の維持に役立ちます。また、以下のことを促進します。
APMツールは、過去のパフォーマンス・データに基づいて将来のリソース・ニーズを予測し、より効果的な容量計画を可能にし、需要の増加に応じて企業がインフラストラクチャーを拡張できるようにします。
APMは、ソフトウェア開発ライフサイクルを通じて継続的なフィードバックを促進できます。チームはステージング環境と本番環境の両方でアプリを監視できるため、開発者は継続的なフィードバックの文化を確立できます。
SLAはほとんどのビジネス・アプリケーションのパフォーマンス標準を規定し、APMサービスはSLAへの準拠を維持するために必要なデータを提供します。コンプライアンスのメトリクスは、SLAの遵守を証明するために利害関係者レポートで使用することもできます。
外部 API を使用するアプリケーションの場合、APMツールは API の応答時間とエラー率を追跡できるため、組織はアプリケーションのパフォーマンスに影響を及ぼす可能性のあるサード・パーティーのサービスの問題を特定できます。
APMツールは、以下の促進に役立ちます。
IBM Instana Observabilityでアプリケーション・スタック全体を自動的に観察、監視、修正します。
カスタム・アプリケーションのポートフォリオ全体で、最高の性能と高いユーザー満足度を提供します。
Full Stack Observabilityと自動化されたアプリケーション・リソース管理を橋渡しし、顧客体験に影響を与える前に性能の問題に対処します。