Upgrade to Pro — share decks privately, control downloads, hide ads and more …

電動マイクロモビリティのシェアサービス「LUUP」におけるEnabling SLOの実践

gr1m0h
September 27, 2023

電動マイクロモビリティのシェアサービス「LUUP」におけるEnabling SLOの実践

SRE NEXT 2023で登壇した内容です
ブログ記事で補足しています
https://zenn.dev/luup_developers/articles/sre-grimoh-20231002

gr1m0h

September 27, 2023
Tweet

More Decks by gr1m0h

Other Decks in Technology

Transcript

  1. 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
  2. Luup, Inc. - Confidential and Proprietary 4 Agenda • SLOについて

    ◦ SLI・SLO ◦ CUJ・CMC • Luup 開発組織について ◦ Luup 開発組織の紹介 ◦ LUUP構成の紹介 • Enabling SRE ◦ LuupのEnabling SRE ◦ これまでとこれから • Enabling SLO ◦ 開発組織全体への導入 ◦ IoTチームへの導入 • まとめ
  3. Luup, Inc. - Confidential and Proprietary 5 用語説明 本資料の用語について •

    LUUP ◦ サービス名 ◦ 電動マイクロモビリティのシェアリングサービス • Luup ◦ 会社名 ◦ 株式会社Luup
  4. Luup, Inc. - Confidential and Proprietary 6 LUUPとは 街じゅうの電動マイクロモビリティに、 どこからでも乗れて好きな場所に返せる

    シェアリングサービス LUUPは電動キックボードと電動アシスト自転車のシェアリングサービスで す。
 LUUPのポートは街じゅうに広がっています。駅前や繁華街、住宅街やコン ビニなど、近くのポートから好きなタイミングで借りて、好きな場所に返すこと ができます。 毎日の最寄り駅までの移動や、「歩くには少し遠いな」と感じる場所へ向か うこと、できれば避けたい坂道をのぼることも、“早く・ラクに・気持ちのよい “ライドに変えることができます。 現在は、東京・大阪・横浜・京都・神戸・名古屋などで展開しており、さらに拡 大を目指しています。
  5. Luup, Inc. - Confidential and Proprietary 7 Agenda • SLOについて

    ◦ SLI・SLO ◦ CUJ・CMC • Luup 開発組織について ◦ Luup 開発組織の紹介 ◦ LUUP構成の紹介 • Enabling SRE ◦ LuupのEnabling SRE ◦ これまでとこれから • Enabling SLO ◦ 開発組織全体への導入 ◦ IoTチームへの導入 • まとめ
  6. 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%成功していること
  7. Luup, Inc. - Confidential and Proprietary 9 CUJ(Critical User Journey)

    https://sre.google/workbook/table-of-contents/ SLOについて • ユーザーが目的を達成するために行うサービス操作をCUJとする • CUJに紐づく操作を計測したSLIはユーザー体験を反映したSLIとなる 究極的にはSLOの主眼は顧客体験の改善であるべきです。
 したがって、SLOはユーザーを中心に置くアクションについて書かれるべきです。
 顧客の体験を補足するには、クリティカルユーザージャーニーを利用できます。
 クリティカルユーザージャーニーは、あるユーザーの体験の中核部分となるタスクの並び で、サービスのきわめて重要な側面です。
 サイトリライアビリティワークブックより

  8. 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によって、マシンが期待通りに動作している状態であ ることを指標化できる • ハードウェア異常は影響のあるユーザーは少ないが、顧客体験への影響がソフトウェア の異常よりも大きくなる懸念がある
  9. Luup, Inc. - Confidential and Proprietary 11 Agenda • SLOについて

    ◦ SLI・SLO ◦ CUJ・CMC • Luup 開発組織について ◦ Luup 開発組織の紹介 ◦ LUUP構成の紹介 • Enabling SRE ◦ LuupのEnabling SRE ◦ これまでとこれから • Enabling SLO ◦ 開発組織全体への導入 ◦ IoTチームへの導入 • まとめ
  10. Luup, Inc. - Confidential and Proprietary 12 Luup 開発組織の紹介 Luup

    開発組織について 開発組織:10人 + α SREチーム:2人 + 9人=11人
  11. Luup, Inc. - Confidential and Proprietary 13 他チームとの連携 Luup 開発組織について

    PdM:Android / iOS / Serverチームとコミュニケーション Hardwareチーム:IoTチームとコミュニケーション
  12. Luup, Inc. - Confidential and Proprietary 15 Agenda • SLOについて

    ◦ SLI・SLO ◦ CUJ・CMC • Luup 開発組織について ◦ Luup 開発組織の紹介 ◦ LUUP構成の紹介 • Enabling SRE ◦ LuupのEnabling SRE ◦ これまでとこれから • Enabling SLO ◦ 開発組織全体への導入 ◦ IoTチームへの導入 • まとめ
  13. Luup, Inc. - Confidential and Proprietary 16 LuupのEnabling SRE Enabling

    SRE Enabling SRE • 開発チームにSREの文化/知識を浸透させて開発者自身がSRE Practiceを実践でき るようにする活動 • LuupではSLOの普及と活用を開発組織だけでなくビジネスサイドまでスコープを広げ て適用することを進めています Enabling “SRE” だとスコープが広いので、Enabling “SLO” としてSLOの導入をメイン に進めています
  14. 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
  15. Luup, Inc. - Confidential and Proprietary 19 Agenda • SLOについて

    ◦ SLI・SLO ◦ CUJ・CMC • Luup 開発組織について ◦ Luup 開発組織の紹介 ◦ LUUP構成の紹介 • Enabling SRE ◦ LuupのEnabling SRE ◦ これまでとこれから • Enabling SLO ◦ 開発組織全体への導入 ◦ IoTチームへの導入 • まとめ
  16. Luup, Inc. - Confidential and Proprietary 20 Enabling SLOの対象範囲 Enabling

    SLO 1. 会社全体 またどこかの機会でお話しします! 2. 開発組織全体 3. 特定の開発コンポーネント
  17. Luup, Inc. - Confidential and Proprietary 21 開発組織全体に対して Enabling SLO

    開発組織全体でSLOについての議論を行っていくために以下を行いました • SLO習熟度調査の実施 • SLO勉強会の実施
  18. Luup, Inc. - Confidential and Proprietary 23 開発組織全体に対して:SLO習熟度調査の実施 Enabling SLO

    • 組織全体や個人の今現在の習熟度を知るために実施 • エンジニアだけでなくPdMも調査対象 • SLOに関する問題が全14問 • 将来的に以下のような活用が考えられる ◦ 再度実施してEnabling度合いを計測 ◦ オンボーディング時に実施し、個別フォローアップ
  19. 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を運用しているか ▪ 運用はどのようにしているか ▪ 既知の問題とその対応状況について
  20. Luup, Inc. - Confidential and Proprietary 25 特定の開発コンポーネントに対して Enabling SLO

    以下のチームにSREチームからアプローチを行いました • Androidチーム・iOSチーム・Serverチーム ◦ またどこかの機会でお話しします! • IoTチーム
  21. Luup, Inc. - Confidential and Proprietary 27 Embedded SREはできないので、Developer Leadとの直接的なコミュニケーションで進めた

    Enabling SLO SREチームのリソース不足 • 正社員2人、フルタイムは正社員含めて3人という状況 業務委託メンバーのコントロール • 業務委託メンバーの稼働としてSLO部分含めて良いかの判断がSREではできなかった • 業務委託メンバーの稼働管理している各チームの正社員に判断してもらう
  22. Luup, Inc. - Confidential and Proprietary 28 IoTチームへの導入 Enabling SLO

    IoTデバイスの信頼性を担保するために以下の活動を行っています • 車両の施錠解錠のエラー率の低減:自動サービスアウト ◦ 定期通信途絶によるサービスアウト ◦ ハードウェアエラーによるサービスアウト • CMC based SLIの設計
  23. Luup, Inc. - Confidential and Proprietary 29 IoTチームへの導入:定期通信途絶によるサービスアウト Enabling SLO

    一定時間、定期通信がないときに自動でサービスアウトする機能 • 車両の利用状況に関わらず一定時間ごとに定期通信をしている • 定期通信の応答時間をDBに保存 • 一定時間ごとにDBに保存した最終更新時間を確認して車両を判定する • 一定時間応答なければ定期通信できていないとして、サービスアウト • 定期通信が発生したタイミングでサービスイン
  24. Luup, Inc. - Confidential and Proprietary 30 IoTチームへの導入:ハードウェアエラーによるサービスアウト Enabling SLO

    ハードウェアエラーを検知したときに自動でサービスアウトする機能 • ハードウェアエラーは定期的に車両から通知されている • エラー毎にしきい値を決めて一定時間でしきい値を超えたら、Slack通知+サービスア ウトを行う • ハードウェア起因の故障なので自動でサービスインはせず、フィールドで確認後、修 理かサービスインかを判断する
  25. Luup, Inc. - Confidential and Proprietary 32 Agenda • SLOについて

    ◦ SLI・SLO ◦ CUJ・CMC • Luup 開発組織について ◦ Luup 開発組織の紹介 ◦ LUUP構成の紹介 • Enabling SRE ◦ LuupのEnabling SRE ◦ これまでとこれから • Enabling SLO ◦ 導入方法 ◦ 開発組織全体への導入 ◦ IoTチームへの導入 • まとめ
  26. Luup, Inc. - Confidential and Proprietary 33 LUUPのEnablingSLOを始めてみて.... まとめ Enabling

    SREは少しずつ行う • 関係するチームを少しずつ増やしていき、開発組織全体に拡大する 開発組織全体で人数が少ない状態では、Leadとの直接コミュニケーションを行う • 開発組織全体で人数が少ない状態 ≒ スタートアップ • EmbeddedSREはリソース的に難しい • Leadには、将来的に各チームでSRE伝道師を担ってもらうことを期待 IoT領域のSLI設計についてはCMCを使用する • CMC:Critical Machine Communication • 定期通信途絶とハードウェアエラーによる自動サービスアウト ◦ 現実世界で移動するIoTデバイスであるというLUUP特有の機能 • サービスインしている車両の割合でSLIを検討中