Launch Atlas logoLaunch.Atlas
#45OperateDevOps · SRE

Error Budget · 誤差預算

把『要不要繼續發新功能』變成可計算的決策

Error Budget · 誤差預算 · 卡片插圖
CHOOSE YOUR MODE

先決定你現在是要學,還是要在專案裡做

網站負責解釋與分發工作包;真正的 Repository 掃描、缺口判斷與文件產出交給 Coding Agent。

SDLC 實作課 · 交付物練習

先理解這份文件替你消除什麼不確定

把『要不要繼續發新功能』變成可計算的決策

Error Budget 是 SLO 的反面:允許的不可用度。它把「Dev 想 ship、SRE 想 freeze」的政治問題變成簡單規則:budget 沒用完就 ship,用完就 freeze 高風險變更。

OWNER & HANDOFF

誰負責、交給誰

主責: DevOps / SRE

協作: PO 接受 freeze 規則、Dev Lead 排重點修復

下游收件: Release Plan、Capacity Planning、Incident Report

WHEN TO USE

何時值得做

REQUIRED

必要時機: 有 SLO 且穩定性與交付速度產生衝突

SKIP

不需要時: 沒 SLO;budget 從未影響決策

CAUTION

常見誤用: budget 燒完仍照常 ship;budget 政策無人簽核

看懂6 段骨架知道每段要留下哪一種判斷
看會雙版本範本先用輕量版練習,再讀完整版
做出自己的草稿手動貼到 Claude Code、Codex 或其他 Agent
  1. 01讀大綱
  2. 02比範本
  3. 03填素材
  4. 04貼提示詞
  5. 05對照驗收

Anatomy · 文件解剖

輕量版先回答 6 個核心章節

章節名稱可以因團隊調整,但每一段要求的判斷不能被省略。先讀問題,再看格式。

  1. 01

    Executive Summary

    範本必要章節

    3-5 行,主管 30 秒讀完。內容:本 SLO 目前 burn rate、剩餘 budget、是否觸發 freeze、top burn event

  2. 02

    SLO & Budget Formula

    範本必要章節

    必含 target / window / total budget 三件;公式行內顯示

  3. 03

    Current Burn Rate

    範本必要章節

    必填 1h + 6h 兩組;公式 = consumed / expected

  4. 04

    Remaining Budget

    範本必要章節

    必同時給 % 與時間單位;公式行內顯示

  5. 06

    Burn-Rate Alerts & Freeze Policy

    範本必要章節

    fast + slow 兩組警報必填;freeze + relax 條件對稱(防止單向卡死)

  6. 08

    Decision Log(key 2-3 條)

    範本必要章節

    每條必含 chosen + 至少 1 個 rejected + 拒絕原因

Study · 對照學習

同一份交付物,先練核心,再看完整深度

輕量範本適合第一次練習與 MVP;完整範本保留跨職能交棒需要的細節。兩者都要求未知事項保持可見。

SmartTrip 實例待補

這張卡目前提供已審定的輕量與完整範本;不以 AI 臨時生成的內容冒充實際案例。

LIGHT TEMPLATE

30 分鐘內先完成核心章節。

---
doc_type: "error-budget"
variant: "light"
status: "draft"
owner: "<your-name>"
last_updated: "YYYY-MM-DD"
upstream:
  required: ["slo", "sli-timeseries"]
  optional: ["release-log"]
---

# Error Budget: <slo-id>

**Status:** Draft v0.X · **Owner:** <SRE name> · **Last updated:** YYYY-MM-DD

> [!IMPORTANT]
> **AI 填寫規則:** 本範本 6 段(編號 1, 2, 3, 4, 6, 8),全部必填——刻意沿用完整版章節編號讓兩版可對照。每結論行內加 `(依據:SLI §XXX / release §YYY)`;每量化欄位帶 `[H]/[M]/[L]` confidence badge;缺資料寫 `_TODO: 需要 XXX_` 不編造;budget 必須附公式 `(1 - target) × window` 且以時間單位呈現(不准只給 %);burn rate 必須給 fast (1h) + slow (6h) 兩組警報。

---

## 1. Executive Summary

<!-- ai-fill: 3-5 行,主管 30 秒讀完。內容:本 SLO 目前 burn rate、剩餘 budget、是否觸發 freeze、top burn event -->

<3-5 行說明>

> **TL;DR:** <一句話:剩 X min / Y% budget,目前燃燒速率 Z×,建議 freeze / continue>

---

## 2. SLO & Budget Formula

<!-- ai-rule: 必含 target / window / total budget 三件;公式行內顯示 -->

