Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Enabling Client-side SLO
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
gr1m0h
August 04, 2024
Technology
5.6k
7
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Enabling Client-side SLO
gr1m0h
August 04, 2024
More Decks by gr1m0h
See All by gr1m0h
サービス影響を出さずにWafCharmを導入する
grimoh
0
110
インシデント対応入門
grimoh
8
6.5k
フルリモートを支える技術
grimoh
0
110
マイクロモビリティシェアサービスを支える プラットフォームアーキテクチャ
grimoh
1
680
"君は見ているが観察していない"で考えるインシデントマネジメント
grimoh
4
3.9k
Luupの開発組織におけるインシデントマネジメントの変遷 ver.RoadtoSRENEXT2024
grimoh
2
1.2k
Luupの開発組織におけるインシデントマネジメントの変遷
grimoh
2
1.9k
IoTサービスにおけるSLI設計とLUUPでの実践
grimoh
1
2.4k
Luupの開発組織におけるインシデントマネジメントのこれから
grimoh
2
1.5k
Other Decks in Technology
See All in Technology
EventBridge Connection
_kensh
5
680
AmazonRoute 53ではじめてのドメイン取得!HTTPS化までの道のりを整理してみた
usanchuu
3
120
非エンジニアがClaudeと挑んだ「1ヶ月間プロダクト30本ノック」
askokc
0
210
AIの性能が向上しても未解決な組織の重大問題は何か?/An Unsolved Organizational Problem in the Age of AI
moriyuya
3
570
SIer20年! 培ったスキルがスタートアップで輝く時
shucho0103
0
810
価格.comをAI駆動で全面刷新する ー 30年分の技術的負債を返し、次の30年の土台をつくる ー / AI Engineering Summit Tokyo 2026
tkyowa
53
59k
非定型業務をAI slackbotで自動化する ~ 社内要望を自動壁打ちするbotを作った ~/automating-ad-hoc-work-with-ai-slackbot
shibayu36
0
560
AI Engineering Summit Tokyo 2026 AIの前に、やることがある 〜医療データ企業の4フェーズ〜
dtaniwaki
0
2.4k
MIERUNE JCT 発表資料「宇宙から伊能忠敬ごっこ」
syuchimu
0
200
2026.06.13_AI時代に事業会社が「SIer出身エンジニア」を求める理由 / Why Businesses Seek Engineers with a System Integrator Background in the AI Era
jumtech
0
1k
Oracle Cloud Infrastructure IaaS 新機能アップデート 2026/3 - 2026/5
oracle4engineer
PRO
1
240
ポケモンの型をTypeScriptの型システムで表現してみた
subroh0508
0
360
Featured
See All Featured
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
150
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
The Language of Interfaces
destraynor
162
27k
Navigating Weather and Climate Data
rabernat
0
220
Code Review Best Practice
trishagee
74
20k
Context Engineering - Making Every Token Count
addyosmani
9
950
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
140
Leo the Paperboy
mayatellez
7
1.8k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
150
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
Transcript
機密・専有情報 株式会社Luupによる個別の明示的な承諾を得ることなく、この資料を使用することを固く禁じます。 Wataru Tsuda / gr1m0h 2024.8.04 SRE NEXT 2024
Track B Enabling Client-side SLO
Luup, Inc. - Confidential and Proprietary 2 whoami Wataru Tsuda
/ gr1m0h Reliability Engineer @Luup,inc. SRE Lounge / SRE NEXT Organizar Platform Engineering Meetup Organizar
Luup, Inc. - Confidential and Proprietary 3 #srenext #srenext_b
Luup, Inc. - Confidential and Proprietary 4
Luup, Inc. - Confidential and Proprietary 5 https://sre-next.dev/2023/schedule/#jp027 Enabling SLO
Luup, Inc. - Confidential and Proprietary 6 0. 事業説明 1.
LUUPでクライアントのSLOを設定する理由 2. LUUPでクライアントのSLOを設定するために行った取り組み 3. 今後の展望 4. まとめ
Luup, Inc. - Confidential and Proprietary 7 0. 事業説明 1.
LUUPでクライアントのSLOを設定する理由 2. LUUPでクライアントのSLOを設定するために行った取り組み 3. 今後の展望 4. まとめ
Luup, Inc. - Confidential and Proprietary 8 LUUPとは 街じゅうの電動マイクロモビリティに、 どこからでも乗れて好きな場所に返せる
シェアリングサービス LUUPは電動キックボードと電動アシスト自転車のシェアリングサービス です。 LUUPのポートは街じゅうに広がっています。駅前や繁華街、住宅街や コンビニなど、近くのポートから好きなタイミングで借りて、好きな場所に 返すことができます。 毎日の最寄り駅までの移動や、「歩くには少し遠いな」と感じる場所へ向 かうこと、できれば避けたい坂道をのぼることも、 “早く・ラクに・気持ちの よい“ライドに変えることができます。 現在は、東京・大阪・横浜・京都・神戸・名古屋などで展開しており、さら に拡大を目指しています。
Luup, Inc. - Confidential and Proprietary 9 0. 事業説明 1.
LUUPでクライアントのSLOを設定する理由 2. LUUPでクライアントのSLOを設定するために行った取り組み 3. 今後の展望 4. まとめ
Luup, Inc. - Confidential and Proprietary 10 なぜClient-side SLOの話が少ないのか? 多分こんな感じ?
- コストの問題 - ユーザー側の都合に左右される問題 - ネットワーク問題 - 端末問題 - ユーザーの途中キャンセル問題 - “SRE” というロールのバックグラウンド/ケイパビリティの問題 - バックエンド/インフラ出身者が多く、慣れていないクライアントの信頼性に手を回すのが 遅れがち? - クライアントサイドでSLOを設定する必要がない場合がある - サービス自体の処理がAPIでほぼ完結する場合は計測する価値はあまりない https://www.usenix.org/conference/srecon17americas/program/presentation/chen
Luup, Inc. - Confidential and Proprietary 11 なぜLUUPでClient-side SLOを設定するのか? 以下の動機があった
- よりユーザーに近い部分で計測できる方が望ましい - クライアント側でAPIを介さずにFirestoreを叩いているケースがある - APIのみの計測だとここが漏れてしまう - APIを介さない処理を含めてユーザーに体験を提供できているかを計測したい - BLEでのアクションなど
Luup, Inc. - Confidential and Proprietary 12 0. 事業説明 1.
LUUPでクライアントのSLOを設定する理由 2. LUUPでクライアントのSLOを設定するために行った取り組み 3. 今後の展望 4. まとめ
Luup, Inc. - Confidential and Proprietary 13 LUUPでClient-side SLOを設定するためにやったこと CUJの再設定
PdM、SWEを巻き込んでCUJを再設定 SLIの設定 SLIの基となるメトリクスをDatadogにアップロード Latency SLIの閾値を決める 文化醸成 SLIを計測するDashboardの作成 SLI/SLOをWeeklyで確認する SLOの設定 Datadog Time Slice SLOの利用 SLOを複数作成 1 2 3 4
Luup, Inc. - Confidential and Proprietary 14 0. 事業説明 1.
LUUPでクライアントのSLOを設定する理由 2. LUUPでクライアントのSLOを設定するために行った取り組み - CUJの再設定 - SLIの設定 - 文化醸成 - SLOの設定 3. 今後の展望 4. まとめ
Luup, Inc. - Confidential and Proprietary 15 CUJの再設定 なぜCUJを再設定する必要があったのか? -
これまでSLOを運用してきたが、これもCUJを基に設定はしていた - サービス的に自明であるCUJを基にしていた - 施錠・解錠・ライド開始、ライド終了周り クライアントのSLOを設定するにあたって、サービスの全体観から考え直す サービスのユーザージャーニーを洗い出して、そこから議論しCUJを決める - ユーザージャーニー一覧を基に議論 - ユーザージャーニーマトリクスに結果をまとめた
Luup, Inc. - Confidential and Proprietary 16 CUJの再設定 ユーザージャーニー一覧 -
FigmaでPdMにユーザージャーニー一覧を作成してもらった - これを基にPdM、SWE、SREで議論する
Luup, Inc. - Confidential and Proprietary 17 CUJの再設定 ユーザージャーニーマトリクス -
PdM、SWE、SREで議論した結果を整理 - Enabling SLOではこれを更新していく
Luup, Inc. - Confidential and Proprietary 18 0. 事業説明 1.
LUUPでクライアントのSLOを設定する理由 2. LUUPでクライアントのSLOを設定するために行った取り組み - CUJの再設定 - SLIの設定 - 文化醸成 - SLOの設定 3. 今後の展望 4. まとめ
Luup, Inc. - Confidential and Proprietary 19 SLIの設定 SLOを考えるうえで以下を設定することを検討 -
Availability SLO - Latency SLO SLIは何にする? - iOS, Andoridで同様の目的で見ていた指標があるので、一旦これを活用する - Availability: Firebase Crashlytics - Latency: Firebase Performance Custom Trace
Luup, Inc. - Confidential and Proprietary 20 SLIの設定 SLOを考えるうえで以下を設定することを検討 -
Availability SLO - Latency SLO SLIは何にする? - iOS, Andoridで同様の目的で見ていた指標があるので、一旦これを活用する - Availability: Firebase Crashlytics → Datadog RUM - Latency: Firebase Performance Custom Trace → Datadog APM FirebaseではSLIを計測/SLOを設定できないので、Datadogにメトリクスをアップロードする - Datadog RUMはコスト等の観点から断念 - 上記の通り値を見ていないわけではないので、Latency SLOから進める(運用実績を作る)
Luup, Inc. - Confidential and Proprietary 21 メトリクスをDatadogにアップロード Datadog SDKを使ってTraceをDatadogにアップロードする
トライアルの実施はSREがメインで動いた - iOS, Androidチームサポートのもと、SREがSDKの導入・Traceの設定部分をコーディング
Luup, Inc. - Confidential and Proprietary 22 SLI設計 Latency SLI
Metricsを具体的に何にするか? - 本番環境のAPM Metrics(CUJの実行時間)の75%ile - Query; "p75:trace.<TRACE_NAME>{service:<SERVICE_NAME>, env:production}" “ユーザー側の都合に左右される問題” を除外したい そこにダイレクトに関連する変数である “Latency SLI Metrics の %ile値” の設定に悩んだ
Luup, Inc. - Confidential and Proprietary 23 SLI設計 Latency SLI
Metricsを具体的に何にするか? - 本番環境のAPM Metrics(CUJの実行時間)の75%ile - Query; "p75:trace.<TRACE_NAME>{service:<SERVICE_NAME>, env:production}" “ユーザー側の都合に左右される問題” を除外したい そこにダイレクトに関連する変数である “Latency SLI Metrics の %ile値” の設定に悩んだ なぜ 75%ile にしたのか?
Luup, Inc. - Confidential and Proprietary 24 “Latency SLI Metrics
の %ile値” の設定 同じような問題を抱えているWeb周りではどのように設定しているだろう?? Core Web Vitals の Good LCP Score で 75%ile を使っている! Core Web Vitals;Googleが提唱するユーザー体験の品質を測定するための主要な指標群 LCP;ページの主要なコンテンツ(通常は最大の画像やテキストブロック)が読み込まれて表示され るまでの時間 https://web.dev/articles/lcp#what-is-a-good-lcp-score
Luup, Inc. - Confidential and Proprietary 25 0. 事業説明 1.
LUUPでクライアントのSLOを設定する理由 2. LUUPでクライアントのSLOを設定するために行った取り組み - CUJの再設定 - SLIの設定 - 文化醸成 - SLOの設定 3. 今後の展望 4. まとめ
Luup, Inc. - Confidential and Proprietary 26 文化醸成 Enablingしていく中で文化醸成や運用を軌道に乗せる部分が一番重要 これらを進めるために以下の活動を実施した
1. SLIを見るためのダッシュボードを作成 SLOを設定するための情報を集めたい、SLI(値自体)を馴染みがあるものにしたい 2. SLI/SLOをWeeklyで確認 SLO(文化・考え方)/SLI(値自体)を馴染みがあるものにしたい
Luup, Inc. - Confidential and Proprietary 27 SLIを見るためのダッシュボードを作成 SLIの詳細を確認するためにダッシュボードを作成 -
PdM/SWEがイメージしやすいようCUJごとにグルーピング - iOSとAndroidのパフォーマンスを比較しやすいようにグラフを横に並べる
Luup, Inc. - Confidential and Proprietary 28 SLI/SLOをWeeklyで確認 SLI/SLOを意識するためにWeeklyでダッシュボードを確認 -
SREがファシリテーションし、サマリーを共有 - CUJ、SLI、SLOの妥当性、パフォーマンスについて議論
Luup, Inc. - Confidential and Proprietary 29 0. 事業説明 1.
LUUPでクライアントのSLOを設定する理由 2. LUUPでクライアントのSLOを設定するために行った取り組み - CUJの再設定 - SLIの設定 - 文化醸成 - SLOの設定 3. 今後の展望 4. まとめ
Luup, Inc. - Confidential and Proprietary 30 SLOの設定 SLOを実際に設定、作成していく中で運用を考慮して作成方法を考える必要がある これを進めるために以下の活動を実施した
1. DatadogでのSLOの作成 Time Slice SLOの選択 2. Multi-tiered SLOs SLOを決める際にSLOの値の意味・決める基準について熟考 1つのSLIに対して複数のSLOを作成
Luup, Inc. - Confidential and Proprietary 31 DatadogでのSLOの作成 APIのLatency SLOではMonitor-based
SLOを使用していたが、今回Time Slice SLOを検討した - Monitor-based SLOを使用していた段階ではTime Slice SLOはGAしていない - Time Slice SLOは2024年5月2日にGA https://app.datadoghq.com/release-notes/time-slice-slos-are-now-generally-available https://docs.datadoghq.com/service_management/service_level_objectives/guide/slo_types_comparison/ Monitor-based SLO Time Slice SLO SLI を時間ベースで計算したい場合に使用でき、 SLI はモニターのアップタイムを基にしています 。モニ ターベースの SLO は新規または既存の Datadog モ ニターに基づく必要があり、調整はそのモニターに対 して行う必要があります (SLO の作成時にはできま せん)。 SLI を時間ベースで計算したい場合に使用でき、 SLI はカスタムアップタイム定義 (システムが正常な動 作を示した時間を合計時間で割ったもの ) に基づき ます。タイムスライス SLO は、Datadog モニターを 必要とせず、さまざまなメトリクスフィルターとしきい 値を試して、SLO 作成中にダウンタイムを即座に調 査することができます。
Luup, Inc. - Confidential and Proprietary 32 Datadog Time Slice
SLOの採用 Time Slice SLOを採用した - Datadog SLOの利用できる機能の多さ - Datadog SLOの多くの機能を利用できる - Graph historical SLO data, SLO calendar view等 - データポイントの評価方法 - 最小1分単位の時間スライスを評価するので詳細にパフォーマンスを評価できる - 短期的なパフォーマンス変動が重要なアプリケーションではないので、割合によって値が 丸められることを許容する https://docs.datadoghq.com/service_management/service_level_objectives/#slo-calendar-view
Luup, Inc. - Confidential and Proprietary 33 Multi-tiered SLOs PdMがイメージしやすいように1つのSLIに複数のSLOを作成
- Upside, Downside, Actual の3つのSLOを作成した - 基本的にはDownside SLOを見ていくことになる Upside SLO Downside SLO Actual SLO 将来的に目指す水準 理想値であり、現実との乖離 を確認するためにSLOを計測 する (e.g., 99%, 1sec) 現実的に割りたくない水準 現状はこのSLOを注視、運用 していくことになる (e.g., 99%, 3sec) 実測値を基にSLOを設定 Downsideを割ってしまってい る一部SLOのみ作成 (e.g., 99% 5sec) https://blog.alexewerlof.com/p/multi-tiered-slos
Luup, Inc. - Confidential and Proprietary 34 SLOの運用 Phase Now
Near Future Actual is gone Future Downside is gone SLO Type / Role PdM SWE PdM SWE PdM SWE Upside ◎ ◯ ◎ ◯ ◎ ◎ Downside ◯ ◎ ◯ ◎ - - Actual ◯ ◎ - - - - フェーズごとにそれぞれのロールで意識するSLOが変わってくる - ◎:強く意識する、◯:意識する
Luup, Inc. - Confidential and Proprietary 35 0. 事業説明 1.
LUUPでクライアントのSLOを設定する理由 2. LUUPでクライアントのSLOを設定するために行った取り組み 3. 今後の展望 4. まとめ
Luup, Inc. - Confidential and Proprietary 36 今後の展望 アラート設定 -
Burn Rate Alertの調整 - SLOの補助アラートの追加 運用 - Actual廃止 - Downsideだけ見る状態にする - APIのSLOとの接続 SLOの追加 - Client-side Availability SLOの追加
Luup, Inc. - Confidential and Proprietary 37 0. 事業説明 1.
LUUPでクライアントのSLOを設定する理由 2. LUUPでクライアントのSLOを設定するために行った取り組み 3. 今後の展望 4. まとめ
Luup, Inc. - Confidential and Proprietary 38 まとめ - クライアントのSLOを導入するときにやったことについて紹介しました
- CUJの再設定、SLIの設定、文化醸成、SLOの設定 - 一緒に進めるPdMやSWEの立場に立つことが重要 - SLI/SLOはあくまでもツールなので、振り回されないこと - 最適な方法は探っていく必要がある - SLOの課題やプラクティスについて語りましょう! - クライアントのSLOの話をしましたが、IoTのSREの話も歓迎です! - #srenext, #srenext_b, @gr1m0h, Ask the Speaker 等で!
Luup, Inc. - Confidential and Proprietary 39 Ref. - SRE
NEXT 2023 - https://sre-next.dev/2023/ - Engineering Reliable Mobile Applications - SREcon17 Americas / USENIX - https://www.usenix.org/conference/srecon17americas/program/presentation/chen - Largest Contentful Paint(LCP)- web.dev - https://web.dev/articles/lcp#what-is-a-good-lcp-score - Datadog - https://app.datadoghq.com/release-notes/time-slice-slos-are-now-generally-availa ble - https://docs.datadoghq.com/service_management/service_level_objectives/guide/s lo_types_comparison/ - https://docs.datadoghq.com/service_management/service_level_objectives/ - Multi-tiered SLOs - Alex Ewerlöf Notes - https://blog.alexewerlof.com/p/multi-tiered-slos
一緒に、街じゅうを「駅前化」する インフラをつくりませんか? 詳細は採用ページをご覧ください https://recruit.luup.sc/
None