Slide 1

Slide 1 text

  |  © PLAID Inc. 2023.11.28  |  Datadog Webinar  |  1 ⼤規模SaaS『KARTE』のパフォーマンス改善 とオートスケーリング:Datadogの活⽤事例 株式会社プレイド ⼤⽮康介

Slide 2

Slide 2 text

  |  © 2019 PLAID Inc.   |  © PLAID Inc. 2023.11.28  |  Datadog Webinar  |  2 ⾃⼰紹介 ⼤⽮ 康介 株式会社プレイド エンジニア 2020年新卒⼊社 DX & Performance GKEの運⽤、KARTE Talk の開発、KARTEの管理画⾯のパフォーマンス改善など

Slide 3

Slide 3 text

2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. 本⽇のテーマ BtoB SaaS『KARTE』で どのように Datadog を 活⽤しているか ● サービス紹介と全体構成 ● 活⽤事例 ○ KARTE管理画⾯のパ フォーマンス改善 ○ メトリクスによるオート スケール ● まとめ 話すこと 3

Slide 4

Slide 4 text

2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. 4 KARTEについて CX(顧客体験)プラットフォーム Webサイトの訪問者の⾏動を 顧客ごとにリアルタイムに解析 ⼀⼈ひとりに合わせた 顧客体験を提供

Slide 5

Slide 5 text

2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. アーキテクチャ 全てのコンポーネントを Datadogで監視 5

Slide 6

Slide 6 text

2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. 6 Datadog活用規模 ほぼ全てのエンジニアが Datadogを活⽤ 83 ⼈ datadog ユーザ数 858 モニター数 463 ダッシュボード数 150 Hosts APM 800K /hour Custom Metrics 500M /mon Indexed Log

Slide 7

Slide 7 text

2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. パフォーマンス監視 KARTE管理画⾯の パフォーマンス改善 7

Slide 8

Slide 8 text

2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. KARTE 管理画⾯の特徴 - 国内でも有数の規模のデー タ量を扱う - ユーザーひとりひとりを⾼ 解像度で分析 - GKE を利⽤し複数のマイク ロサービスで構成される パフォーマンス改善 パフォーマンスが劣化しやす く、原因の特定が困難 8

Slide 9

Slide 9 text

2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. Webパフォーマンスの計 測‧監視⽅法(以前) パフォーマンス監視 9 Lighthouseの定期実⾏ - KARTEの特定のプロジェクト(テナント)の主要ページに puppeteerでアクセスして計測 - KARTEは⼤量のデータを扱うという特性上、プロジェクト 毎にかなりスコアが変わる APM - ページのボトルネックになるAPIのレイテンシを監視 - これだけでは最終的なページの読み込み時間はわからない 課題 - 実際のユーザー体験の計測はできていない - 改善がどの程度ユーザに効いたか判断が難しい

Slide 10

Slide 10 text

2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. Datadog RUM の導⼊ パフォーマンス監視 10 - Core Web Vitals などの重要な指標を把握 - LCP 75パーセンタイルの改善を⽬標 - 実際のユーザから収集されたデータ - APMとの接続

Slide 11

Slide 11 text

2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. RUM のセットアップ時のポイント - service, env, version を APM の設定と合 わせることで APM と接続 - excludeActivityUrls を指定して正確なパ フォーマンスを計測 - プロジェクト毎に集計できるよう context を追加 (function(h,o,u,n,d) { h=h[d]=h[d]||{q:[],onReady:function(c){h.q.push(c)}} d=o.createElement (u);d.async=1;d.src=n n=o.getElementsByTagName (u)[0];n.parentNode.insertBefore (d,n) })(window,document,'script','https://www.datadoghq-browser-age nt.com/us5/v5/datadog-rum.js' ,'DD_RUM') window.DD_RUM.onReady(function() { window.DD_RUM.init({ clientToken: '<CLIENT_TOKEN>' , applicationId: '<APPLICATION_ID>' , site: 'us5.datadoghq.com' , service: 'my-web-application', env: 'production', version: '1.0.0', sessionSampleRate: 100, sessionReplaySampleRate: 100, trackResources: true, trackLongTasks: true, trackUserInteractions: true, excludedActivityUrls: ['https://b.karte.io/event', …] }); }) window.DD_RUM.setGlobalContextProperty('project', { id: project.id, name: project.name }); パフォーマンス改善 11

