Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

パフォーマンス低下の原因をコードレベルで特定、開発者ファーストなAPMツール「Scout APM」とは?

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2019/09/10 12:00

 「Webアプリケーションのレスポンスが遅くて仕事が進まない」「Webサイトの応答が遅いけど、DBクエリ、HTTPリクエスト、レンダリング、どこに問題があるのか」――。WebサイトやWebアプリケーションのパフォーマンスに課題を感じている開発者は多い。そんな課題をより効率的に解決する手段がアプリケーションパフォーマンスモニタリング(APM)を用いることだ。APMではどんな機能が提供されているのか。またWebアプリケーションの開発者が使うメリットおよびビジネスメリットとはなにか。「Scout APM」を開発しているScoutのディベロッパー 高橋尚敬氏、「Scout APM」を活用して自社クラウドサービスの品質向上に努めているスタークス CTOの片居木線氏に話を聞いた。

目次

Scout APMでWebアプリのパフォーマンス低下を素早く改善

 今や社外向けのサービスだけではなく、基幹システムをはじめとする企業情報システムなど社内システムもWebアプリケーションで構築されている。それらさまざまなWebアプリケーションのパフォーマンスの低下を察知し、原因を分析して特定し、迅速に改善するのは容易ではない。そこで注目されているのが、アプリケーション・パフォーマンス・モニタリング(APM)である。APMは、WebサイトやWebアプリケーションのパフォーマンスを計測し、DBやメモリブロートやDBクエリなどについて分析、その結果を可視化するツールである。

 Webアプリケーションのパフォーマンスを低下させる要因は、DBクエリ、HTTPコール、テンプレートレンダリングなどさまざまなものがある。APMに注目が集まる理由のひとつは、開発や運用に携わるエンジニアの負荷を軽減してくれることだ。

 「APMがなければ、開発者はパフォーマンス低下の原因を予想して改善するという、トライアンドエラーを何度も繰り返さないといけません。そういった手間を減らし、パフォーマンス低下の原因を特定し、迅速に改善できるのがAPMを活用するメリットです」(高橋氏)

Scout ディベロッパー 高橋尚敬氏
Scout ディベロッパー 高橋尚敬氏

 メリットはそれだけではない。APMの活用はビジネス的にも大きなメリットをもたらす。

 「WebサイトやWebサービスのレスポンス速ければユーザーの満足度は向上し、定着率が高まる一方、レスポンスが遅いと離脱する可能性は高くなってしまいます。さらに、例えばモバイル向けWebサイトの場合、ページの読み込み速度がGoogle検索のランキングに影響します。検索で上位に表示されれば、当然目に留まる機会も増え、新しいユーザーの獲得にもつながります」(高橋氏)

 APMツールでは基本、これらのパフォーマンスを低下させる要因となるアクションの計測が可能だ。では、Scout APMはどのような強みがあるのか。

 最大の強みは「エンジニアの時間をいかに節約できるか、という点にフォーカスしていること」と高橋氏は言う。簡単に利用できるよう、シンプルで直感的なUIを提供しているだけではない。より効率的にパフォーマンス改善ができるよう、GitHubとの連携機能を持つ。この機能を活用することで、「このコードのこの行に問題がある」ということだけではなく、実際に誰がそのコードを書いたのか、いつ変更したのかまでScout APM上で確かめることができる。「パフォーマンス改善はもちろんだが、本来のプロダクト開発に時間をより多く割けるようになる」と高橋氏は力強く語る。

気になる場所をドラッグするだけでレスポンスが遅い原因をすぐ特定可能に
気になる場所をドラッグするだけでレスポンスが遅い原因をすぐ特定可能に
Gitと連携することで、誰がいつコードをコミットしたのかを見ることができる
Gitと連携することで、誰がいつコードをコミットしたのかを見ることができる

 取得できるデータが豊富なのもScout APMの特徴だ。例えばWebアプリケーションのqueue time(リクエストが処理されるまでに待っている時間)、リクエストを判別し、処理するまでの時間、レンダリングに要する時間はもちろん、そのレンダリングの裏側で実行されているDBクエリの情報も調べることができる。「Webアプリケーションサーバにリクエストが届いて、レンダリングで表示するまでの時間を、レイヤーごとに細分化して見ることができるんです」(高橋氏)

 現在、対応しているのはRuby、Python、Elixirで記述されたプログラム。さらにPHPにも本格対応が予定しており、「対応言語の拡大に注力している」と高橋氏は言う。Elixirに対応しているAPMプロバイダはまだ少ないため、これもScout APMの強みと言えよう。インストールも簡単で、アプリケーションにエージェントを導入するだけでモニタリングできるようになる。

 Scout APMがエンジニアファーストのプロダクトになっているのには理由がある。元々、同社ではサーバモニタリングツールをRailsで開発しており、同ツールのパフォーマンス改善に競合のAPMツールを使っていたのだという。「機能も豊富で素晴らしいプロダクトでしたが、原因を発見するまで時間がかかるなど、使いにくかった。開発者である自分たちにとって、もっと使いやすいものをという視点で開発したのが、Scout APMなのです」(高橋氏)


  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 中村 仁美(ナカムラ ヒトミ)

     大阪府出身。教育大学卒。大学時代は臨床心理学を専攻。大手化学メーカー、日経BP社、ITに特化したコンテンツサービス&プロモーション会社を経て、2002年、フリーランス編集&ライターとして独立。現在はIT、キャリアというテーマを中心に活動中。IT記者会所属。趣味は読書、ドライブ、城探訪(日本の城)。...

  • 篠部 雅貴(シノベ マサタカ)

     フリーカメラマン 1975年生まれ。  学生時代、大学を休学しオーストラリアをバイクで放浪。旅の途中で撮影の面白さに惹かれ写真の道へ。  卒業後、都内の商業スタジオにカメラマンとして14年間勤務。2014年に独立し、シノベ写真事務所を設立。雑誌・広告・WEBなど、ポートレートをメインに、料理や...

バックナンバー

連載:開発生産性向上に寄与するツール大研究
All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5