SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

開発生産性向上に寄与するツール大研究(AD)

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

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なのです」(高橋氏)

スタークスはなぜ他社からScout AMPに移行したのか

 そんなScout APMを活用し、自社サービスの品質向上につなげているのが、Eコマース領域を中心にマーケットイノベーションを追求しているスタークスである。

 「当社のプロダクトである『クラウドロジ』は、物流コストを最適化させる発送代行のサービスです。入庫から、在庫管理・出荷指示・帳票出力・梱包作業・出荷データ取り込みまでの一連の発送業務を1梱包あたり10秒で終わらせるようにしています。このような世界では、レスポンスが0.5秒遅れるだけで大きなデメリットとなります。つまりクラウドサービスのパフォーマンスが低下すると、ビジネスの生産性をも低下させてしまう。それを防ぐためにもScout APMの活用は欠かせません」(片居木氏)

スタークス CTO 片居木線氏
スタークス CTO 片居木線氏

 またLINE@に特化したカスタマーサポートツール「CS cloud」でもScout APMを活用している。「LINEはAPIの仕様上、短時間に返信しなければならないという制約があります。そのため、アプリケーションの処理時間をなるべく短くしないと、ユーザーが判断する時間が減ってしまいます。常に最高のパフォーマンスを出すために、Scout APMを活用しています」(片居木氏)

 なぜ、さまざまなAPMツールがある中で、Scout APMを選んだのか。「提供されている機能や使い勝手の良さももちろんですが、自社のシステムのアーキテクチャを考えると、Scout APM一択となった」と片居木氏は話す。

 CS cloudは問い合わせやカスタマーサポート業務を、チームでの有人対応とチャットボットを最適に組み合わせることで実現している。「導入している企業の中には、友達数が50万を超えているところもあります。そういう企業の場合、1日に100万件のメッセージの流量になることもある。直列に処理することは難しいので、小さなインスタンスを多数立ち上げて、並列処理させています」(片居木氏)

 クラウドロジも同様だ。「例えば1日1万件の出荷処理を直列で処理すると、在庫の引当処理(注文に対して商品を確保すること)に20分ぐらい時間がかかってしまいます。そこで、1万件を並列に一斉処理できるような構成にしています。このような構成では、インスタンス課金だとどうしても効果の割にコストが高く付いてしまう。そこでトランザクション単位で課金されるScout APMを選びました」(片居木氏)

 ここでいうトランザクションとは、Webリクエストとバックグランドジョブの実行回数のことで、その合計で料金が決まる。実はこのトランザクション単位の料金体系もScout APMの強みなのだ。

 以前は他社のAPMツールを使っていたという片居木氏だが、Scout APMを使ってみたところ、「導入が簡単。導入してパフォーマンス改善につなげるまでが5分とかからないのに、驚きました。欲しい情報にすぐたどり着ける」とその使い勝手の良さを評価する。

Scout APMでエンジニア全員にパフォーマンス意識が根付く

 片居木氏は、Scout APMを使うことで、特定のブロックのパフォーマンスを測定できることも評価する。「それを活用して長いバッチ処理のどこに負荷がかかっているのか絞り込みをしたことがあります。コードを変えて、Scout APMに流してみて、どのコードがより負荷がかからないか特定しました。邪道かもしれませんが、デバッグツールとして活用できるんです」と片居木氏。高橋氏も「邪道ではなく、理想的な使い方。このように深くパフォーマンス改善をしたいという人に最適なツール」という。

 Scout APMを導入したことで、ビジネス的にも大きなメリットが得られたという。「Scout APMを導入したのは今年の4月。このとき、インフラの見直しプロジェクトを進めており、サーバモニタリングを実施することにしたんです。サーバモニタリングをするのであれば、アプリケーションのパフォーマンスもモニタリングする必要があります。インフラの見直しとパフォーマンス改善と合わせて、月間100万円の削減が実現しました」(片居木氏)

 さらに大きかったのは、エンジニア全員のパフォーマンスに対する意識が変わったことだ。まだまだ、ビジネスのパフォーマンスとWebアプリケーションのパフォーマンスが直結していることを強く意識している開発現場は少ない。Scout APMはその意識改革に大きく貢献したという。

 「Scout APMはすべてのエンジニアが見られるようになっているので、たとえ自分が担当していない機能やプロダクトについても、『このコードが怪しいのでは』という指摘をするなど、エンジニア総出でパフォーマンス改善するマインドが生まれました。これもScout APMを導入した大きな効果だと思います。Scout APMでアプリケーションのパフォーマンスを日々確かめ、気軽に改善して、より良いサービスを提供していきたいですね」(片居木氏)

 Scout APMは対応言語の拡大に注力することに加え、すでに対応している言語についても、より簡単に詳細なデータを提供するため、機能の強化を図っていくという。オートインストルメンテーション機能の提供はその一つだ。「この機能を使えば、コントローラーの1つのアクション全体の秒数のうち、1行目ではこの秒数、2行目ではこの秒数がかかっているということが分かる。つまりこの機能をインストールするだけで、ユーザーはより詳細な情報を見られるようになります。現在、β版をリリースしているので、ぜひ、使ってもらいフィードバックをしてほしい」(高橋氏)

 Scoutでは、「APMと言えばScout APM」とエンジニアなら誰もが答えてくれるよう、よりエンジニアフレンドリーなツールを目指し、機能強化を図っていくという。APMの導入を考えているのであれば、ぜひ、一度試してみてはいかがだろう。

Scout APM

 Scout APMは、クレジットカードの登録なしで14日間の無料トライアルが可能です。ぜひお試しください!

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11695 2019/09/10 12:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング