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

IoTサービスにおけるSLI設計とLUUPでの実践

gr1m0h
June 03, 2024

 IoTサービスにおけるSLI設計とLUUPでの実践

gr1m0h

June 03, 2024
Tweet

More Decks by gr1m0h

Other Decks in Technology

Transcript

  1. Luup, Inc. - Confidential and Proprietary 2 whoami Wataru Tsuda

    / gr1m0h Reliability Engineer @Luup,inc. SRE Lounge / SRE NEXT 運営メンバー Platform Engineering Meetup 運営メンバー Lives in Hiroshima
  2. Luup, Inc. - Confidential and Proprietary 3 0. 事業説明 1.

    SLI/SLOについて 2. IoTサービスでSLIを設計するときに考えること 3. LUUPでのCMC based SLI 4. まとめ
  3. Luup, Inc. - Confidential and Proprietary 4 0. 事業説明 1.

    SLI/SLOについて 2. IoTサービスでSLIを設計するときに考えること 3. LUUPでのCMC based SLI 4. まとめ
  4. Luup, Inc. - Confidential and Proprietary 5 LUUPとは 街じゅうの電動マイクロモビリティに、 どこからでも乗れて好きな場所に返せる

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

    SLI/SLOについて 2. IoTサービスでSLIを設計するときに考えること 3. LUUPでのCMC based SLI 4. まとめ
  6. Luup, Inc. - Confidential and Proprietary 7 SLI/SLOについて SLI;Service Level

    Indicator - サービスレベル指標 - 提供しているサービスの動作を直接測定した指標 - ユーザーの満足度に相関している指標 - rate, average, percentile 等のメトリクスの形式で測定する SLO;Service Level Objective - サービスレベル目標 - SLI(定量化した指標)に対する目標値 - 目標値の対象期間(Window)も定める - e.g., 過去30日間で99.99%成功していること
  7. Luup, Inc. - Confidential and Proprietary 8 SLI/SLOはなぜ必要? ”サービスがユーザーの期待値に答えているか”を測定し、 定量的な判断を可能にする

    1 2 アラートを常にアクショナブルなものにできる SLI/SLOを組織全体の意思決定指標として活用することができる
  8. Luup, Inc. - Confidential and Proprietary 9 SLI/SLOはなぜ必要? アラートを常にアクショナブルなものにできる -

    ”ユーザーがサービスを使えているかどうか” という観点でアラート発報ができる - 監視をSLI/SLOベースにしないとどうなる? - ユーザーの体験と直接関連しないシステム指標(CPU使用率、メモリ使用率など)を使う ことになる - e.g., APIサーバーのCPU使用率が上がっている - ユーザーは普通に使えているので、アラートを徐々に気にしなくなる - オオカミ少年アラートになる SLI/SLOを組織全体の意思決定指標として活用することができる - 目指すべき信頼性の合意を取ることで、非機能要件と機能要件の優先度を決定できる - 信頼性のコントロールが可能になり、ユーザーの満足度を向上させることができる
  9. Luup, Inc. - Confidential and Proprietary 11 0. 事業説明 1.

    SLI/SLOについて 2. IoTサービスでSLIを設計するときに考えること 3. LUUPでのCMC based SLI 4. まとめ
  10. Luup, Inc. - Confidential and Proprietary 15 お客様の体験を考慮してSLIを設計する お客様の体験を考慮してSLIを設計するときは、 CUJ:クリティカルユーザージャーニーという考え方を活用する!

    究極的にはSLOの主眼は顧客体験の改善であるべきです。 したがって、SLOはユーザーを中心に置くアクションについて書かれるべきです。 顧客の体験を補足するには、クリティカルユーザージャーニーが利用できます。 クリティカルユーザージャーニーは、あるユーザーの体験の中核部分となるタスクの並びで、 サービスの極めて重要な側面です。 - Site Reliability Workbook - ユーザーが目的を達成するために行うサービス操作をCUJとする - CUJに紐づく操作を計測したSLIはユーザー体験を反映したSLIとなる https://sre.google/workbook/table-of-contents/
  11. Luup, Inc. - Confidential and Proprietary 16 お客様の体験を考慮してSLIを設計する CUJを ”車両の施錠”

    と設定 車両の施錠を実現するには施錠のAPIが使えることが重要 SLIを ”車両の施錠を行うAPI(Lock API)のAvailability” とする SLOを “30days 99%” と設定して運用しています
  12. Luup, Inc. - Confidential and Proprietary 18 IoT機器の動作を考えてSLIを設計する お客様の体験を考慮してSLIを設計するときは、CUJを活用する IoT機器の動作の場合はどうすれば良い??

    IoT機器の動作 - お客様の体験を支える要素の一つ - 基本的には24時間365日稼働し続けている - (お客様の行動とは別に)非同期でクラウド側との通信が行われている - ユーザージャーニーという枠組みで整理することができない IoT機器の動作についてSLIを設計する際は、CUJという考え方では整理できない CUJとは別のアプローチを考える必要がある....
  13. Luup, Inc. - Confidential and Proprietary 19 CMC;Critical Machine Communication

    IoTにおけるSLIで計測すべきなのは、”マシンが期待通りに動作できる状態であるか” その計測対象を CMC:クリティカルマシンコミュニケーション と定義 ※ CMCは一般用語ではなく、Luup内でCUJと区別するために作成された用語です IoTデバイスが動作するために行う操作をCMCとする - 数多くのIoT機器の(M2M通信を含む)動作(Machine Communication)の中から、サービス にとって特に重要な中核的な動作 - e.g., バッテリーが切れていないか?サーバーと接続されているか?
  14. Luup, Inc. - Confidential and Proprietary 20 CMC;Critical Machine Communication

    CMCのSLIへの活用方法はCUJと同様 - CMCに関連する操作を計測したSLIは、IoTの動作を反映したSLIとなる - CMCを基にSLIを設定することで、IoT機器が期待通りに動作できる状態であるかを計測するこ とができる
  15. Luup, Inc. - Confidential and Proprietary 21 0. 事業説明 1.

    SLI/SLOについて 2. IoTサービスでSLIを設計するときに考えること 3. LUUPでのCMC based SLI 4. まとめ
  16. Luup, Inc. - Confidential and Proprietary 22 LUUPでのCMCの設定 どこがクリティカルなのか? →

    IoT機器が利用できないことがクリティカル!   LUUPの場合、サービスの根幹である “移動” が提供できない →IoT機器(車両)のAvailabilityを確認するのが良さそう - Latency等よりもまずは使えるかどうか(Availability)が重要 - CUJ based SLI, CMC based SLIに限らず一番重要なのはAvailability 車両のAvailabilityを取得し、SLOとして設定することで以下を実現したい - お客様が利用できる車両を増やす - お客様が利用できない車両を減らす
  17. Luup, Inc. - Confidential and Proprietary 23 LUUPでのCMCの設定 お客様が利用できる車両を増やす方法は以下の二つ 1.

    そもそもの車両数を増やす 2. 不具合改修車両のサービスイン SLO活動では、2を対象に活動する 車両の信頼性を上げて、サービスインできる車両数を増やす お客様が利用できる車両を増やす
  18. Luup, Inc. - Confidential and Proprietary 24 LUUPでのCMCの設定 不具合のある車両があれば、お客様が利用する前にサービス上利用できない状態にしたい -

    不具合のある車両を利用することによるトラブルを減らしたい - ユーザー体験、安全性、決済など お客様が利用できない車両の割合が増えてきたら検知する 不具合を確認したタイミングでサービスアウトする お客様が利用できない車両を減らす
  19. Luup, Inc. - Confidential and Proprietary 25 LUUPでのCMCの設定(再掲) どこがクリティカルなのか? →

    IoT機器が利用できないことがクリティカル!   LUUPの場合、サービスの根幹である “移動” が提供できない →IoT機器(車両)のAvailabilityを確認するのが良さそう - Latency等よりもまずは使えるかどうか(Availability)が重要 - CUJ based SLI, CMC based SLIに限らず一番重要なのはAvailability 車両のAvailabilityを取得し、SLOとして設定することで以下を実現したい - お客様が利用できる車両を増やす - お客様が利用できない車両を減らす
  20. Luup, Inc. - Confidential and Proprietary 27 LUUPでのSLIの設計 以下の理由から車両利用状況をRedash Dashboard化

    - 各チームが車両の全体感を確認するため - SREチーム、IoTチームがSLIを検討するため
  21. Luup, Inc. - Confidential and Proprietary 28 LUUPでのSLIの設計 Redash Dashboardを確認すると利用不可理由として以下が記載されている

    - 電池切れ、保険・ナンバー待ち、初期投入待ち、自動メンテ、自動メンテ_HWエラー検知など
  22. Luup, Inc. - Confidential and Proprietary 29 LUUPでのSLIの設計 自動メンテ -

    x分にy回、施錠・解錠できない / 車両 で自動でサービスアウト - サービスオペレーションとして、現場を回っているメンバーが車両を回収 - 修理、問題ないことが確認された後、サービスイン 自動メンテ_HWエラー検知 - 指定のHWエラーコードがx分にy回IFされる / 車両 で自動的にサービスアウトする - 車両の回収、サービスインは「自動メンテ」同様
  23. Luup, Inc. - Confidential and Proprietary 30 LUUPでのSLIの設計 SLI:(物理的な車両の問題を除く)市場投入車両のうち、利用可能な車両の比率 -

    Total:利用不可車両数(自動メンテ + 自動メンテ_HWエラー検知)+ 利用可能車両数 - Good(利用可能車両数) + Bad(利用不可車両数(自動メンテ + 自動メンテ_HWエラー検知))
  24. Luup, Inc. - Confidential and Proprietary 31 LUUPでのSLIの実装 SLI:(物理的な車両の問題を除く)市場投入車両のうち、利用可能な車両の比率 -

    Total:利用不可車両数(自動メンテ + 自動メンテ_HWエラー検知)+ 利用可能車両数 - Good(利用可能車両数) + Bad(利用不可車両数(自動メンテ + 自動メンテ_HWエラー検知))
  25. Luup, Inc. - Confidential and Proprietary 32 LUUPでのCMC based SLI

    - 今後の展望 SLO運用のためにDatadogで計測できるようにする DatadogにSLIのメトリクスを送信する SLOの運用 自動メンテ機能拡充 通信途絶時に自動サービスアウト 自動サービスイン
  26. Luup, Inc. - Confidential and Proprietary 33 0. 事業説明 1.

    SLI/SLOについて 2. IoTサービスでSLIを設計するときに考えること 3. LUUPでのCMC based SLI 4. まとめ
  27. Luup, Inc. - Confidential and Proprietary 34 まとめ IoTサービスにおけるSLI設計は以下の2パターンを考える! -

    お客様の体験を考慮してSLIを設計すること - IoT機器の動作を考えてSLIを設計すること IoT機器の動作を考えてSLIを設計する際は、CMCという考え方を活用する! - CMC:クリティカルマシンコミュニケーション IoTサービスでSLIを考えていく際の課題やプラクティスについて語りましょう! - #iot_expands , @gr1m0h , 現地の方は懇親会で!