信頼性の目標を事業と合意し、エラーバジェットで開発の速さを調整する。
SLO(Service Level Objective)は「ログインの成功率を30日で 99.9% 以上」のような信頼性の目標です。100% から SLO を引いた残りがエラーバジェット(失敗してよい量)で、99.9%・30日なら約43分の停止に当たります。
| 用語 | 意味 | 例 |
|---|---|---|
| SLI(指標) | 信頼性を測る数字 | リクエストの成功率、p99 の応答時間 |
| SLO(目標) | SLI に期間と目標値をつけたもの | 30日で成功率 99.9% |
| エラーバジェット | 100% − SLO。失敗してよい量 | 30日で約43分 |
| SLA(契約) | 顧客との約束。破ると返金などがある | 月 99.5% を下回ると返金 |
バジェットが残っていれば新機能を速く出し、減ってきたら信頼性の作業を優先する、というように開発の速さを調整する道具として使います。よくある失敗は、利用者が気にしない指標(CPU 使用率など)を SLO にすること、全部を 99.99% にして開発が止まることです。
面接ではこう答える
SLO は「ログインの成功率を30日で 99.9%」のような信頼性の目標で、測る指標を SLI と呼びます。100% から SLO を引いた残りがエラーバジェットで、99.9% なら30日で約43分の失敗が許されます。バジェットが残っていれば機能開発を優先し、減ってきたら信頼性の作業を優先する、というように、開発の速さと安定性の綱引きを数字で決めるための道具です。顧客との契約である SLA とは分けて、SLO を少し厳しめに置きます。
EMとの関わりPdM や事業側と「どこまで速く出し、どこで止まるか」を合意する共通の言葉になり、障害対策を計画に入れる根拠にもなります。