Scout APMでWebアプリのパフォーマンス低下を素早く改善
今や社外向けのサービスだけではなく、基幹システムをはじめとする企業情報システムなど社内システムもWebアプリケーションで構築されている。それらさまざまなWebアプリケーションのパフォーマンスの低下を察知し、原因を分析して特定し、迅速に改善するのは容易ではない。そこで注目されているのが、アプリケーション・パフォーマンス・モニタリング(APM)である。APMは、WebサイトやWebアプリケーションのパフォーマンスを計測し、DBやメモリブロートやDBクエリなどについて分析、その結果を可視化するツールである。
Webアプリケーションのパフォーマンスを低下させる要因は、DBクエリ、HTTPコール、テンプレートレンダリングなどさまざまなものがある。APMに注目が集まる理由のひとつは、開発や運用に携わるエンジニアの負荷を軽減してくれることだ。
「APMがなければ、開発者はパフォーマンス低下の原因を予想して改善するという、トライアンドエラーを何度も繰り返さないといけません。そういった手間を減らし、パフォーマンス低下の原因を特定し、迅速に改善できるのがAPMを活用するメリットです」(高橋氏)
メリットはそれだけではない。APMの活用はビジネス的にも大きなメリットをもたらす。
「WebサイトやWebサービスのレスポンス速ければユーザーの満足度は向上し、定着率が高まる一方、レスポンスが遅いと離脱する可能性は高くなってしまいます。さらに、例えばモバイル向けWebサイトの場合、ページの読み込み速度がGoogle検索のランキングに影響します。検索で上位に表示されれば、当然目に留まる機会も増え、新しいユーザーの獲得にもつながります」(高橋氏)
APMツールでは基本、これらのパフォーマンスを低下させる要因となるアクションの計測が可能だ。では、Scout APMはどのような強みがあるのか。
最大の強みは「エンジニアの時間をいかに節約できるか、という点にフォーカスしていること」と高橋氏は言う。簡単に利用できるよう、シンプルで直感的なUIを提供しているだけではない。より効率的にパフォーマンス改善ができるよう、GitHubとの連携機能を持つ。この機能を活用することで、「このコードのこの行に問題がある」ということだけではなく、実際に誰がそのコードを書いたのか、いつ変更したのかまでScout APM上で確かめることができる。「パフォーマンス改善はもちろんだが、本来のプロダクト開発に時間をより多く割けるようになる」と高橋氏は力強く語る。
取得できるデータが豊富なのもScout APMの特徴だ。例えばWebアプリケーションのqueue time(リクエストが処理されるまでに待っている時間)、リクエストを判別し、処理するまでの時間、レンダリングに要する時間はもちろん、そのレンダリングの裏側で実行されているDBクエリの情報も調べることができる。「Webアプリケーションサーバにリクエストが届いて、レンダリングで表示するまでの時間を、レイヤーごとに細分化して見ることができるんです」(高橋氏)
現在、対応しているのはRuby、Python、Elixirで記述されたプログラム。さらにPHPにも本格対応が予定しており、「対応言語の拡大に注力している」と高橋氏は言う。Elixirに対応しているAPMプロバイダはまだ少ないため、これもScout APMの強みと言えよう。インストールも簡単で、アプリケーションにエージェントを導入するだけでモニタリングできるようになる。
Scout APMがエンジニアファーストのプロダクトになっているのには理由がある。元々、同社ではサーバモニタリングツールをRailsで開発しており、同ツールのパフォーマンス改善に競合のAPMツールを使っていたのだという。「機能も豊富で素晴らしいプロダクトでしたが、原因を発見するまで時間がかかるなど、使いにくかった。開発者である自分たちにとって、もっと使いやすいものをという視点で開発したのが、Scout APMなのです」(高橋氏)