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
LuupにおけるSLOの物語
Search
gr1m0h
May 16, 2023
Technology
7.4k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
LuupにおけるSLOの物語
gr1m0h
May 16, 2023
More Decks by gr1m0h
See All by gr1m0h
システム監視入門
grimoh
5
890
SRE Lounge Hiroshimaへの招待
grimoh
0
1.1k
サービス影響を出さずにWafCharmを導入する
grimoh
0
130
インシデント対応入門
grimoh
8
6.7k
フルリモートを支える技術
grimoh
0
130
マイクロモビリティシェアサービスを支える プラットフォームアーキテクチャ
grimoh
1
720
"君は見ているが観察していない"で考えるインシデントマネジメント
grimoh
4
4k
Enabling Client-side SLO
grimoh
7
5.8k
Luupの開発組織におけるインシデントマネジメントの変遷 ver.RoadtoSRENEXT2024
grimoh
2
1.2k
Other Decks in Technology
See All in Technology
攻撃と防御で学ぶAI時代のプロダクトセキュリティ演習
recruitengineers
PRO
9
3k
Breaking the Seal: Static Deobfuscation of Compiled V8 JavaScript Bytecode Malware
hshrzd
0
840
【AG-UI × A2UI × MCP Apps】Generative UIをやさしく解説する
nrinetcom
PRO
1
140
Apache Icebergインフラストラクチャ:ストレージ・カタログ・エンジンの選択肢とClouderaプラットフォームでの実装
tsugiyama
0
110
AWS ネットワーク構築でハマった(ハマりかけた) 5選とそこから得た教訓
nagisa53
4
250
ボトムアップ文化が強い組織で セキュリティをどう根付かせていくかの現在進行形の話 / Making Security Stick in a Bottom-Up Organization
yamaguchitk333
0
240
猫付きpingコマンドを自作
uyuki234
0
250
オートロックマンションなのに、各部屋は施錠なし!? 攻撃者が組織内ネットワークで大暴れする理由 / The Front Door Is Locked, but the Rooms Are Wide Open: Why Attackers Move Freely Inside Enterprise Networks
nttcom
1
6k
ハーレムエンジニアリング
kazuma777777
0
180
DatadogのBits Chatが開発組織にもたらしたもの / What Bits Chat Has Brought Us
sms_tech
1
280
FPGAが実現する遠方宇宙の高空間分解能天体撮影 -大型地上望遠鏡の視力を補正する「補償光学」とは?-
komei_mt
0
280
事業価値と Engineering 2026年度版
recruitengineers
PRO
50
24k
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
280
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.1k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
Site-Speed That Sticks
csswizardry
13
1.4k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
420
Balancing Empowerment & Direction
lara
6
1.2k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
340
Into the Great Unknown - MozCon
thekraken
41
2.7k
A better future with KSS
kneath
240
18k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
410
Transcript
Wataru Tsuda (@gr1m0h) 2023年5月16日 SLOconf Tokyo 2023 LuupにおけるSLOの物語
2 自己紹介 whoami Wataru Tsuda / gr1m0h SRE @Luup, inc.
SRE Lounge / SRE NEXT 運営メンバー Platform Engineering Meetup 運営メンバー SRE NEXT 2023 Chair
3 伝えたいこと • IoTデバイスを扱うサービスでのSLIの考え方 • スタートアップでのSLO運用の始め方
4 Agenda • Luup SREチーム ◦ どんなことしてるか ◦ どんなチームとコラボレーションしてるか •
LUUPにおけるSLO ◦ CUJ、CMC ◦ SLO • LuupにおけるSLO運用 ◦ SLO定期見直し ◦ SLO違反対応 ◦ BurnRateAlert対応 ◦ Luup Case Study ◦ Enabling SRE活動 • Luup SREチームの今後
5 用語 • LUUP ◦ サービス名 ◦ 電動マイクロモビリティのシェアリングサービス • Luup
◦ 会社名 ◦ 株式会社Luup
6 街じゅうの電動マイクロモビリティに、 どこからでも乗れて好きな場所に返せるシェアリングサービス LUUPとは https://luup.sc/
7 SLOについて • SLI ◦ サービス動作の指標 ◦ 「ユーザーがサービスを期待通りに使えているか」が反映された指標であるべき • SLO
◦ SLIに対する具体的な目標値 • Error Budget ◦ ”SLIによって計測されるソフトウェアのエラー”に対する予算 ◦ SLOに基づいて算出される “許容できるエラーの割合” • Burn Rate ◦ SLOに対してErrorBudgetをどれだけの速度で消費しているかの傾き
8 Agenda • Luup SREチーム ◦ どんなことしてるか ◦ どんなチームとコラボレーションしてるか •
LUUPにおけるSLO ◦ CUJ、CMC ◦ SLO • LuupにおけるSLO運用 ◦ SLO定期見直し ◦ SLO違反対応 ◦ BurnRateAlert対応 ◦ Luup Case Study ◦ Enabling SRE活動 • Luup SREチームの今後
9 LuupのSREチーム紹介 LuupのSREチームについて チーム構成:11人(正社員: 3人) 役割:LUUPを提供するためのインフラ品質や信頼性を高めること 担当範囲: • サービスの可用性や信頼性の向上・担保 •
開発や運用の効率性を担保するための自動化 • 変更管理 • モニタリング • 緊急対応とオンコール体制の構築 • キャパシティプランニング
10 SREチームの「ご近所さん」 LuupのSREチームについて Hardware チーム IoT チーム SRE チーム Server
チーム Android チーム iOS チーム CTO PdM
11 ざっくり構成図 LUUPの現状構成
12 ざっくり構成図 LUUPの現状構成 Hardwareチーム Serverチーム IoTチーム iOS/Androidチーム
13 Agenda • Luup SREチーム ◦ どんなことしてるか ◦ どんなチームとコラボレーションしてるか •
LUUPにおけるSLO ◦ CUJ、CMC ◦ SLO • LuupにおけるSLO運用 ◦ SLO定期見直し ◦ SLO違反対応 ◦ BurnRateAlert対応 ◦ Luup Case Study ◦ Enabling SRE活動 • Luup SREチームの今後
14 CUJ(Critical User Journey) https://sre.google/workbook/table-of-contents/ LUUPにおけるSLO 究極的にはSLOの主眼は顧客体験の改善であるべきです。 したがって、SLOはユーザーを中心に置くアクションについて書かれるべきです。 顧客の体験を補足するには、クリティカルユーザージャーニーを利用できます。 クリティカルユーザージャーニーは、あるユーザーの体験の中核部分となるタスクの並び
で、サービスのきわめて重要な側面です。 サイトリライアビリティワークブックより • ユーザーが目的を達成するために行うサービス操作をCUJとする • CUJに紐づく操作を計測したSLIはユーザー体験を反映したSLIとなる
15 CMC(Critical Machine Communication) LUUPにおけるSLO IoTにおけるSLIで計測するべきなのは、”マシンが期待通りに動作できる状態であるか” である その計測対象をCMC:Critical Machine Communicationと定義した
※CMCは一般用語ではなく、Luup内でCUJと区別するため作成された用語です • CMCとは、IoTデバイスが動作するために必要なステータス群 ◦ e.g. バッテリーが切れていないか、サーバーと接続されているか、... ◦ プロトコルとしては、MQTTやLwM2M等 • CMCに紐づくメトリクスを観測することで、マシンが期待通りに動作している状態であ ることを指標化できる • ハードウェアの異常は影響あるユーザは少ないが、顧客体験への影響がソフトウェア の異常よりも大きくなる懸念がある
16 CMC(Critical Machine Communication) https://speakerdeck.com/0gm/jie-ziyuuwo-yi-qian-hua-surudian-dong-maikuromobiriteifalsesieasabisu-luup-falseiottosre LUUPにおけるSLO CMCやIoTxSREについては、 SRE NEXT 2022
でのセッションに詳しく記載されています!
17 LUUP ライドを行う際の一連のアクティビティ LUUPにおけるSLO
18 LUUP ライドを行う際の一連のアクティビティ LUUPにおけるSLO
19 LUUP ライドを行う際の処理の流れ LUUPにおけるSLO
20 LUUP ライドを行う際の処理の流れ LUUPにおけるSLO
21 LUUP SLO LUUPにおけるSLO SLO • Availability SLO: 99% ◦
HTTP/MQTT Success Rate • Latency SLO: 99% ◦ HTTP Response time (99%ile > 20s) 対象のアクティビティ(CUJ) • RideStart(ライドを開始する) • Lock(ライドを一時停止する) • Unlock(ライドを再開する)
22 Agenda • Luup SREチーム ◦ どんなことしてるか ◦ どんなチームとコラボレーションしてるか •
LUUPにおけるSLO ◦ CUJ、CMC ◦ SLO • LuupにおけるSLO運用 ◦ SLO定期見直し ◦ SLO違反対応 ◦ BurnRateAlert対応 ◦ Luup Case Study ◦ Enabling SRE活動 • Luup SREチームの今後 ◦ SLO Roadmap
23 SLOまわりの構成図 LuupにおけるSLO運用 通知 SLO Monitor作成 ︙ メトリクス/ログ 送信
24 Datadog SLO Dashboard LuupにおけるSLO運用 12345 12345 12345 12345
25 Datadog SLO:Terraform LuupにおけるSLO運用
26 SLOが「運用されている状態」ってどんな状態? LuupにおけるSLO運用 1. SLO違反になった時、SLO Burn Rate Alertが鳴った時のアクションアイテム、フロー が決まっており、継続的に実施がなされている状態 2.
形骸化を防ぐために定期的な見直しが実施されている状態 3. SLO違反対応、SLO Burn Rate Alertの対応、SLO定期見直しについてSREメンバー なら誰でも主導して解決に持っていける状態(属人化の排除) 4. SLOが開発計画に対する意思決定に使用されている状態 5. SLOが社内に浸透している状態
27 SLOが「運用されている状態」ってどんな状態? LuupにおけるSLO運用 1. SLO違反になった時、SLO Burn Rate Alertが鳴った時のアクションアイテム、フロー が決まっており、継続的に実施がなされている状態 2.
形骸化を防ぐために定期的な見直しが実施されている状態 3. SLO違反対応、SLO Burn Rate Alertの対応、SLO定期見直しについてSREメンバー なら誰でも主導して解決に持っていける状態(属人化の排除) 4. SLOが開発計画に対する意思決定に使用されている状態 5. SLOが社内に浸透している状態 SLO違反対応、SLO BurnRate Alert対応、SLO定期見直しの 3つのイベントに対して対応が必要 Enabling SREという活動が必要
28 SLOが「運用されている状態」ってどんな状態? LuupにおけるSLO運用 1. SLO違反になった時、SLO Burn Rate Alertが鳴った時のアクションアイテム、フロー が決まっており、継続的に実施がなされている状態 2.
形骸化を防ぐために定期的な見直しが実施されている状態 3. SLO違反対応、SLO Burn Rate Alertの対応、SLO定期見直しについてSREメンバー なら誰でも主導して解決に持っていける状態(属人化の排除) 4. SLOが開発計画に対する意思決定に使用されている状態 5. SLOが社内に浸透している状態 SLO違反対応、SLO BurnRate Alert対応、SLO定期見直しの 3つのイベントに対して対応が必要 Enabling SREという活動が必要
29 SLO運用の3つのイベント LuupにおけるSLO運用 3つのイベント 1. SLO定期見直し • SLOの形骸化を防ぐために定期的な見直しを実施 2. SLO違反対応
• SLO違反が発生している = 明確に品質低下が起きている • 品質低下を改善するために新機能開発を止めて品質改善を行うべきか判断し対応を行う 3. SLO BurnRateAlert対応 • Burn Rate Alertが発火した = Error Budgetが枯渇しそうな状態 • ErrorBudget枯渇へ向かう勢いが強いので緊急度が高い対応となる
30 SLO定期見直し LuupにおけるSLO運用 大きく2つのことを行います 1. 定期見直し会議実施 • 2Qごとに定期的に実施 • メンバー:CTO、SRE、Dev、Approver(PdM、HW)
2. SLO、BurnRateAlert閾値変更対応実施 • Terraformで変更しPR
31 SLO違反対応 LuupにおけるSLO運用 大きく2つのことを行います 1. SLO違反対策検討会議実施 • メンバー:CTO、SRE、Dev、Approver(PdM、HW) 2. SLO違反対応実施
• SLO違反会議で出たアクションアイテムの実施
32 SLO BurnRateAlert対応 LuupにおけるSLO運用 大きく3つのことを行います 1. 止血/緩和対応実施 2. 他チームとコミュニケーション •
止血/緩和できなかった場合はエスカレーション • 対応検討を行う 3. 対応実施
33 Luup Case Study: Unlock Availability SLO違反 LuupにおけるSLO運用 12345 12345
12345 12345
34 Luup Case Study: Unlock Availability SLO違反 LuupにおけるSLO運用 ErrorBudgetに影響を及ぼしているのは以下の項目が考えられる 1.
オペレーション用アプリが同じAPIを使用していること ◦ アクションアイテム:オペレーション用アプリが使用するAPIを別にする ◦ オペレーション用アプリに対してもSLOを設定すべき ▪ 社内/社外のサービス運用者をユーザとしたときのSLOの計測は必要 2. 同じ車両のリトライによってエラー回数が増えていること ◦ リトライはErrorではなく、Warningであるべき ◦ リトライの影響はAvailability SLOではなくLatency SLOに影響があるべき ◦ アクションアイテム:サーバー側での自動リトライの追加によるリトライの内包
35 Luup Case Study: Unlock Availability SLO違反 LuupにおけるSLO運用 12345 12345
12345 12345
36 Luup Case Study: Unlock Availability SLO違反 LuupにおけるSLO運用 12345 12345
12345 12345 12345 12345
37 SLOが「運用されている状態」ってどんな状態? LuupにおけるSLO運用 1. SLO違反になった時、SLO Burn Rate Alertが鳴った時のアクションアイテム、フロー が決まっており、継続的に実施がなされている状態 2.
形骸化を防ぐために定期的な見直しが実施されている状態 3. SLO違反対応、SLO Burn Rate Alertの対応、SLO定期見直しについてSREメンバー なら誰でも主導して解決に持っていける状態(属人化の排除) 4. SLOが開発計画に対する意思決定に使用されている状態 5. SLOが社内に浸透している状態 SLO違反対応、SLO BurnRate Alert対応、SLO定期見直しの 3つイベントに対して対応が必要 Enabling SREという活動が必要
38 Enabling SRE活動 LuupにおけるSLO運用 Enabling SRE • 開発チームにSREの文化/知識を浸透させて開発者自身がSRE Practiceを実践でき るようにする活動
• Luupでは、SLOの普及と活用を開発チームだけでなくビジネスサイドまでスコープを 広げて適用することを進めています 現状の具体的な活動 • SLOのIaC化 ◦ TerraformによってDatadog SLOを設定できる状態にした ◦ → 開発者に設定してもらえるようにする • SLO社内勉強会 ◦ SLO運用を行うことによるSLOの普及、意識付け ◦ → もっと広く認知してもらうために勉強会を行う
39 Agenda • Luup SREチーム ◦ どんなことしてるか ◦ どんなチームとコラボレーションしてるか •
LUUPにおけるSLO ◦ CUJ、CMC ◦ SLO • LuupにおけるSLO運用 ◦ SLO定期見直し ◦ SLO違反対応 ◦ BurnRateAlert対応 ◦ Luup Case Study ◦ Enabling SRE活動 • Luup SREチームの今後
40 SLOまわりで今後やっていくこと Luup SREチームの今後 SLOの対象を増やしていくこと • CUJを対象とするSLOを更に増やしていく • CMCを対象とするSLOを増やしていく SLO運用を根付かせること
• SLO運用を回していき改善していく • SLO勉強会を開催する • 開発チームとの積極的なコラボレーション
41 LUUPのSLO運用を通して... まとめ • SLIはCUJとCMCから決めていく ◦ WebサービスにおけるCUJ(Critical User Journey) ◦
IoTデバイスにおけるCMC(Critical Machine Communication) • SLO運用について3イベントについて準備する ◦ SLO違反対応、SLO BurnRate Alert対応、SLO定期見直し • Enabling SREを進める必要がある ◦ SREチーム外の開発チームやビジネスサイドにSLOを普及するため • IoTデバイス特有のSLO運用の難しさが多くある ◦ IoTデバイスとシステムのコミュニケーション(CMC)があること ◦ 移動するIoTデバイスであること
None