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

LuupにおけるSLOの物語

 LuupにおけるSLOの物語

gr1m0h

May 16, 2023
Tweet

More Decks by gr1m0h

Other Decks in Technology

Transcript

  1. 2 自己紹介 whoami Wataru Tsuda / gr1m0h SRE @Luup, inc.

    SRE Lounge / SRE NEXT 運営メンバー Platform Engineering Meetup 運営メンバー SRE NEXT 2023 Chair
  2. 4 Agenda • Luup SREチーム ◦ どんなことしてるか ◦ どんなチームとコラボレーションしてるか •

    LUUPにおけるSLO ◦ CUJ、CMC ◦ SLO • LuupにおけるSLO運用 ◦ SLO定期見直し ◦ SLO違反対応 ◦ BurnRateAlert対応 ◦ Luup Case Study ◦ Enabling SRE活動 • Luup SREチームの今後
  3. 7 SLOについて • SLI ◦ サービス動作の指標 ◦ 「ユーザーがサービスを期待通りに使えているか」が反映された指標であるべき • SLO

    ◦ SLIに対する具体的な目標値 • Error Budget ◦ ”SLIによって計測されるソフトウェアのエラー”に対する予算 ◦ SLOに基づいて算出される “許容できるエラーの割合” • Burn Rate ◦ SLOに対してErrorBudgetをどれだけの速度で消費しているかの傾き
  4. 8 Agenda • Luup SREチーム ◦ どんなことしてるか ◦ どんなチームとコラボレーションしてるか •

    LUUPにおけるSLO ◦ CUJ、CMC ◦ SLO • LuupにおけるSLO運用 ◦ SLO定期見直し ◦ SLO違反対応 ◦ BurnRateAlert対応 ◦ Luup Case Study ◦ Enabling SRE活動 • Luup SREチームの今後
  5. 9 LuupのSREチーム紹介 LuupのSREチームについて チーム構成:11人(正社員: 3人) 役割:LUUPを提供するためのインフラ品質や信頼性を高めること
 担当範囲:
 • サービスの可用性や信頼性の向上・担保
 •

    開発や運用の効率性を担保するための自動化
 • 変更管理
 • モニタリング
 • 緊急対応とオンコール体制の構築
 • キャパシティプランニング
  6. 13 Agenda • Luup SREチーム ◦ どんなことしてるか ◦ どんなチームとコラボレーションしてるか •

    LUUPにおけるSLO ◦ CUJ、CMC ◦ SLO • LuupにおけるSLO運用 ◦ SLO定期見直し ◦ SLO違反対応 ◦ BurnRateAlert対応 ◦ Luup Case Study ◦ Enabling SRE活動 • Luup SREチームの今後
  7. 15 CMC(Critical Machine Communication) LUUPにおけるSLO IoTにおけるSLIで計測するべきなのは、”マシンが期待通りに動作できる状態であるか” である その計測対象をCMC:Critical Machine Communicationと定義した

    ※CMCは一般用語ではなく、Luup内でCUJと区別するため作成された用語です • CMCとは、IoTデバイスが動作するために必要なステータス群 ◦ e.g. バッテリーが切れていないか、サーバーと接続されているか、... ◦ プロトコルとしては、MQTTやLwM2M等 • CMCに紐づくメトリクスを観測することで、マシンが期待通りに動作している状態であ ることを指標化できる • ハードウェアの異常は影響あるユーザは少ないが、顧客体験への影響がソフトウェア の異常よりも大きくなる懸念がある
  8. 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(ライドを再開する)
  9. 22 Agenda • Luup SREチーム ◦ どんなことしてるか ◦ どんなチームとコラボレーションしてるか •

    LUUPにおけるSLO ◦ CUJ、CMC ◦ SLO • LuupにおけるSLO運用 ◦ SLO定期見直し ◦ SLO違反対応 ◦ BurnRateAlert対応 ◦ Luup Case Study ◦ Enabling SRE活動 • Luup SREチームの今後 ◦ SLO Roadmap
  10. 26 SLOが「運用されている状態」ってどんな状態? LuupにおけるSLO運用 1. SLO違反になった時、SLO Burn Rate Alertが鳴った時のアクションアイテム、フロー が決まっており、継続的に実施がなされている状態 2.

    形骸化を防ぐために定期的な見直しが実施されている状態 3. SLO違反対応、SLO Burn Rate Alertの対応、SLO定期見直しについてSREメンバー なら誰でも主導して解決に持っていける状態(属人化の排除) 4. SLOが開発計画に対する意思決定に使用されている状態 5. SLOが社内に浸透している状態
  11. 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という活動が必要
  12. 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という活動が必要
  13. 29 SLO運用の3つのイベント LuupにおけるSLO運用 3つのイベント 1. SLO定期見直し • SLOの形骸化を防ぐために定期的な見直しを実施 2. SLO違反対応

    • SLO違反が発生している = 明確に品質低下が起きている • 品質低下を改善するために新機能開発を止めて品質改善を行うべきか判断し対応を行う 3. SLO BurnRateAlert対応 • Burn Rate Alertが発火した = Error Budgetが枯渇しそうな状態 • ErrorBudget枯渇へ向かう勢いが強いので緊急度が高い対応となる
  14. 34 Luup Case Study: Unlock Availability SLO違反 LuupにおけるSLO運用 ErrorBudgetに影響を及ぼしているのは以下の項目が考えられる 1.

    オペレーション用アプリが同じAPIを使用していること ◦ アクションアイテム:オペレーション用アプリが使用するAPIを別にする ◦ オペレーション用アプリに対してもSLOを設定すべき ▪ 社内/社外のサービス運用者をユーザとしたときのSLOの計測は必要 2. 同じ車両のリトライによってエラー回数が増えていること ◦ リトライはErrorではなく、Warningであるべき ◦ リトライの影響はAvailability SLOではなくLatency SLOに影響があるべき ◦ アクションアイテム:サーバー側での自動リトライの追加によるリトライの内包
  15. 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という活動が必要
  16. 38 Enabling SRE活動 LuupにおけるSLO運用 Enabling SRE • 開発チームにSREの文化/知識を浸透させて開発者自身がSRE Practiceを実践でき るようにする活動

    • Luupでは、SLOの普及と活用を開発チームだけでなくビジネスサイドまでスコープを 広げて適用することを進めています 現状の具体的な活動 • SLOのIaC化 ◦ TerraformによってDatadog SLOを設定できる状態にした ◦ → 開発者に設定してもらえるようにする • SLO社内勉強会 ◦ SLO運用を行うことによるSLOの普及、意識付け ◦ → もっと広く認知してもらうために勉強会を行う
  17. 39 Agenda • Luup SREチーム ◦ どんなことしてるか ◦ どんなチームとコラボレーションしてるか •

    LUUPにおけるSLO ◦ CUJ、CMC ◦ SLO • LuupにおけるSLO運用 ◦ SLO定期見直し ◦ SLO違反対応 ◦ BurnRateAlert対応 ◦ Luup Case Study ◦ Enabling SRE活動 • Luup SREチームの今後
  18. 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デバイスであること