| Field | Value |
|---|---|
| **SLO ID** | <SLO-001> |
| **SLI** | <e.g. checkout p95 latency < 1.5s> |
| **Target** | <e.g. 99.9%> |
| **Window** | <e.g. 28d rolling> |
| **Total budget** | `(1 - 0.999) × 28d = 40.3 min` |

---

## 3. Current Burn Rate

<!-- ai-rule: 必填 1h + 6h 兩組;公式 = consumed / expected -->

| Window | Burn rate | Interpretation | Confidence |
|---|---|---|---|
| **1h fast** | 14.4× | 用 1h 燒掉應燒 14.4h 的 budget | **[H]** |
| **6h slow** | 2× | 用 6h 燒掉應燒 12h 的 budget | **[H]** |
| **Formula** | `consumed_in_window / expected_consumption_in_window` | — | — |

---

## 4. Remaining Budget

<!-- ai-rule: 必同時給 % 與時間單位;公式行內顯示 -->

| Field | Value | Confidence |
|---|---|---|
| **Remaining %** | 35% | **[H]** |
| **Time equivalent** | 14.1 min of 40.3 min / 28d | **[H]** |
| **Formula** | `(1 - target) × window − consumed` | — |
| **Projected exhaustion** | YYYY-MM-DD or `_TODO_` | **[M]** |

---

## 6. Burn-Rate Alerts & Freeze Policy

<!-- ai-rule: fast + slow 兩組警報必填;freeze + relax 條件對稱(防止單向卡死) -->

### Burn-rate alerts

| Alert | Threshold | Window | Page |
|---|---|---|---|
| **Fast** | ≥ 14.4× | 1h | SEV2 |
| **Slow** | ≥ 6× | 6h | SEV3 |

### Freeze policy

| Condition | Action |
|---|---|
| Remaining < 10% **OR** fast burn sustained 30 min | Freeze high-risk changes |
| Remaining > 70% **AND** no SEV-1 in 14d | Relax (back to normal release cadence) |
| Emergency security fix | Allow with VP approval |

---

## 8. Decision Log(key 2-3 條)

<!-- ai-rule: 每條必含 chosen + 至少 1 個 rejected + 拒絕原因 -->

| Date | Decision | Options | Chosen | Rejected why | Confidence |
|---|---|---|---|---|---|
| YYYY-MM-DD | Freeze threshold | 5% / 10% / 20% | 10% | 5% (too late, no buffer)、20% (blocks too many releases) | **[H]** |

---

> [!CAUTION]
> **輸出前 AI 自檢:**
> - [ ] 6 段 H2 章節齊全(編號 1, 2, 3, 4, 6, 8)
> - [ ] Budget 同時給 % 與時間單位(不准只給 %)
> - [ ] 公式 `(1 - target) × window` 行內顯示
> - [ ] Burn rate 必填 fast (1h) + slow (6h) 兩組
> - [ ] Freeze + Relax 條件對稱(防單向卡死)
> - [ ] Decision Log ≥ 1 條,每條有 rejected reason
> - [ ] 無 YAML / JSON schema 輸出

Practice · 換你試做

先用自己的話交代素材,不需要先學會工程術語

確定的就寫,不確定的留白。下一步要做的是請 Agent 找缺口,不是讓它替你猜一套合理答案。

可以先留白;複製提示詞後再到 Coding Agent 裡補充。

AI Practice · 手動三步

先問、再寫、最後審,不把整條流程鎖死

每一步都是獨立工作包。你可以停下補資料、修改限制或重做某一步,不需要服從固定的 Agent 接力流程。

STEP 01

只找阻擋文件成立的未知

先補會改變範圍、判斷或驗收結果的資訊,不急著寫文件。

我要製作「Error Budget · 誤差預算」。先不要產出文件。

請根據我的素材,找出會影響這份文件正確性或可執行性的未知事項,一次最多問 5 題。

每題請包含:
1. 問題
2. 為什麼現在必須知道
3. 它會影響哪個章節或決定

已經回答的事不要重問;可以延後的事標成「待決策」;不要替我猜答案。

本文件的核心章節:Executive Summary、SLO & Budget Formula、Current Burn Rate、Remaining Budget、Burn-Rate Alerts & Freeze Policy、Decision Log(key 2-3 條)

複製後,請在標示位置貼上自己的素材。

Review · 自己驗收

文件存在,不代表下一個角色真的能使用

逐條檢查 Agent 的輸出。人類負責需求、限制與驗收,也必須能說明重要結論從哪裡來。

CHECKED0 / 6
NEXT HANDOFF

帶著這份文件,繼續到「Runbook · 維運手冊」

下一張卡會接住新的決策問題;不用一次把整條 SDLC 全做完。

前往下一張卡