Dynatrace はじめの一歩 第一巻（APMとは？）

本記事は[Dynatrace Advent Calendar 2022](https://qiita.com/advent-calendar/2022/dynatrace)の2日目です。
#  はじめに
みなさまお初にお目にかかります。DynatraceにてSolutions EngineerをしておりますWatanabeです。
2022年10月からAPM業界へと足を踏み入れました。今まではPKGシステムの開発や社内SE、RPAソフトウェアのプリセールス等をしており、APMないしはモダンなアプリケーション開発には疎いのですが、
これからQiitaにて情報発信をしつつ勉強できればと思っています。

なお、私の投稿については私個人の意見満載で所属企業の正式見解ではない故悪しからず。
投稿内容についてご意見ご感想がある方は是非コメント欄やTwitterにてご連絡いただければと思います。

では、Dynatraceを勉強するはじめの一歩としてそもそもAPMとは何ぞやというのをまとめていきたいと思います。

# APM(Application Performance Management)とは
まずは[Wiki](https://en.wikipedia.org/wiki/Application_performance_management)の記述を見てみます。（Wikiが全て正しいわけではないので引用元を確認しながらチェックしましょう）

<details><summary>APMはソフトウェア・アプリケーションのパフォーマンスと可用性を監視・管理する</summary>

> In the fields of information technology and systems management, application performance management (APM) is the **monitoring and management of the performance and availability of software applications**. APM strives to detect and diagnose complex application performance problems to maintain an expected level of service. APM is "the translation of IT metrics into business meaning.
</details>

また、DynatraceでもAPMについて説明した[ブログ](https://qiita.com/sukatsu1222/items/4f32ed5b69d770361727)がありますのでこちらも確認しましょう。（Qiita記事に抄訳があります。）
> APMは、システムの可用性を確保し、サービスのパフォーマンスと応答時間を最適化して、ユーザーエクスペリエンスを向上させるために使用されます。

どのような業種業態でも様々なアプリケーションと共に企業活動が成り立っています。
使っているアプリケーション（社内向け社外向けどちらにせよ）は会社のビジネスに非常な要素になってきています。
また、クラウド移行やマイクロサービス化など、アプリケーションは多様化複雑化が進み成長は未だ留まるところを知りません。
更に、DevOpsのように開発リリースサイクルが早い開発手法やCX(カスタマーエクスペリエンス)の向上のような話題もあります。
アプリケーションにせよ運用方法にせよ変化が当たり前の状況で、どのようにアプローチするのが最適でしょうか。
その一つの選択肢としてAPMツールがあります。

:::note info
Dynatraceによってアプリケーションのパフォーマンスを可視化した例
![](https://dt-cdn.net/images/image-19-1916-a1098d2ab4.png)
:::
# APMのマーケット
APMツールについては、よく外資系ソフトウェア企業が引き合いに出す[Gartner社の調査](https://www.gartner.com/en/documents/4015367)にて市場の製品の分析が行われています。是非お時間があればレポートを見てください。どんな製品がどんな特徴があるのか確認することができます。
また、APMのマーケット全体を考えると先程挙げたようにクラウド移行やマイクロサービス化などの成長は進んでおり、APMに対する注目度も上がってきています。
一方で日本の企業様ではようやっとクラウド移行やマイクロサービス化が進んできており、アーリーアダプターと言われる方には当たり前の状況になってきています。
こういった**モダン**なテクノロジーはほぼアメリカ発のため、どうしても日本では一歩ニ歩遅れて拡がる傾向にあります。
APMについても同様で、海外の方がこの領域への取組が進んでおり、アプリケーションの運用保守が重要視されるとともに[SRE(Site Reliability Engineering)](https://www.dynatrace.com/monitoring/solutions/site-reliability-engineering/?utm_source=google&utm_medium=cpc&utm_term=sre&utm_campaign=jp-en--devops-devops&utm_content=none&gclid=EAIaIQobChMI1oCcj-Lj-wIVzauWCh2NqAaLEAAYASAAEgLtwfD_BwE&gclsrc=aw.ds#report)のような新しい役割が生まれています。
# DevOpsから考察するAPMの必要性
**DevOps**については皆さま既に取り組まれているのではないでしょうか？
![](https://marvel-b1-cdn.bc0a.com/f00000000236551/dt-cdn.net/wp-content/uploads/2021/07/13429_ILL_DevOpsLoop.png "DevOps")
アプリケーションの高度化に伴い、リリースサイクルが早いのが当たり前の時代になりましたね。（私が働き始めた頃に一番最初に学んだのはクラシックなウォーターフォール型の開発手法でした）
一度作ってハイ終わりではなく、追加開発や機能修正、市場動向に合わせた開発等を行う必要があります。
円滑に開発を行うために、Dev（開発チーム）とOps（運用チーム）を密接に繋げたDevOpsというアプローチがあります。
このとき、運用チームは如何に適切にMONITOR（監視）をし、改善点等を見つけ開発チームへPLAN（計画）を渡すのでしょうか？
その際、APMツールが非常に効果的です。あらゆるログやメトリック・トレースの情報（いわばエビデンス）を元に正確な情報を伝えることができます。

更に、DevOpsについては一段階進化をした**BizDevOps**というアプローチがあります。
![](https://mkt-cdn.dynatrace.com/assets/Marketing/content-images/_1366x768_crop_center-center_82_line/biz-dev-ops-website-01-1600-9ea1808085.png.webp "BizDevOps")
DevOpsに加えてBiz（ビジネスチーム）も協業することで、ビジネス上の判断を加えてより生産性を高めることができます。
このBizDevOpsについても、如何にしてそれぞれのチームを繋げるかという点においてAPMツールは非常に効果的です。たいていのAPMツールはダッシュボード機能やレポーティング機能があり、ビジネスチームにおいても重要な情報を与えることができます。
# むすびに
今回はDynatrace はじめの一歩としてAPMについてなんぞやというのを私自身の理解を整理しながらまとめてみました。
まだまだ勉強不足なので、今後よりAPMへの理解が深まったら本記事を都度更新していきたいと思います。