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.2k
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
SRE Lounge Hiroshimaへの招待
grimoh
0
210
サービス影響を出さずにWafCharmを導入する
grimoh
0
120
インシデント対応入門
grimoh
8
6.6k
フルリモートを支える技術
grimoh
0
110
マイクロモビリティシェアサービスを支える プラットフォームアーキテクチャ
grimoh
1
690
"君は見ているが観察していない"で考えるインシデントマネジメント
grimoh
4
3.9k
Enabling Client-side SLO
grimoh
7
5.7k
Luupの開発組織におけるインシデントマネジメントの変遷 ver.RoadtoSRENEXT2024
grimoh
2
1.2k
Luupの開発組織におけるインシデントマネジメントの変遷
grimoh
2
2k
Other Decks in Technology
See All in Technology
SRE歴2ヶ月でも開発6年の知見を活かして、チームで止まっていた環境改善を前に進めた話
a_ono
1
210
小さいから、全部わかる。— 常駐AI "xangi" のすすめ
sugupoko
0
260
はてなのサービス基盤を支える Kubernetes《足腰》
masayoshimaezawa
0
440
RAGの精度向上とエージェント活用
kintotechdev
2
130
“ID沼入口” - 基本とセキュリティから始める、考え続けるためのID管理技術勉強会 告知&イントロ
ritou
0
400
証券システムを10年Scalaで作り続けるということ - 関数型まつり2026
krrrr38
2
430
Compose 新機能総まとめ / What's New in Jetpack Compose
yanzm
0
130
型は壁、Rustでもバグを直すな、表現できなくせよ
nwiizo
10
1.3k
AI駆動開発におけるQAエンジニアの役割事例 〜AI駆動開発の現場から〜
kobayashiyorimitsu
0
320
次世代ランサムウェア対策の考察 / 20260704 Mitsutoshi Matsuo
shift_evolve
PRO
5
1.7k
なぜ私たちのSREプラクティスはなかなか機能しないのか 〜システムより先に組織を見る〜 / Why our SRE practices aren't really working
vtryo
0
750
NDIAS CTF 2026 問題解説会資料
bata_24
0
180
Featured
See All Featured
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.3k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
410
Agile that works and the tools we love
rasmusluckow
331
22k
sira's awesome portfolio website redesign presentation
elsirapls
0
290
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
330
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
350
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
180
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
640
The SEO identity crisis: Don't let AI make you average
varn
0
510
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