APMとは何か？クラウドネイティブにおけるアプリケーション性能監視

**本記事は[What is APM? Application performance monitoring in a cloud-native world](https://www.dynatrace.com/news/blog/what-is-apm-2/)の抄訳になります。**

Application Performance Monitoring (APM) とは何か、そしてクラウドネイティブの世界ではなぜそれが重要かについて解説した記事になります。

最新のクラウド・ネイティブ環境に対応したアプリケーション・パフォーマンス・モニタリング（APM）は、システムの可用性やサービスのパフォーマンス、応答時間にとどまらず、オブザーバビリティを拡大します。自動化されたインテリジェントなオブザーバビリティにより、組織はユーザーエクスペリエンスを向上させることができます。

# APMとは何か?

Application Performance Monitoring（APM）は、監視ソフトウェアとテレメトリデータを用いて、ソフトウェア・アプリケーションの主要なパフォーマンスメトリックを追跡する手法です。APMは、システムの可用性を確保し、サービスのパフォーマンスと応答時間を最適化して、ユーザーエクスペリエンスを向上させるために使用されます。

モバイルアプリケーション、Webサイト、ビジネスアプリケーションなどが典型的なモニタリングの対象となります。しかし、今日の高度に接続されたデジタル世界では、モニタリングのユースケースは、サービス、プロセス、ホスト、ログ、ネットワーク、およびこれらのアプリケーションにアクセスするエンドユーザ（企業の顧客や従業員を含む）にまで拡大しています。

# APMとは何の略ですか?

APMは以下のように呼ばれることがあります。

* [アプリケーション・パフォーマンス・モニタリング](https://www.dynatrace.com/platform/application-performance-monitoring/)
* [アプリケーション・パフォーマンス・マネジメント](https://www.dynatrace.com/platform/application-performance-management/)
* [アプリケーション・モニタリング](https://www.dynatrace.com/solutions/application-monitoring/)
* アプリケーション・パフォーマンス
* パフォーマンス・モニタリング

アプリケーション・パフォーマンス・モニタリングは、特定のメトリクスと測定値に焦点を当てています。アプリケーション・パフォーマンス・マネジメントは、アプリケーション・パフォーマンス戦略を開発および管理するより広範な規律です。これらの用語はすべて、関連する技術と実務を指します。

# なぜビジネスにAPMが必要なのか

お客様は毎日、買い物、テレビ番組や映画のストリーミング、ソーシャルメディアへの接続、財務管理、仕事などにアプリを利用しています。自宅で仕事をする時代になり、お客様はこれまで以上にこれらのアプリに依存して日常生活を送っています。アプリがクラッシュしたり、読み込みに時間がかかったり、まったく読み込まれなかったりすると、ユーザーは不満を募らせ、企業はブランドイメージの低下や収益の損失を被ることになります。また、社内のビジネスアプリケーションに不具合が生じれば、従業員の生産性が低下する可能性もあります。

しかし、デジタルチームは、アプリケーションのパフォーマンス問題の[根本的な原因](https://www.dynatrace.com/news/blog/understand-complex-issues-instantly-with-new-root-cause-analysis-capabilities/)を見つけるのが難しいと感じています。原因は、コーディングエラー、データベースのスローダウン、ホスティングやネットワークパフォーマンスの問題など、多岐にわたります。また、オペレーティングシステムやアプリケーションにアクセスするための特定のデバイスとのコンフリクトでも、アプリケーションのパフォーマンスを低下させる可能性があります。

モバイルアプリ、Webサイト、ビジネスアプリなどの最新のアプリケーションは、表面的にはシンプルに見えますが、実際には非常に複雑です。これらのアプリケーションは何百万行ものコードで構成され、相互に接続された何百ものデジタルサービスや[オープンソースのソリューション](https://www.dynatrace.com/news/blog/monitoring-as-code/)を含み、複数のクラウドサービスでホストされたコンテナ化された環境で実行されています。

デジタルチームは[APMツール](https://www.dynatrace.com/resources/monitoring-tools/)を使用して、アプリケーションのパフォーマンスに影響を与える可能性のある多くの変数を確認し、対処しています。APMツールがなければ、チームは発生しうる数多くの問題を解決することができず、お客様が劣悪な体験に苛立ち、アプリを完全に放棄してしまう可能性が高くなります。

# APMの機能とは？APMの主な機能

APMは急速に拡大し、幅広い技術とユースケースを包含しています。[ガートナー社](https://www.gartner.com/en/information-technology/glossary/application-performance-monitoring-apm)によると、"アプリケーション・パフォーマンス・モニタリングは、デジタル・エクスペリエンス・モニタリング（DEM）、アプリケーション・ディスカバリー、トレース、診断、そしてITオペレーションのための目的別の人工知能からなるモニタリング・ソフトウェア・スイートである "とのことです。

APMに関する代表的な業界レポートである[Gartner Magic Quadrant for Application Performance Monitoring](https://www.dynatrace.com/gartner-magic-quadrant-for-application-performance-monitoring/)では、成熟してきたAPMのコア機能を明確に定義しています。これらの機能は、最新のAPMソリューションの基準となっています。

* アプリケーションとそのインフラストラクチャ・コンポーネントの自動検出とマッピングにより、動的環境におけるリアルタイムの認識を維持
* アプリケーションのHTTP/Sトランザクションの挙動をエンド・ツー・エンドで監視し、ビジネスの成果やユーザーエクスペリエンスに与える影響を把握することが可能
* モバイルおよびデスクトップアプリケーションをモバイルおよびデスクトップブラウザ上で監視し、プラットフォーム間のユーザーエクスペリエンスを追跡
* アプリケーション・パフォーマンスの問題とビジネス・アウトカムの根本原因と影響を分析し、より迅速で信頼性の高い問題解決を実現
* 拡大・進化するインフラに対応するための、サービスマネジメントツールやサードパーティソースとの統合と自動化
* ビジネスKPIとユーザー・ジャーニー分析（例：ログインからチェックアウトまで）により、ユーザー・エクスペリエンスを最適化し、変更がKPIにどのように影響するかを透明化する
* エンドポイントモニタリング：モバイルアプリケーションがエンドポイントデバイスに与える影響を理解し、それらのデバイスの問題を特定する
* 仮想デスクトップインフラ（VDI）のモニタリングにより、VDIを使用する従業員の生産性を最大化する

これらの機能は様々な分野に広がっています。ここでは代表的なものをいくつか紹介します。

* **APIモニタリング**：サードパーティのサービスがアプリケーションのパフォーマンスにどのような影響を与えるかを理解
* **アプリケーション・アーキテクチャ**：アプリケーション・アーキテクチャの変更がパフォーマンスやユーザー・エクスペリエンスにどのような影響を与えるかを把握
* **サービスモニタリング**： 個々のサービスがどのように作用し、アプリケーション全体のパフォーマンスにどのような影響を与えるかを把握
* **コンテナ・モニタリング**：個々のコンテナのコンテキストとパフォーマンスへの影響を理解
* **エンドユーザー・エクスペリエンス・モニタリング**：アプリケーションの変更がエンドユーザーにどのような影響を与えるかを理解

# APMのメリットは何か？

APMは、アプリケーションとその依存関係のパフォーマンスに関する可視性と情報を企業に提供するため、技術的およびビジネス的な利点を数多く提供しています。

## 技術的利点

ビジネス、オペレーション、アプリケーション、開発の各チームは、APMの手法やツールを採用することで、以下のような多くの実用的なメリットを享受することができます。

* アプリケーションの安定性とアップタイムの向上
* パフォーマンス問題の発生件数の減少
* パフォーマンス問題の迅速な解決
* ソフトウェアリリースの迅速化と高品質化
* インフラの利用率の向上

## 具体的なビジネスメリット

APMソリューションの導入は、DevOpsの最前線にいる人たちと同様に、役員クラスの人たちにも多くの利益をもたらします。ビジネス上のメリットは以下の通りです。

* 開発者と運用者の生産性向上
* イノベーションに費やす時間の増加
* より良いユーザー体験
* 収益の増加
* 運用コストの削減
* コンバージョン率の向上

## ソフト面でのビジネスメリット

長年APMを使用しているユーザーからは、APMによって予想外の、しかしインパクトのある利点が得られたとの報告もあります。

これらの利点の中で最も顕著なのは、より簡単にコラボレーションができるようになったことです。[優れたAPMソリューション](https://www.dynatrace.com/news/customers/)が提供する新しい洞察力と信頼性の高いインテリジェンスにより、組織全体のチームがより自信を持つことができます。さらに、すべての関係者が同意できる信頼性の高いインテリジェンスの単一ソースは、問題が発生したときにアプリケーション、オペレーション、および開発チームがより迅速かつ容易に連携し、より効果的に協力するのに役立ちます。より効果的なコラボレーションにより、チームは問題をより迅速に解決することができ、イライラする会議室は過去のものとなります。 その結果、リーダーはチームメンバーの仕事への満足度を高め、スタッフの定着率を高めることができます。

# なぜクラウドネイティブアプリケーションではAPMに課題が起きるのか

APM のメリットは確立されていますが、クラウド・ネイティブ・アプリケーションの台頭により、APM をうまく活用することが難しくなっています。例えば、クラウド・ネイティブ・アプリケーションは、バックグラウンドで動的にスピンアップ/スピンダウンする無数のマイクロサービスで構成されているため、はるかに大量のテレメトリデータを生成します。これらの[マイクロサービス](https://www.dynatrace.com/solutions/microservices-monitoring/)はそれぞれ非常に短い期間しか存在せず、独自のテレメトリデータを生成するため、全体的なシグナルノイズが増えてしまいます。このような状況では、アプリケーション・インフラストラクチャ内で発生している最も重要なイベントを見つけ出すことが難しくなります。

また、クラウドネイティブアプリは様々な種類のデータを生成します。例えば、サーバーレス環境からのテレメトリデータは、データベースや仮想マシン（VM）とは全く異なりますが、ビジネスでは、入ってきたすべての情報を正規化して一元管理する必要があります。また、これらのデータが作成される速度も問題です。クラウドネイティブアプリケーションに多数の小規模なマイクロサービスが含まれている場合、データはモノリシックなアプリケーションよりもはるかに速いスピードで入ってきます。これらの要因により、クラウドネイティブアプリケーション環境では、従来のAPMをより困難にする新たな課題が加わっています。

# APMツール vs APMプラットフォーム

クラウドネイティブアプリケーションに伴う[テレメトリデータ](https://www.dynatrace.com/news/blog/the-dynatrace-open-aiops-platform-now-provides-enterprise-grade-observability-for-ingested-opentelemetry-traces/)の氾濫に伴い、パフォーマンスモニタリングツールも数多く登場しています。

APMツールを選択する際、組織は2つのアプローチを取ることができます。すなわち、アプリケーション環境の個々のコンポーネントを把握するための専門的な監視ツールであるポイントソリューションを、デフォルトで、あるいは設計として、チームごとに組み合わせて導入します。あるいは、アプリケーション環境内の多くのレイヤーやユースケースをより完全に網羅する[単一のプラットフォーム](https://www.dynatrace.com/platform/)を選択することもできます。ポイントソリューションは、ローカルレベルではメリットがありますが、マクロレベルでは課題があります。一方、プラットフォームアプローチは、ローカルおよびマクロレベルで明確なメリットを示すAPMの最新ビジョンを包含しています。

## ポイントソリューションの利点

ポイントソリューションは、特定のコンポーネントの監視に特化しており、そのような特定のユースケースに対してメリットを提供します。例えば、メトリクスの可視化を単一のダッシュボードに統合するために[Grafana](https://grafana.com/)を使用している企業もあれば、システムの観測性を高め、パフォーマンス問題のトラブルシューティングを行うために分散型トレース機能を持つ[Jaeger](https://www.jaegertracing.io/)を使用している企業もあります。これらのツールはいずれも、適用される環境に高度に特化しています。

例えば、Kubernetes環境のオーケストレーションを管理するために[サービスメッシュ](https://www.dynatrace.com/news/blog/what-is-a-service-mesh/)を導入するなど、特定の専門的な問題を解決することに集中しているチームは、費用対効果が高く、簡単に導入できるポイントソリューションを利用します。

## ポイントソリューションの課題

ポイント・ソリューションでは、企業のアプリケーション・アーキテクチャの限られた範囲しか見ることができません。この限られた可視性により、アプリケーション・パフォーマンス問題の根本原因を特定することが困難になり、問題発生時のダウンタイムが長くなるという問題が生じます。さらに、アプリケーション・アーキテクチャの単一のビューしか提供されないため、パフォーマンス問題の「原因と結果」を見逃してしまうことがよくあります。たとえば、マイクロサービスの障害によってCPU使用率が上昇した場合などです。その結果、時間とコストの浪費はもちろんのこと、不必要なトラブルシューティングを行ったり、責任の所在を明らかにしたりすることになりかねません。

また、これらのソリューションは、その性質上、対象範囲が限定されているため、[サービスレベル目標（SLO）](https://www.dynatrace.com/news/blog/in-product-guidance-accelerates-service-level-objectives-slo-setup-for-confident-deployments/)や測定基準についてチーム内で意見の相違が生じるサイロを形成する傾向があります。このサイロ効果は、チームが別々のツールや異なる情報に依存することで、より多くの非効率や非難を引き起こす可能性があります。

## プラットフォームアプローチによるAPMの利点

APMは、マイクロサービス、オープンソース技術、クラウド・ネイティブ環境が台頭する前のモノリシック・アプリケーションの時代にルーツを持っているため、一部の業界関係者は、APMプラットフォームには、カスタマイズされたポイント・ソリューションに追いつくために必要な革新性や深みのある機能が欠けていると主張しています。これは、従来のAPMプラットフォームの多くに当てはまるかもしれません。
しかし、Dynatraceのようにクラウドネイティブ環境に[特化して構築](https://www.dynatrace.com/platform/application-performance-monitoring/)され、シンプルで自動化されたデプロイメントモデルを使用するプラットフォームは、特注のポイントソリューションを含めたフルスタックを広く技術的にカバーすることができます。[エージェントレス](https://www.dynatrace.com/platform/oneagent/)のデータキャプチャ（エージェントベースのデプロイメントモデルをサポートできないアプリケーションのユースケース向け）とデータを取り込むためのAPIを活用することで、Dynatraceのようなクラウドネイティブプラットフォームは、ハイブリッド・マルチクラウドネットワーク全体を広くカバーすることができます。この[広範な観測性](https://www.dynatrace.com/platform/observability/)は、複数の環境を横断するマクロレベルのビューを提供し、継続的なディスカバリーと、その上で実行されるアプリケーション、そしてビジネスへの影響によって優先順位付けされたプロアクティブな異常検知を実現します。

# APMの様々な形態

APMモニタリングには、インフラストラクチャモニタリング、ネットワークモニタリング、データベースモニタリング、ログモニタリング、コンテナモニタリング、クラウドモニタリング、[シンセティックモニタリング](https://www.dynatrace.com/news/blog/what-is-synthetic-monitoring/)、エンドユーザモニタリングなど、さまざまな種類があります。特に、レガシーアプリケーションを維持している企業では、数十種類の監視ツールを同時に使用することが多く、最も使い慣れたツールを使って管理しています。これは一見すると最も簡単なアプローチのように見えますが、長期的には問題を引き起こすことが多いのです。フルスタック・オブザーバビリティを提供する単一のAPMソリューションは、これらすべてのユースケースの監視を容易にし、信頼性を高めることができます。

## フルスタックモニタリング

アプリケーション・インフラがオンプレミスとマルチクラウドの両方の環境を包含するように拡大するにつれ、企業は、問題の根本原因がどこにあるかを包括的に可視化できるのは、[フルスタックモニタリング](https://www.dynatrace.com/solutions/full-stack-monitoring/)のアプローチだけであることを理解するようになっています。フルスタックモニタリングでは、インフラの健全性からアプリケーションのパフォーマンス、さらにはエンドユーザーエクスペリエンスに至るまで、インフラ全体をエンド・ツー・エンドで監視することができます。この可視性により、これらすべてのコンポーネントを確認し、それらの間の相互依存関係を理解することができ、すべての疑問に迅速に回答することができます。

# 先進のAPMプラットフォームの利点

Dynatraceソフトウェアインテリジェンスプラットフォームは、ビジネス、オペレーション、アプリケーションに対応するAPMユースケースに、オールインワンの高度なオブザーバビリティを提供します。AIの支援により、チームはオペレーションの自動化、ソフトウェアの迅速なリリース、より優れたビジネス成果の提供が可能になります。[Davis® AIエンジン](https://www.dynatrace.com/platform/artificial-intelligence/)を中核とするDynatraceは、複雑な質問に対する正確な回答をリアルタイムで提供します。

## 先進のクラウドオブザーバビリティ

AWS、Azure、GCPなどの[クラウドプラットフォーム](https://www.dynatrace.com/platform/cloud-monitoring/)の規模、多様な機能、そしてダイナミックな性質を考慮すると、APMソリューションは設定やモデルのトレーニングなしに動作する必要があります。Dynatraceは、ダイナミックなクラウド環境において、スケールとコンテキストに応じた完全なオブザーバビリティをすぐに提供します。Dynatraceは、パフォーマンスメトリクス、ログ、トレース、エンティティリレーションシップ、ユーザーエクスペリエンスとビヘイビアデータ、[OpenTelemetry](https://www.dynatrace.com/integrations/opentelemetry/)を含む最新のオープンソーススタンダードからのデータを、単一のプラットフォームで、設定不要で自動的に提供します。

## 継続的な自動化

クラウドネイティブ環境で、データのメンテナンス、設定、スクリプト、ソースを手動で行おうとすると、人間の能力を超えてしまいます。つまり、企業はアプリケーションの適切なパフォーマンスを確保するために、これらのタスクを[継続的に自動化](https://www.dynatrace.com/platform/automated/)する必要があります。Dynatraceは、デプロイメント、コンフィグレーション、ディスカバリー、トポロジー、パフォーマンス、アップデートを自動的に行うことで、自動化を実現します。Davis®はすでに知っているので学習する必要はなく、継続的に自動的に観察、分析、回答の提供、重要なことの優先順位付けを行います。

## AIアシスタンス

[AIによる支援](https://www.dynatrace.com/news/blog/from-aiops-tools-to-an-aiops-platform/)は、手作業や冗長な作業を減らすことでチームを強化し、ビジネスにとって重要な分野での生産性を高めることができます。ここでもDavis®は、プロアクティブな問題解決とパフォーマンス向上のための的確な回答をリアルタイムで提供します。[お客様の報告](https://www.dynatrace.com/news/customers/)によると、Davis®は自動的にチーム全体のパワーと効果を高め、アプリケーションのパフォーマンス問題を迅速に解決する組織の能力を強化します。

## チーム間のコラボレーション

Dynatraceは、企業規模での導入のために作られました。使いやすく、ユーザー数に制限がないため、企業はサイロをなくし、チームワークを加速することができます。Dynatraceは、統一されたデータプラットフォームと高度な分析機能を組み合わせて、ビジネス、オペレーション、アプリ、開発の各チームに単一の情報源を提供するため、より少ない摩擦でより速く、常により良い結果を提供することができます。

## ユーザーエクスペリエンスとビジネスアナリティクス

アプリケーションがモバイルアプリからユーザーへのものであれ、IoTデバイスから顧客へのものであれ、舞台裏のWebアプリケーションであれ、エクスペリエンスと成果が重要です。そのため、Dynatraceプラットフォームは、エッジデバイスとAPIを包括しています。[Real User Monitoring（リアルユーザーモニタリング）](https://www.dynatrace.com/platform/real-user-monitoring/)や[Session Replay（セッションリプレイ）](https://www.dynatrace.com/platform/session-replay/)など、ユーザーセッションに関するインテリジェンスを活用することで、チームはユーザーエクスペリエンスをコンバージョンや収益、KPIなどのビジネス成果に結びつけることができます。データに裏付けられた意思決定、答えの準備、ビジネスKPIのリアルタイムな可視化により、企業はすべてのチャネルでより良いデジタルビジネスの成果を一貫して、より効率的に提供することができます。