Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Enabling Client-side SLO
Search
gr1m0h
August 04, 2024
Technology
5.8k
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
品質と信頼性を地続きにする
grimoh
3
1.5k
システム監視入門
grimoh
5
1.1k
SRE Lounge Hiroshimaへの招待
grimoh
0
1.2k
サービス影響を出さずにWafCharmを導入する
grimoh
0
140
インシデント対応入門
grimoh
8
6.8k
フルリモートを支える技術
grimoh
0
130
マイクロモビリティシェアサービスを支える プラットフォームアーキテクチャ
grimoh
1
750
"君は見ているが観察していない"で考えるインシデントマネジメント
grimoh
4
4k
Luupの開発組織におけるインシデントマネジメントの変遷 ver.RoadtoSRENEXT2024
grimoh
2
1.2k
Other Decks in Technology
See All in Technology
LT:「このままでいいのかな?」から一歩踏み出した私のデータキャリア選択〜社会人3年目に上京を決意したリアル〜Snowflake女子会 vol.8
snowwmn0824
0
120
OpenClawでAzure DevOpsのWiki更新を自動化する - クラウドAIだけでは届かない場所へ
yutakaosada
0
130
可視化から始めたAI駆動開発_ochi_ver1.01 / AI-Driven Development Starting with Visualization_ver1.01
yayoi_dd
0
110
人にやさしく、AIにやさしく、書き手を選ばないIaCのガードレール再考 / Rethinking IaC Guardrails for Humans and AI Alike
kohbis
5
1.8k
Meet AgentCore Identity Consent Portal
hironobuiga
2
140
形式手法を使って仕様をコーディングしよう
mikanichinose
0
140
地方移住と都心キャリアの両立は「金・時間・人」のリソースをフル活用すれば実現できる!〜Snowflake女子会 vol.8
snowwmn0824
0
140
Confitura 2026
logico_jp
0
100
AIエージェントを安全で速い現場監督にする:Jev・Obsidian・メタハーネス
x5gtrn
PRO
0
140
企業の現実世界をグラフで写し取る
sansantech
PRO
0
210
生成AIを使って「人が」考える技術 ― AI時代の人機共想と実践ノウハウ|UNITT AC2026
ishiirikie
0
450
AIに会社の文脈を理解させる技術~上流工程・非エンジニアにも広げるハーネスエンジニアリング実践~
ochtum
0
190
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
331
22k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
310
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
470
Side Projects
sachag
456
43k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
590
The SEO Collaboration Effect
kristinabergwall1
1
580
A Soul's Torment
seathinner
8
3.7k
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