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.6k
電動マイクロモビリティのシェアサービス「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
Enabling Client-side SLO
grimoh
7
2.6k
Luupの開発組織におけるインシデントマネジメントの変遷 ver.RoadtoSRENEXT2024
grimoh
1
380
Luupの開発組織におけるインシデントマネジメントの変遷
grimoh
2
910
IoTサービスにおけるSLI設計とLUUPでの実践
grimoh
2
1.2k
Luupの開発組織におけるインシデントマネジメントのこれから
grimoh
2
1.1k
SRE NEXT 2023への招待
grimoh
0
4.3k
”信頼性”の使い方
grimoh
0
150
LuupにおけるSLOの物語
grimoh
2
5.5k
Production Ready with Dev Process Improvement
grimoh
4
3.1k
Other Decks in Technology
See All in Technology
難しいから面白い!医薬品×在庫管理ドメインの複雑性と向き合い、プロダクトの成長を支えるための取り組み / Initiatives to Support Product Growth
kakehashi
2
180
Swift Testingのconfirmationを コードリーディング/Dive into Swift Testing confirmation
laprasdrum
1
210
FastConnect の冗長性
ocise
0
7.2k
疎通2024
sadnessojisan
5
1k
四国クラウドお遍路 2024 in 高知 オープニング
yukataoka
0
180
PdMはどのように全てのスピードを上げられるか ~ 非連続進化のための具体的な取り組み ~
sansantech
PRO
1
150
「家族アルバム みてね」における運用管理・ オブザーバビリティの全貌 / Overview of Operation Management and Observability in FamilyAlbum
isaoshimizu
4
140
突撃! 隣のAmazon Bedrockユーザー 〜YouはどうしてAWSで?〜
minorun365
PRO
3
310
Functional TypeScript
naoya
11
4.5k
サーバレスでモバイルアプリ開発! NTTコム「ビジネスdアプリ」のアーキテクチャ / The architecture of business d app
nttcom
12
220
音声AIエージェントの世界とRetell AI入門 / Introduction to the World of Voice AI Agents and Retell AI
rkaga
4
890
アプリをリリースできる状態に保ったまま 段階的にリファクタリングするための 戦略と戦術 / Strategies and tactics for incremental refactoring
yanzm
6
600
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
41
6.5k
Rebuilding a faster, lazier Slack
samanthasiow
78
8.6k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Fashionably flexible responsive web design (full day workshop)
malarkey
401
65k
Raft: Consensus for Rubyists
vanstee
135
6.5k
The World Runs on Bad Software
bkeepers
PRO
64
11k
Why Our Code Smells
bkeepers
PRO
334
56k
Adopting Sorbet at Scale
ufuk
73
8.9k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
36
1.9k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
Navigating Team Friction
lara
183
13k
Being A Developer After 40
akosma
83
580k
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