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」におけるEnabling SLOの実践
Search
gr1m0h
September 27, 2023
Technology
3
1.8k
電動マイクロモビリティのシェアサービス「LUUP」におけるEnabling SLOの実践
SRE NEXT 2023で登壇した内容です
ブログ記事で補足しています
https://zenn.dev/luup_developers/articles/sre-grimoh-20231002
gr1m0h
September 27, 2023
Tweet
Share
More Decks by gr1m0h
See All by gr1m0h
"君は見ているが観察していない"で考えるインシデントマネジメント
grimoh
4
3.2k
Enabling Client-side SLO
grimoh
7
4.1k
Luupの開発組織におけるインシデントマネジメントの変遷 ver.RoadtoSRENEXT2024
grimoh
2
740
Luupの開発組織におけるインシデントマネジメントの変遷
grimoh
2
1.2k
IoTサービスにおけるSLI設計とLUUPでの実践
grimoh
2
1.4k
Luupの開発組織におけるインシデントマネジメントのこれから
grimoh
2
1.2k
SRE NEXT 2023への招待
grimoh
0
5.6k
”信頼性”の使い方
grimoh
0
180
LuupにおけるSLOの物語
grimoh
2
6k
Other Decks in Technology
See All in Technology
あの日俺達が夢見たサーバレスアーキテクチャ/the-serverless-architecture-we-dreamed-of
tomoki10
0
460
GitHub Copilot のテクニック集/GitHub Copilot Techniques
rayuron
36
13k
alecthomas/kong はいいぞ / kamakura.go#7
fujiwara3
1
300
5分でわかるDuckDB
chanyou0311
10
3.2k
マルチプロダクト開発の現場でAWS Security Hubを1年以上運用して得た教訓
muziyoshiz
3
2.3k
どちらを使う?GitHub or Azure DevOps Ver. 24H2
kkamegawa
0
760
【re:Invent 2024 アプデ】 Prompt Routing の紹介
champ
0
140
サービスでLLMを採用したばっかりに振り回され続けたこの一年のあれやこれや
segavvy
2
410
新機能VPCリソースエンドポイント機能検証から得られた考察
duelist2020jp
0
220
なぜCodeceptJSを選んだか
goataka
0
160
生成AIをより賢く エンジニアのための RAG入門 - Oracle AI Jam Session #20
kutsushitaneko
4
220
podman_update_2024-12
orimanabu
1
270
Featured
See All Featured
The Invisible Side of Design
smashingmag
298
50k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
How to Ace a Technical Interview
jacobian
276
23k
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
Optimising Largest Contentful Paint
csswizardry
33
3k
Faster Mobile Websites
deanohume
305
30k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Fireside Chat
paigeccino
34
3.1k
Automating Front-end Workflow
addyosmani
1366
200k
Transcript
機密・専有情報 株式会社Luupによる個別の明示的な承諾を得ることなく、この資料を使用することを固く禁じます。 Wataru Tsuda / gr1m0h 2023年9月29日 SRE NEXT 2023
Track C Session 電動マイクロモビリティのシェアサービ ス「LUUP」におけるEnabling SLO の実践
Luup, Inc. - Confidential and Proprietary 2 自己紹介 チャプター(最大1行) whoami
Wataru Tsuda / gr1m0h SRE @Luup,inc. SRE Lounge /SRE NEXT 運営メンバー Platform Engineering Meetup 運営メンバー SRE NEXT 2023 Chair
Luup, Inc. - Confidential and Proprietary 3 伝えたいこと • SLOを開発者・PdMに伝導、導入するための方法と考慮点
• IoT分野でSRE・SLOを実践していくための方法
Luup, Inc. - Confidential and Proprietary 4 Agenda • SLOについて
◦ SLI・SLO ◦ CUJ・CMC • Luup 開発組織について ◦ Luup 開発組織の紹介 ◦ LUUP構成の紹介 • Enabling SRE ◦ LuupのEnabling SRE ◦ これまでとこれから • Enabling SLO ◦ 開発組織全体への導入 ◦ IoTチームへの導入 • まとめ
Luup, Inc. - Confidential and Proprietary 5 用語説明 本資料の用語について •
LUUP ◦ サービス名 ◦ 電動マイクロモビリティのシェアリングサービス • Luup ◦ 会社名 ◦ 株式会社Luup
Luup, Inc. - Confidential and Proprietary 6 LUUPとは 街じゅうの電動マイクロモビリティに、 どこからでも乗れて好きな場所に返せる
シェアリングサービス LUUPは電動キックボードと電動アシスト自転車のシェアリングサービスで す。 LUUPのポートは街じゅうに広がっています。駅前や繁華街、住宅街やコン ビニなど、近くのポートから好きなタイミングで借りて、好きな場所に返すこと ができます。 毎日の最寄り駅までの移動や、「歩くには少し遠いな」と感じる場所へ向か うこと、できれば避けたい坂道をのぼることも、“早く・ラクに・気持ちのよい “ライドに変えることができます。 現在は、東京・大阪・横浜・京都・神戸・名古屋などで展開しており、さらに拡 大を目指しています。
Luup, Inc. - Confidential and Proprietary 7 Agenda • SLOについて
◦ SLI・SLO ◦ CUJ・CMC • Luup 開発組織について ◦ Luup 開発組織の紹介 ◦ LUUP構成の紹介 • Enabling SRE ◦ LuupのEnabling SRE ◦ これまでとこれから • Enabling SLO ◦ 開発組織全体への導入 ◦ IoTチームへの導入 • まとめ
Luup, Inc. - Confidential and Proprietary 8 SLI(Service Level Indicator)・SLO(Service
Level Objective) SLOについて SLI: Service Level Indicator • 提供しているサービスの動作を直接測定した指標 ◦ レート / アベレージ / パーセンタイルなどのメトリクスにできる形で測定する • 「ユーザーがサービスを期待通りに使えているか」が反映された指標であるべき SLO: Service Level Objective • SLIに対する具体的な目標値 • 信頼性に関してデータドリブンな意思決定を促す • SLOは達成したいSLIの目標値と対象期間(Window)を定める ◦ e.g. 過去30日間で99.9%成功していること
Luup, Inc. - Confidential and Proprietary 9 CUJ(Critical User Journey)
https://sre.google/workbook/table-of-contents/ SLOについて • ユーザーが目的を達成するために行うサービス操作をCUJとする • CUJに紐づく操作を計測したSLIはユーザー体験を反映したSLIとなる 究極的にはSLOの主眼は顧客体験の改善であるべきです。 したがって、SLOはユーザーを中心に置くアクションについて書かれるべきです。 顧客の体験を補足するには、クリティカルユーザージャーニーを利用できます。 クリティカルユーザージャーニーは、あるユーザーの体験の中核部分となるタスクの並び で、サービスのきわめて重要な側面です。 サイトリライアビリティワークブックより
Luup, Inc. - Confidential and Proprietary 10 CMC(Critical Machine Communication)
SLOについて IoTにおけるSLIで計測すべきなのは ”マシンが期待通りに動作できる状態であるか” その計測対象をCMC:Critical Machine Communication と定義 ※CMCは一般用語ではなく、Luup内でCUJと区別するために作成された用語です • IoTデバイスが動作するために行う操作をCMCとする ◦ e.g. バッテリーが切れていないか、サーバーと接続されているか ◦ プロトコルとしては、MQTT、LwM2Mなど • CMCに紐づく動作を計測したSLIによって、マシンが期待通りに動作している状態であ ることを指標化できる • ハードウェア異常は影響のあるユーザーは少ないが、顧客体験への影響がソフトウェア の異常よりも大きくなる懸念がある
Luup, Inc. - Confidential and Proprietary 11 Agenda • SLOについて
◦ SLI・SLO ◦ CUJ・CMC • Luup 開発組織について ◦ Luup 開発組織の紹介 ◦ LUUP構成の紹介 • Enabling SRE ◦ LuupのEnabling SRE ◦ これまでとこれから • Enabling SLO ◦ 開発組織全体への導入 ◦ IoTチームへの導入 • まとめ
Luup, Inc. - Confidential and Proprietary 12 Luup 開発組織の紹介 Luup
開発組織について 開発組織:10人 + α SREチーム:2人 + 9人=11人
Luup, Inc. - Confidential and Proprietary 13 他チームとの連携 Luup 開発組織について
PdM:Android / iOS / Serverチームとコミュニケーション Hardwareチーム:IoTチームとコミュニケーション
Luup, Inc. - Confidential and Proprietary 14 LUUP構成の紹介 Luup 開発組織について
Luup, Inc. - Confidential and Proprietary 15 Agenda • SLOについて
◦ SLI・SLO ◦ CUJ・CMC • Luup 開発組織について ◦ Luup 開発組織の紹介 ◦ LUUP構成の紹介 • Enabling SRE ◦ LuupのEnabling SRE ◦ これまでとこれから • Enabling SLO ◦ 開発組織全体への導入 ◦ IoTチームへの導入 • まとめ
Luup, Inc. - Confidential and Proprietary 16 LuupのEnabling SRE Enabling
SRE Enabling SRE • 開発チームにSREの文化/知識を浸透させて開発者自身がSRE Practiceを実践でき るようにする活動 • LuupではSLOの普及と活用を開発組織だけでなくビジネスサイドまでスコープを広げ て適用することを進めています Enabling “SRE” だとスコープが広いので、Enabling “SLO” としてSLOの導入をメイン に進めています
Luup, Inc. - Confidential and Proprietary 17 これまでとこれから Enabling SRE
Luup, Inc. - Confidential and Proprietary 18 これまでのSREチームによるSLO運用については SLOconf Tokyo
2023でのセッションで詳しくお話ししています! https://zenn.dev/luup/articles/sre-grimoh-20230517 https://speakerdeck.com/grimoh/luupniokeruslonowu-yu Enabling SRE
Luup, Inc. - Confidential and Proprietary 19 Agenda • SLOについて
◦ SLI・SLO ◦ CUJ・CMC • Luup 開発組織について ◦ Luup 開発組織の紹介 ◦ LUUP構成の紹介 • Enabling SRE ◦ LuupのEnabling SRE ◦ これまでとこれから • Enabling SLO ◦ 開発組織全体への導入 ◦ IoTチームへの導入 • まとめ
Luup, Inc. - Confidential and Proprietary 20 Enabling SLOの対象範囲 Enabling
SLO 1. 会社全体 またどこかの機会でお話しします! 2. 開発組織全体 3. 特定の開発コンポーネント
Luup, Inc. - Confidential and Proprietary 21 開発組織全体に対して Enabling SLO
開発組織全体でSLOについての議論を行っていくために以下を行いました • SLO習熟度調査の実施 • SLO勉強会の実施
Luup, Inc. - Confidential and Proprietary 22 再掲:これまでとこれから Enabling SLO
Luup, Inc. - Confidential and Proprietary 23 開発組織全体に対して:SLO習熟度調査の実施 Enabling SLO
• 組織全体や個人の今現在の習熟度を知るために実施 • エンジニアだけでなくPdMも調査対象 • SLOに関する問題が全14問 • 将来的に以下のような活用が考えられる ◦ 再度実施してEnabling度合いを計測 ◦ オンボーディング時に実施し、個別フォローアップ
Luup, Inc. - Confidential and Proprietary 24 開発組織全体に対して:SLO勉強会の実施 Enabling SLO
• エンジニアみんなで議論できるように素地を作るために実施 • 習熟度調査の結果をフィードバックして構成検討 • 「背景」「SLI・SLOの基本」「Luup SREチームの現在のSLO運用状況」 ◦ 背景:なぜSLI・SLOの知識がLuup開発組織で必要か ◦ SLI・SLOの基本:SLI・SLOの基本的な知識について ◦ Luup SREチームの現在のSLO運用状況: ▪ Luup SREチームが今どんなSLOを運用しているか ▪ 運用はどのようにしているか ▪ 既知の問題とその対応状況について
Luup, Inc. - Confidential and Proprietary 25 特定の開発コンポーネントに対して Enabling SLO
以下のチームにSREチームからアプローチを行いました • Androidチーム・iOSチーム・Serverチーム ◦ またどこかの機会でお話しします! • IoTチーム
Luup, Inc. - Confidential and Proprietary 26 再掲:これまでとこれから Enabling SLO
Luup, Inc. - Confidential and Proprietary 27 Embedded SREはできないので、Developer Leadとの直接的なコミュニケーションで進めた
Enabling SLO SREチームのリソース不足 • 正社員2人、フルタイムは正社員含めて3人という状況 業務委託メンバーのコントロール • 業務委託メンバーの稼働としてSLO部分含めて良いかの判断がSREではできなかった • 業務委託メンバーの稼働管理している各チームの正社員に判断してもらう
Luup, Inc. - Confidential and Proprietary 28 IoTチームへの導入 Enabling SLO
IoTデバイスの信頼性を担保するために以下の活動を行っています • 車両の施錠解錠のエラー率の低減:自動サービスアウト ◦ 定期通信途絶によるサービスアウト ◦ ハードウェアエラーによるサービスアウト • CMC based SLIの設計
Luup, Inc. - Confidential and Proprietary 29 IoTチームへの導入:定期通信途絶によるサービスアウト Enabling SLO
一定時間、定期通信がないときに自動でサービスアウトする機能 • 車両の利用状況に関わらず一定時間ごとに定期通信をしている • 定期通信の応答時間をDBに保存 • 一定時間ごとにDBに保存した最終更新時間を確認して車両を判定する • 一定時間応答なければ定期通信できていないとして、サービスアウト • 定期通信が発生したタイミングでサービスイン
Luup, Inc. - Confidential and Proprietary 30 IoTチームへの導入:ハードウェアエラーによるサービスアウト Enabling SLO
ハードウェアエラーを検知したときに自動でサービスアウトする機能 • ハードウェアエラーは定期的に車両から通知されている • エラー毎にしきい値を決めて一定時間でしきい値を超えたら、Slack通知+サービスア ウトを行う • ハードウェア起因の故障なので自動でサービスインはせず、フィールドで確認後、修 理かサービスインかを判断する
Luup, Inc. - Confidential and Proprietary 31 IoTチームへの導入:CMC based SLIの設計(策定中)
Enabling SLO
Luup, Inc. - Confidential and Proprietary 32 Agenda • SLOについて
◦ SLI・SLO ◦ CUJ・CMC • Luup 開発組織について ◦ Luup 開発組織の紹介 ◦ LUUP構成の紹介 • Enabling SRE ◦ LuupのEnabling SRE ◦ これまでとこれから • Enabling SLO ◦ 導入方法 ◦ 開発組織全体への導入 ◦ IoTチームへの導入 • まとめ
Luup, Inc. - Confidential and Proprietary 33 LUUPのEnablingSLOを始めてみて.... まとめ Enabling
SREは少しずつ行う • 関係するチームを少しずつ増やしていき、開発組織全体に拡大する 開発組織全体で人数が少ない状態では、Leadとの直接コミュニケーションを行う • 開発組織全体で人数が少ない状態 ≒ スタートアップ • EmbeddedSREはリソース的に難しい • Leadには、将来的に各チームでSRE伝道師を担ってもらうことを期待 IoT領域のSLI設計についてはCMCを使用する • CMC:Critical Machine Communication • 定期通信途絶とハードウェアエラーによる自動サービスアウト ◦ 現実世界で移動するIoTデバイスであるというLUUP特有の機能 • サービスインしている車両の割合でSLIを検討中
一緒に、街じゅうを「駅前化」する インフラをつくりませんか? 詳細は採用ページをご覧ください https://recruit.luup.sc/
None