Slide 1

Slide 1 text

https://www.dip-net.co.jp/ 1 サービスと共にチームも成長する 〜New Relicを利用したサービスとチームの定量化〜 大塚ひろき / @ohiro88

Slide 2

Slide 2 text

https://www.dip-net.co.jp/ 2 • ディップ株式会社 • PHP/Laravel • 2020年9月入社 • PHPer歴もうすぐ6年目 • 好きなこと • 車 • バイク • キャンプ 大塚ひろき(@ohiro88)

Slide 3

Slide 3 text

https://www.dip-net.co.jp/ 3 ディップについて

Slide 4

Slide 4 text

https://www.dip-net.co.jp/ 4 ディップについて 人材サービス事業 DX事業

Slide 5

Slide 5 text

https://www.dip-net.co.jp/ 5

Slide 6

Slide 6 text

https://www.dip-net.co.jp/ 6 アジェンダ • New Relic導入の経緯 • New Relicで見えてきたもの • サービスのパフォーマンス • 開発チームのパフォーマンス • 今後の展望

Slide 7

Slide 7 text

https://www.dip-net.co.jp/ 7 New Relic導入の経緯

Slide 8

Slide 8 text

https://www.dip-net.co.jp/ 8 New Relicとは 【出典:New Relic様提供資料】

Slide 9

Slide 9 text

https://www.dip-net.co.jp/ 9 オブザーバビリティとは オブザーバビリティは、メトリクス、イベント、ログ、トレースすべてを能動的に 収集、可視化し、インテリジェンスを適用して、複雑なデジタルシステムの動 態を把握できるようにします。 【出典:オブザーバビリティとは? | New Relic(https://newrelic.com/jp/topics/what-is-observability)】

Slide 10

Slide 10 text

https://www.dip-net.co.jp/ 10 内製化を進めるためガンガン開発できる 200人体制の構築を目指す

Slide 11

Slide 11 text

https://www.dip-net.co.jp/ 11 解決したい3つのポイント 現状はシステム全体が監視が できておらず、専任のエンジニ アが問題の特定を手作業で行 う負担あり 調査のための人的コスト 01 組織の成長が数値として推移 が追いかけにくい、エンジニア 組織内製化の効果や成果が見 えにくい状態 エンジニア貢献度が定性的に なりがち 02 全てのエンジニアが利活用で きる状態に至っておらず、ツー ルに関するサポートもあまりで きていない。 ツールが複数だと運用しにくい 監視ツールの浸透 03

Slide 12

Slide 12 text

https://www.dip-net.co.jp/ 12 解決したい3つのポイント 現状はシステム全体が監視が できておらず、専任のエンジニ アが問題の特定を手作業で行 う負担あり 調査のための人的コスト 01 組織の成長が数値として推移 が追いかけにくい、エンジニア 組織内製化の効果や成果が見 えにくい状態 エンジニア貢献度が定性的に なりがち 02 全てのエンジニアが利活用で きる状態に至っておらず、ツー ルに関するサポートもあまりで きていない。 ツールが複数だと運用しにくい 監視ツールの浸透 03 New Relicを導入することにより これらを解決したい!

Slide 13

Slide 13 text

https://www.dip-net.co.jp/ 13 New Relicで見えてきたもの

Slide 14

Slide 14 text

https://www.dip-net.co.jp/ 14 サービスのパフォーマンス

Slide 15

Slide 15 text

https://www.dip-net.co.jp/ 15 APM

Slide 16

Slide 16 text

https://www.dip-net.co.jp/ 16 • 「トランザクションタイム」「Apdexスコア」などを可視化 → サービスの基本的な数値を確認することで、アプリケーションの動態 を把握 • 各指標にアラートを柔軟に設定可能 → NRQLを用いることで、柔軟なアラート設定が可能 → 急な数値の変動を検知 APM

Slide 17

Slide 17 text

https://www.dip-net.co.jp/ 17 • はたらこねっとではデイリースクラムで確認することで、サービスに異常 が無いかを確認 • 異常が確認されたら、分散トレーシングやログなどを確認し、必要があ れば修正のチケットを作成して対応 • デプロイメントマーカーという機能で、デプロイがサービスのメトリクスに 影響を与えていないかを確認 APM

Slide 18

Slide 18 text

https://www.dip-net.co.jp/ 18 分散トレーシング • 異常があったトランザクションの処理を追うことが可能 • APIなど複数のサービスを経由している場合も、1トランザクションとして 確認することが可能

Slide 19

Slide 19 text

https://www.dip-net.co.jp/ 19 Key Transactions • サービス上重要な画面であったりパフォーマンスの悪いページのトラン ザクションをモニタリングすることが可能 • 指定したトランザクションの一覧をみることができるので、特定の画面で の障害時などの調査も迅速に行うことが可能 • アラートやApdexスコアの閾値も個別に設定することが可能

Slide 20

Slide 20 text

https://www.dip-net.co.jp/ 20 Key Transactions • transaction timeやApdexスコアを画面毎に確認

Slide 21

Slide 21 text

https://www.dip-net.co.jp/ 21 Key Transactions • はたらこねっとでは、お仕事一覧や応募関係の画面を設定

Slide 22

Slide 22 text

https://www.dip-net.co.jp/ 22 Service Levels • SLI/SLOを用いてサービスの品質を観測できる機能

Slide 23

Slide 23 text

