0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Google Cloud DevOps資格の学習記録 - SLI / SLO

Posted at

用語の整理

まずはごっちゃになるSLI, SLO, SLAの整理から。
ちなみにSLは全部Service Level

SLI

SLIはService Level Indicatorの略。Indicator: 指標
サービス品質をどうやって定量的に測るのかを決める。

SLIとして用いられる代表的なものは ↓

  • 可用性(Availability)
  • 遅延(Latency)
  • エラー率(Error Rate)
  • スループット(Throughput)
  • フレッシュネス(データの鮮度)

SLO

SLOはService Level Objectiveの略。Objective: 目標
「このサービス品質は維持したい」という基準値を決める。

例:

  • 95% のリクエストが 300ms 未満で応答
  • 30日間で可用性 99.9% を維持

SLA

SLAはService Level Agreementの略。Agreement: 契約
「このサービス品質を守ります」という正式な契約内容を決める。
違反すると返金やペナルティが発生。

そのためSLAをSLOより厳しくするのは絶対NG。

SLOの設計原則

原則1: ユーザー満足度を基準にする

Google SRE本ではこう書かれています:

“SLOs should be based on user happiness, not engineer ambition.”
(SLOはエンジニアの理想ではなく、ユーザーが幸せでいられる範囲で設定すべき)

基本的には「ユーザーが満足しているなら現状値より少し緩めに設定」が定番のパターン。

原則2: 現状の性能より“少し余裕”のある値にする

SLOは実測値そのものではなく“目標”。

例えば現状が「90% 160ms, 95% 300ms」で、それに顧客が満足しているなら、SLOは「95% ≤ 350ms」のようにする(厳しくしすぎても緩すぎてもダメ)。

原則3: SLO を厳しくし過ぎない

SLOが厳しいと常にSLO違反になってしまい、精神的に苦しい運用になる。
後述するエラーバジェットが枯渇し、リリースが凍結されたり改善活動が止まったりする。

エラーバジェット(Error Budget)

SLOを超えて許容できる「失敗の量」

例: SLO:99.9% Availability

この場合、月間 0.1% = 約 43分 まで障害が許容される。
これがエラーバジェット。

たとえば新機能をリリースしたい時、エラーバジェットが残っていればOKだが、障害が続きエラーバジェットを消費しきっていたら、リリース凍結して信頼性の改善に集中するなど。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?