SLO習熟度調査の実施
これは Luup Advent Calendar 2023 の8日目の記事です。
はじめに
株式会社Luup SREチームに所属しています、ぐりもお(@gr1m0h)です。
今年も終わりが近づいてきましたね。さて、私は今年の9月にSRE NEXT 2023というイベントで登壇しました。
登壇内容に関するブログは以下です。
この中で "SLO習熟度調査" についてお話ししました。
当日は、SRExIoTという分野に興味を持ってもらったという認識だったため、IoT周りをメインにお話ししました。予想通りIoT周りについての反響もあったのですが、予想と反してさらっと紹介した "SLO習熟度調査" についての反響があったので、今回筆を取りました。
SRE NEXTで話したこと
初めてこのブログを読む方は "SLO習熟度調査"がどんなものかよくわからないと思うので、SRE NEXTで話した内容を紹介します。
習熟度調査は、組織全体や個人の今現在のSLOについての習熟度を知るために実施しました。対象は開発組織のエンジニアだけでなく、PdMも対象にしています。
全14問で信頼性とは何かというところから、SLI、SLO、これらの必要性、パーセンタイルみたいなところまで触れています。
将来的に再度実施してSLOのEnabling度合いを計測したり、新しくメンバーが入った時のオンボーディング時に実施して個別のフォローアップに活用できるのではないかと思っています。
質問内容
具体的な質問内容について、記載します。
また、これらの設問はGoogle Formのテストモードを使用して回答の実施、集計、分析を行っています。
1. 信頼性とは何を意味しますか?(複数選択)
選択肢は以下です。
- システムが最新の技術を使用し、常にアップデートが行われていること
- システムが安全なデータ保管方法を使用し、データ漏えいリスクを最小限に抑えていること
- システムがユーザーフレンドリーであり、操作が容易であること
- システムが予期した機能を提供し、約束された条件で動作すること
- 分からない
正解は2, 4
の選択になります。
フィードバック内容は以下です。
信頼性とは、2つの主要な側面を指します。1つは、システムがデータを安全に保管し、漏洩リスクを抑える能力です。これは情報の安全性を保証することを意味します。もう1つは、システムが期待される機能を正確に、約束された条件下で提供することです。これはシステムの確実な動作を保証することを示しています。
2. SLI (Service Level Indicator) は何を意味しますか?
選択肢は以下です。
- サービスの目標を具体的な数値で示す指標
- サービスのパフォーマンスや可用性を定量的に示す指標
- サービスの運用コストや利益を評価するための指標
- サービスの開発や改善のスピードを測定するための指標
- 分からない
正解は2
の選択になります。
フィードバック内容は以下です。
SLI (Service Level Indicator) は、サービスの品質を測定するための定量的指標です。これには、サービスの応答時間、ダウンタイムの頻度、エラーレートなどの要因が含まれることが多いです。簡潔に言えば、SLIはサービスがどれだけ良好に機能しているかを数値で示すツールです。
3. SLIのあるべき姿は?
選択肢は以下です。
- システムが一定のパフォーマンスを維持し、効率的に動作していることを確認する
- ユーザーの期待通りにシステムが動作しているかが反映された指標を確認する
- システムのダウンタイムを排除し、24時間365日稼働することを確認する
- システムがあらゆるリクエストを即座に処理できることを保証する
- 分からない
正解は2
の選択になります。
フィードバック内容は以下です。
SLIのあるべき姿とは、システムがユーザーの期待に応えているかを明確に示す指標です。この指標はユーザーの経験やニーズを中心に設定され、システムのパフォーマンスや問題点を直接反映することで、サービスの品質を客観的に評価する基準となります。
4. SLO (Service Level Objective) とは何ですか?
選択肢は以下です。
- サービスの開発スピードの測定
- データの全体的な傾向
- サービスのコストの評価
- SLIに対する目標数値
- 分からない
正解は4
の選択になります。
フィードバック内容は以下です。
SLO (Service Level Objective) は、SLI (Service Level Indicator) で測定されるサービスのパフォーマンスや品質に対する具体的な目標数値です。これにより、サービスの運用チームは期待される品質を具体的に把握し、それに向けての努力や改善活動を行います。SLOはサービスの品質保証の基準として設定されるものです。
5. SLIとSLOを定める主なメリットは何ですか?
選択肢は以下です。
- サービスの成功を保証し、ユーザーの満足度を最大限に高めること
- 障害発生時の対応手順を明確にし、迅速に問題を解決すること
- サービスの品質とパフォーマンスを把握し、改善に必要な指標を提供すること
- サービスの開発スピードを上げ、市場投入までの時間を短縮すること
- 分からない
正解は3
の選択になります。
フィードバック内容は以下です。
SLIとSLOを定めることで、サービスの現状の品質とパフォーマンスを明確に理解できます。これにより、問題点や改善領域が可視化され、効果的な対策の策定や取り組みが可能となります。また、具体的な目標数値(SLO)に基づく評価は、サービスの質を継続的に向上させるための道しるべとなります。
6. システムの可用性を測定するために一般的に使われる指標は何ですか?
選択肢は以下です。
- ユーザーからのリクエストに対する応答速度、つまりレスポンス時間
- サービスが正常に機能し、リクエストが適切に処理された割合
- システムのレイテンシ、つまりリクエストから応答までの遅延時間
- サーバーの性能を示すCPU使用率やメモリ使用率
- 分からない
正解は2
の選択になります。
フィードバック内容は以下です。
システムの可用性を測定する際には、サービスが正常に動作している時間の割合を確認します。これにより、ダウンタイムや障害の発生頻度を理解することができます。具体的には、全体の稼働時間中、サービスが正確にリクエストを処理した時間の割合を指標として使用します。
7. システムのパフォーマンスを測定するために一般的に使われる指標は何ですか?
選択肢は以下です。
- ユーザー数
- システムの稼働時間
- システムの容量
- レスポンスタイム
- 分からない
正解は4
の選択になります。
フィードバック内容は以下です。
システムのパフォーマンスを測定する際の主要な指標は「レスポンスタイム」です。これは、システムがユーザーのリクエストに反応して結果を返すまでの時間を指します。短いレスポンスタイムは、システムが高速で効率的に動作していることを示し、ユーザーエクスペリエンスの向上に寄与します。
8. CUJ (Critical User Journey) とは何を意味しますか?
選択肢は以下です。
- ユーザーの重要な行動パターンや体験
- ユーザーの一日の行動パターン
- システム上で最も時間を消費する処理
- ユーザーにとって最も重要なシステムの機能
- 分からない
正解は1
の選択になります。
フィードバック内容は以下です。
CUJ (Critical User Journey) は、ユーザーがサービスやアプリケーションで最も重要とされる一連のアクションや経験を指します。これは、ユーザーが目標を達成するための核心的なステップやパスを示すもので、サービスの品質やパフォーマンスの改善点を特定する際の基準となることが多いです。
9. CMC (Critical Machine Communication) とは何を意味しますか?
選択肢は以下です。
- システムのエラー報告方法
- マシンの故障時に送信される通知
- システム間の通信の安全性を保証する技術
- 人間が関与しない機械同士の重要な通信
- 分からない
正解は4
の選択になります。
フィードバック内容は以下です。
このCMCは一般用語ではなく、Luup内でCUJと区別するために作成された用語です。IoTにおけるSLIで計測すべきなのは、"マシンが期待通りに動作できる状態であるか"です。その計測対象をCMC(Critical Machine Communication)と定義しています。
10. Error Budgetとは何ですか?
選択肢は以下です。
- システムのエラーを把握するための費用
- 期間中に許容されるサービスのダウンタイムやエラーの割合
- システムの改善に必要な費用
- サービスがエラーを起こした時に顧客に支払う補償金
- 分からない
正解は2
の選択になります。
フィードバック内容は以下です。
Error Budgetは、サービスの品質を管理するための指標で、サービスが許容できるエラーやダウンタイムの割合を表します。つまり、サービスが一定期間内で経験しても良いエラーの「予算」を示すものです。これにより、開発と運用のバランスを取る助けとなり、新機能のリリースやシステムの変更が安全かを評価します。
11. Error Budget Policyとは何ですか?
選択肢は以下です。
- SLO違反の際に機能開発の速度と信頼性のバランスを調整するポリシー
- エラー発生時の対応手順を詳細に定めたポリシー
- システムのエラー発生率を定義し、それを下回るように努めるポリシー
- エラーが発生した際の罰則を定義し、エラーの発生を抑制するためのポリシー
- 分からない
正解は1
の選択になります。
フィードバック内容は以下です。
Error Budget Policyとは、SLO(Service Level Objective)違反が発生した際の対応戦略です。SLOはサービスの品質目標を定義するもので、これを達成しない場合の「許容されるエラー」の範囲がError Budgetとして設定されます。このポリシーは、その許容範囲を超えた場合の行動基準を示し、機能の開発速度とサービスの信頼性の間のバランスを適切に保つためのガイドラインを提供します。この方針により、サービスの品質と開発の進捗を同時に管理することが可能です。
12. SLO運用におけるBurn Rateとは何を意味しますか?
選択肢は以下です。
- プロジェクトの資金がどの速さで使われているか
- サービスのダウンタイムの長さ
- エラーバジェットが消費される速度
- システムのパフォーマンスが低下する速度
- 分からない
正解は3
の選択になります。
フィードバック内容は以下です。
Burn Rateは、SLO運用において、エラーバジェットがどれだけ速く消費されているかを示す指標です。具体的には、設定された期間におけるエラー発生率やダウンタイムをエラーバジェットに対して比較することで計算されます。高いBurn Rateは、SLO達成にリスクがあることを示し、対策や調整の必要性を知らせる警告となります。
13. パーセンタイル (%ile) とは何を示しますか?
選択肢は以下です。
- データセットの各要素の平均値を示し、データの中心的な傾向を表現する
- データセットの最大値を示し、データ群の中で取りうる最大の値を反映する
- データセット内で下から数えて50%の位置にある値を示し、データを半分に分ける中央値を表す
- データセット内で下から数えて特定のパーセンテージの位置にある値を示す
- 分からない
正解は4
の選択になります。
フィードバック内容は以下です。
パーセンタイルは、データセットを小さい値から大きい値の順に並べた際の、特定のパーセンテージ位置にあるデータの値を示します。例えば、90パーセンタイルは、データの90%がこの値以下であることを意味します。これは、データの分布や極端な値の影響を評価する際に役立つ指標となります。
14. レイテンシの99パーセンタイル (%ile) が100msだとしたら、これは何を意味しますか?
選択肢は以下です。
- 全てのリクエストのレイテンシが100ms以下であるという意味で、システムが全ての要求に対して100ms以内に応答したことを示す
- レイテンシの平均が100msであるという意味で、全リクエストのレイテンシの合計をリクエスト数で割った結果が100msであることを示す
- 最も遅い1%のリクエストのレイテンシが100msであるという意味で、全リクエストの中で最も遅い1%のレイテンシが100msであることを示す
- 全リクエストのうち最も遅い1%を除くと、残りのリクエストのレイテンシは100ms以下であるという意味
- 分からない
正解は4
の選択になります。
フィードバック内容は以下です。
レイテンシの99パーセンタイルが100msとは、観測されたリクエストの中で99%が100ms以下でレスポンスを返したことを示します。一方で、最も遅い1%のリクエストは100ms以上かかった可能性があります。この指標は、システムのパフォーマンスが大半のユーザーにとってどれほど迅速かを示すものです。
さいごに
SREチームで行っているSLO習熟度調査についての詳細を書きました。
冒頭にも書きましたが、登壇時はスライドは1枚、話した時間も1分程度のものでした。なので、ここに注目してもらえたのは意外でした。(登壇中にXでポストがありましたし、後日直接DMをいただきました。ありがとうございます。)
この活動は、やることはパッと思いつくものの運用までやるのが大変な活動だと思っているので、今後も継続的に習熟度調査を実施できるようにSLOまわりの活動をしていきたいと思います。
最後に、弊社でのプロダクト開発、SREや使用技術に少しでも興味を持っていただけた方は、以下のリンクからお気軽にご連絡ください!私のX(Twitter)アカウントもDM解放しています。
直近副業や転職を考えている方でなくとも、ただ気軽に話を聞きたいという方でも大歓迎です!
Discussion