Slide 12

Slide 12 text

2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. パフォーマンス監視 パフォーマンスの改善⼿順 12

Slide 13

Slide 13 text

2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. パフォーマンス改善 RUM を利⽤した分析 - ネットワークリクエストの ウォーターフォールグラフ を⾒る - 全てのコンテンツの読み込 み、API呼び出しのうちボ トルネックを特定 13

Slide 14

Slide 14 text

2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. パフォーマンス改善 ネットワークリクエストの 分析 - 先ほどの画⾯からトレース (APM)にシームレスに接 続できる - ログやメトリクス、プロ ファイラーも関連づけられ る - ここまでくるとボトルネッ クの原因はかなり絞れる 14

Slide 15

Slide 15 text

2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. パフォーマンス改善 プロファイルの分析 - 特定の時間帯のプロファイ ルがみれて、⽐較できる - どの関数呼び出しにどれく らい時間がかかったかわか る - ボトルネックの関数を特定 し、LCPが50%改善 15

Slide 16

Slide 16 text

2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. 今後 - 主要画⾯のLCPに内部SLOを設定 - ページ毎のLCPの推移(改善‧悪化の傾向) を監視 パフォーマンス改善 16

Slide 17

Slide 17 text

2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. パフォーマンス改善 パフォーマンス改善の ポイントまとめ - 実際のユーザの視点でパフォーマン スを計測‧監視する - グラフによってボトルネックを可視 化し、効率的に調査する

Slide 18

Slide 18 text

2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. メトリクスによる オートスケール メトリクスによるオートスケール 18

Slide 19

Slide 19 text

2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. メトリクスによるオートスケール Track Servers の特徴 - 負荷が1⽇で10倍近く変化 する - ピーク時には急激に負荷が 増える 柔軟なオートスケールが必要

Slide 20

Slide 20 text

2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. メトリクスによるオートスケール Eventarc Cloud Run Cloud Spanner Compute Engine Monitor オートスケール 汎⽤的なオートスケーラーによる⼀元管理 - Datadog に集約された全てのメトリクスを活⽤可能 - オートスケールする対象のコンポーネントもさらに追加できる 20 - cpu/memory - pubsub message - lb latency - custom metrics

Slide 21

Slide 21 text

2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. メトリクスによるオートスケール - 通常のモニターと同じよう に演算などもできる - 簡単にオートスケールのパ ラメータを変更したり、閾 値を変えたりできる 21

Slide 22

Slide 22 text

2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. hpa.yaml apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: nginxext spec: metrics: - type: External external: metric: name: datadogmetric@nginx-demo:nginx-requests target: type: Value value: 9 datadog-metric.yaml apiVersion: datadoghq.com/v1alpha1 kind: DatadogMetric metadata: name: nginx-requests spec: query: max:nginx.net.request_per_s{kube_container_name:nginx}.rollup(60) メトリクスによるオートスケール 今後は Kubernetes の HPA でもDatadog のメト リクスを使いたい - custom metrics stackdriver adapter と併 ⽤できる⽅法を検討中 22

Slide 23

Slide 23 text

2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. まとめ まとめ 23

Slide 24

Slide 24 text

2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. まとめ BtoB SaaS『KARTE』での Datadog の活⽤事例につい て話しました - Web アプリケーションのパフォー マンスを改善‧監視 - 実際のユーザー視点で計測する ことが⼤事 - 汎⽤的なオートスケールの仕組みを 構築して運⽤を⾃動化 24

Slide 25

Slide 25 text

No content