Upgrade to Pro — share decks privately, control downloads, hide ads and more …

大規模SaaS『KARTE』のパフォーマンス改善 とオートスケーリング:Datadogの活用事例

PLAID Tech
November 28, 2023

大規模SaaS『KARTE』のパフォーマンス改善 とオートスケーリング:Datadogの活用事例

2023年11月28日の「事例ウェビナー DatadogでGKEと マネージドサービスを 効率的に運用する方法」で、プレイドで提供しているKARTEがどのようにDatadogを活用しているかをエンジニアのKosuke Oyaが発表しました。

PLAID Tech

November 28, 2023
Tweet

More Decks by PLAID Tech

Other Decks in Technology

Transcript

  1.   |  © 2019 PLAID Inc.   |  © PLAID Inc. 2023.11.28  |  Datadog Webinar  |  2

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

    を 活⽤しているか • サービス紹介と全体構成 • 活⽤事例 ◦ KARTE管理画⾯のパ フォーマンス改善 ◦ メトリクスによるオート スケール • まとめ 話すこと 3
  3. 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
  4. 2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. KARTE 管理画⾯の特徴 - 国内でも有数の規模のデー タ量を扱う

    - ユーザーひとりひとりを⾼ 解像度で分析 - GKE を利⽤し複数のマイク ロサービスで構成される パフォーマンス改善 パフォーマンスが劣化しやす く、原因の特定が困難 8
  5. 2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. Webパフォーマンスの計 測‧監視⽅法(以前) パフォーマンス監視 9 Lighthouseの定期実⾏

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

    - Core Web Vitals などの重要な指標を把握 - LCP 75パーセンタイルの改善を⽬標 - 実際のユーザから収集されたデータ - APMとの接続
  7. 2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. RUM のセットアップ時のポイント - service, env,

    version を APM の設定と合 わせることで APM と接続 - excludeActivityUrls を指定して正確なパ フォーマンスを計測 - プロジェクト毎に集計できるよう context を追加 <script> (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 }); </script> パフォーマンス改善 11
  8. 2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. パフォーマンス改善 RUM を利⽤した分析 - ネットワークリクエストの

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

    (APM)にシームレスに接 続できる - ログやメトリクス、プロ ファイラーも関連づけられ る - ここまでくるとボトルネッ クの原因はかなり絞れる 14
  10. 2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. パフォーマンス改善 プロファイルの分析 - 特定の時間帯のプロファイ ルがみれて、⽐較できる

    - どの関数呼び出しにどれく らい時間がかかったかわか る - ボトルネックの関数を特定 し、LCPが50%改善 15
  11. 2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. メトリクスによるオートスケール Track Servers の特徴 -

    負荷が1⽇で10倍近く変化 する - ピーク時には急激に負荷が 増える 柔軟なオートスケールが必要
  12. 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
  13. 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
  14. 2023.11.28  |  Datadog Webinar  |    |  © PLAID Inc. まとめ BtoB SaaS『KARTE』での Datadog の活⽤事例につい

    て話しました - Web アプリケーションのパフォー マンスを改善‧監視 - 実際のユーザー視点で計測する ことが⼤事 - 汎⽤的なオートスケールの仕組みを 構築して運⽤を⾃動化 24