「はたらこねっと」におけるNew Relicの具体的な活用方法
実際にどのように活用されているのか。具体的な活用事例を紹介したのが、商品開発本部 システム統括部 プロダクトエンジニアリング部 はたらこねっと開発課リーダーの大塚氏である。大塚氏がバックエンドエンジニアとして携わっている「はたらこねっと」は、派遣の仕事を中心に正社員、アルバイトなどさまざまな求人を掲載している総合情報求人サイト。同サービスはPHPとLaravelで開発している。
同社ではNew Relicもボトムアップによる活用となっている。ボトムアップによるメリットは「2つある」と大塚氏。一つは当事者意識が向上すること。「会社から言われたことをやるだけでは、エンジニアもモチベーションが上がりません。しっかりエンジニア自身が考えて実践することで当事者意識を向上させることができる」(大塚氏)
第二に開発スピードの向上である。当事者意識が向上することで、開発スピードも向上すると大塚氏は言う。では実際、はたらこねっとではNew Relicをどのように活用しているのか。「はたらこねっとでは主にデータの収集・可視化に活用しています」と大塚氏。PHPとLaravelで構築されたはたらこねっとのアプリケーションからデータをリクエストごとにNew Relicに送っているのだ。
データの収集も、New Relicに用意されているPHP用のエージェントをインストールして、ミドルウェアに処理を追加するだけと簡単。「そのほか、アプリケーション以外の開発で使用しているツールからもデータを収集している」と大塚氏。これら他のツールデータ収集には、New RelicのイベントAPI機能を使用する。これらのツールから収集したデータは開発のパフォーマンスなどの可視化に活用している。
サービスの可視化では、APM(アプリケーションパフォーマンス監視)を活用。日々のアプリケーションの動きを観測し、トランザクションタイムの推移やApdexスコアなどを見て、サービスに異常が無いかを確認する。デプロイ後の傾向分析のほか、「APMは障害時の調査にも使用するなど、非常に便利に使えるツール」と大塚氏は言い切る。
このようにAPMだけでもかなりの情報を見ることができるが、はたらこねっとではダッシュボードを活用し、自分たちに必要な情報をいつでも見られるようにしている。
例えば、Core Web Vitals(Webサイトの健全性を示す指標)や、異常を素早く検知するため仕事一覧や応募画面など重要な画面のレスポンスタイムを容易に見られるようにしているのもその一つ。
「Core Web VitalsはAPMでも見ることができますが、サービス全体と重要な場面のCore Web Vitalsを見られるようにしています」(大塚氏)
ソフトウェア開発チームのパフォーマンスについては「Four Keys」を使用して可視化。長期的に開発パフォーマンスの改善の傾向が分析できるようにしている。チームの健全さは「d/d/d(デプロイ数/営業日数/メンバー数)」で可視化。そのほか、プルリクエスト数やプロリクエストレビュー数もカウントしている。
「プルリクエストのレビュー数については、まだ活用方法を検討中。エンジニア一人ひとりの活動量の指標の一つとして利用できるのではと検討している」(大塚氏)
大塚氏はNew Relicの導入の効果についても次のように言及。第一の効果は調査のための人的コストが削減できたこと。フロントエンド、アプリケーション、インフラをまとめて観測できるようになったからだ。また分散したシステムのデータの相関が見え、分析や調査がより一層容易になったとも言う。さらにNew Relicでアカウント管理するだけで、各システムでの権限管理が不要になったことも人的コスト削減に寄与している。
第二に監視ツールが浸透したこと。ボトムアップで活用方法を検討、実施することで、エンジニアが率先してNew Relicを活用していこうというマインドが醸成されている。「New Relicはエンジニア自身がデータを見て改善のサイクルを回していけるので、非常に友好的に活用できる」と大塚氏。エンジニアの活用が進む背景には、New Relicの手厚いサポート体制も大いに関係している。
第三の効果はエンジニアの貢献度や活動量を定量的に可視化できるようになったことだ。「まだまだチャレンジしたいことはある」と大塚氏。例えば現状収集しているデータに加えて、アプリケーションのログも取り込み、分析することで、障害発生率の把握や障害になりそうな箇所の検知することに取り組んでいくこともその一つ。また今は異常がないかどうか、人の目で確認しているが、「アラートを設定し、自動で通知させることにもトライしていきたい」と大塚氏は意気込みを語り、セッションを締めた。