https://www.dip-net.co.jp/ 23 独自の活用方法

Slide 24

Slide 24 text

https://www.dip-net.co.jp/ 24 ダッシュボードの活用 • New Relicの各指標を独自のダッシュボードにまとめることが可能

Slide 25

Slide 25 text

https://www.dip-net.co.jp/ 25 ダッシュボードの活用 • CWVなどユーザーの体験を可視化

Slide 26

Slide 26 text

https://www.dip-net.co.jp/ 26 New Relicアプリケーションの活用 • New Relic上で独自のアプリケーションを作成することが可能 • 入力欄を設けたり、独自のチャートなどを作成することが可能

Slide 27

Slide 27 text

https://www.dip-net.co.jp/ 27 New Relicアプリケーションの活用 • 入力に応じてダッシュボードの内容を変更するアプリケーションを作成 • 「dip newrelic 独自App」で検索

Slide 28

Slide 28 text

https://www.dip-net.co.jp/ 28 • 「newrelic_add_custom_parameter」という関数でトランザクションに独自 のパラメータを付与することが可能 カスタム属性の付与

Slide 29

Slide 29 text

https://www.dip-net.co.jp/ 29 • APMなどの様々な機能を利用しサービスの状態を可視化 → サービスの動きを把握しそのまま調査を行えるのでよりシームレスな 動きが可能に • 特定の機能や画面毎のデータの可視化・分析 → 機能や画面毎の問題の切り分けが可能に • 様々なカスタマイズが可能 → 痒い所に手が届く! サービスのパフォーマンスまとめ

Slide 30

Slide 30 text

https://www.dip-net.co.jp/ 30 開発チームのパフォーマンス

Slide 31

Slide 31 text

https://www.dip-net.co.jp/ 31 DevOps 4Keysの可視化 • 開発チーム用ダッシュボードを作成 • 「デプロイ頻度」「リードタイム」「変更障害率」「復旧時間」

Slide 32

Slide 32 text

https://www.dip-net.co.jp/ 32 Pull Requestの可視化 • PR、PRのレビュー数を表示

Slide 33

Slide 33 text

https://www.dip-net.co.jp/ 33 開発チームのパフォーマンスデータの収集 • GitHubからActionsを使用してNew Relicにデータを送信

Slide 34

Slide 34 text

https://www.dip-net.co.jp/ 34 開発チームのパフォーマンスまとめ • DevOps 4KeysとPRのデータを可視化 → 4Keysの各指標とPRの関連性が見えるように • サービスのパフォーマンスと開発チームのパフォーマンスの関連性を可 視化する土台に → サービスとチームのパフォーマンスを結びつけることで、エンジニア 貢献度の定量化に近付いた

Slide 35

Slide 35 text

https://www.dip-net.co.jp/ 35 今後の展望

Slide 36

Slide 36 text

https://www.dip-net.co.jp/ 36 サービス品質基盤の構築 • New Relicで可視化できる指標をKPIとして設定 → 目標を設定しサービスの品質を上げるために改善を繰り返す • 各指標にアラートを設定し、異常値を検知 → 現状はNew Relicを見て動きを見ているが自動で検知出来る様に • 他システムに分散したデータを統合 → 企画部門・SEO部門などのデータをNew Relicに統合することで同じ データで会話を出来る様に

Slide 37

Slide 37 text

https://www.dip-net.co.jp/ 37 開発チームのパフォーマンス向上 • 開発チームの各指標をKPIとして設定 → 目指すべき姿を明確にし改善を繰り返す • 開発チームのパフォーマンスを測る指標を追加 → エンジニアの行動を可視化する材料を増やしより分析しやすく • 他チームにドヤれる様になりたい → 開発チームの成果をアピール

Slide 38

Slide 38 text

https://www.dip-net.co.jp/ 38 New Relicをより活用するために • 他プロダクトへ横展開 → バイトルなどの開発チームとNew Relicのノウハウを共有し、ディップ として活用を加速 • New Relic勉強会・利用推進チームの発足 → New Relicの知識を増やし、出来ることを増やす

Slide 39

Slide 39 text

https://www.dip-net.co.jp/ 39 解決したい3つのポイント 現状はシステム全体が監視が できておらず、専任のエンジニ アが問題の特定を手作業で行 う負担あり 調査のための人的コスト 01 組織の成長が数値として推移 が追いかけにくい、エンジニア 組織内製化の効果や成果が見 えにくい状態 エンジニア貢献度が定性的に なりがち 02 全てのエンジニアが利活用で きる状態に至っておらず、ツー ルに関するサポートもあまりで きていない。 ツールが複数だと運用しにくい 監視ツールの浸透 03

Slide 40

Slide 40 text

https://www.dip-net.co.jp/ 40 最後に • 調査のための人的コスト → New Relic上で見れるデータが増え、New Relicだけで調査が完結す るケースが増えた • 監視ツールの浸透 → ツール統合に向けて頑張ってます • エンジニア貢献度が定性的になりがち → DevOps 4Keysの可視化などで定量的に見れるようになってきた

Slide 41

Slide 41 text

https://www.dip-net.co.jp/ 41 カジュアル面談やってます • 選考ではないので、お気軽にご応募ください! • 3/25にはブースもありますので、 お話ししましょう!

Slide 42

Slide 42 text

https://www.dip-net.co.jp/ 42 ご清聴頂きありがとうございました