SLI・SLO・SLAについて色々調べてみたことをまとめる。
SLO、SLI、SLAとは、サービスレベル(Service Level)に関わる指標、目標、合意のことである。 サービスレベルとは一定の期間内で提供されたサービスを特定の方法で測定して表したものである。
NewRelicが提唱しているベストプラクティスが取り組みやすくて良いと思う。
newrelic.com - モダンなシステムにSLI/SLOを設定するときのベストプラクティス
システム境界を定義、境界ごとの機能定義、機能ごとの可用性の定義、可用性計測のためのSLI定義といった感じでSLI・SLOを策定する方法が紹介されている。
SLI・SLOの運用を始めるときは、なるべくシンプルに、緩めの値で運用を開始していくというのが推奨される。
cf. sre.google - Chapter 4 - Service Level Objectives
実際に自分が業務でSLI・SLOを策定したときは、このNewRelicのプラクティスに従ったが、機能単位のところは調整して余り細かくならないようにした。
機能の単位を最初から細かくしてしまうと運用が大変になってしまうので、運用していく中で適宜必要に応じて粒度を調整していくのが良いのではないかと思う。
SLI・SLOに関連するキーワードについてのTips。
稼働率 | 年間停止時間 | 月間停止時間 |
---|---|---|
99.0% | 87.6時間 | 7.6時間 |
99.5% | 43.8時間 | 3.65時間 |
99.9% | 8.76時間 | 43.8分 |
99.95% | 4.38時間 | 21.9分 |
99.99% | 52.56秒 | 4.38分 |
99.999% | 5.256秒 | 26.28秒 |
99.9999% | 31.536秒 | 2.628秒 |
エラーに対する予算で、SLOを基準として算出される許容可能な信頼性の指標のこと。 ex. SLO 99.99% → エラーバジェット 0.01%以下
サービスレベルを測定可能にすることで、サービス利用者(ユーザーあるいはシステム)がサービスを満足に提供できるているかどうか観測可能になり、またサービス提供者にとってサービスレベルの改善が必要かどうかの指標になり得ると思った。