#sre

⏱ 頸上有時鐘:主播在罵,時間在走 症狀 / 新證據 指標 · log · 查證結果 AI:敘事 + 把手 候選假設 · 驗證動作 · 溝通草稿 人:動手驗證 抽樣 · 對時間戳 · 照把手走 人:決定與行動 重啟 · hotfix · 補建 · 對外承諾 結果回灌 敘事收斂後 直接採信敘事 = 權威幻覺的短路

頸上有時鐘:事故中的 AI——重播一場毒藥訊息事故

· tech · 約 12 分鐘 · 📚 帶 AI 的手藝(2026) #2

上一篇講了漏斗:AI 吃掉寬層的量,人守住頸口的責任。這一篇把漏斗搬到它最極端的測試場——事故。事故是頸上有時鐘的場景:主播在罵、營運在催,而你必須在資訊不全的情況下做決定。AI 不能替你決定要不要在…

#ai#incident#sre

中斷的成本:不是時間,是被切碎 工作 ramp-up 中斷 ① 被切碎的一天 完整深度工作 ≈ 幾乎沒有(全是碎片) ② 把中斷收成一塊 不被打斷的深度工作(一整段) 中斷時段 同樣的中斷總量 → 深度工作 = 一整段 中斷的成本不是它花的時間,是把剩下的時間切碎到做不了深度工作

維運中斷:殺死生產力的不是工作量,是被切碎的時間

· tech · 約 3 分鐘 · 📚 Google SRE 讀書筆記 #17

On-call 那篇講「怎麼設計告警、誰值班」,Toil 那篇講「用 50% 護欄別讓維運吃光工程時間」。但這兩條之間,漏了一個每天都在發生、卻很少被當成問題來管的東西:中斷(interrupts)—…

#sre#reliability

PRR:上線前的一道關 開發 把服務做出來 功能 OK ≠ 可上線 PRR 生產就緒審查 ① SLO 定義了嗎 ② 監控 + 告警(黃金訊號) ③ 壓測 / 容量 / load shedding ④ 發布能不能快速 rollback ⑤ 依賴掛了會怎樣(降級) ⑥ runbook:半夜照著能做 過關 沒過 SRE 接手 共同扛 pager 退回補齊 pager 先留在開發手上 SRE 不接「不可運維」的服務——PRR 把可靠度變成上線的硬門檻

生產就緒審查(PRR):SRE 憑什麼接手一個服務

· tech · 約 4 分鐘 · 📚 Google SRE 讀書筆記 #16

前面十五篇,講的幾乎都是「服務已經在線上了,怎麼讓它更可靠」——SLO、監控、postmortem、降級。但有一個更前面的問題一直沒問:一個新服務,憑什麼可以上線、憑什麼值得 SRE 接手扛 page…

#sre#reliability

13,000 人在線 一台 VM traefik API+WS API+WS API+WS API+WS Celery:heartbeat 排程的心臟 Celery:抓留言 只有 1 個 worker Celery:async task 10 workers・acks_late Redis RabbitMQ 刻意用盡量少的資源做——這是哲學,不是預算 Cloud SQL 8 core・不自己養 DB

沒有 SRE 的年代:backend lead 的上線日記

· tech · 約 9 分鐘 · 📚 Re:從零開始做直播代購電商平台 #15

上一章講尖峰怎麼打;這一章講打仗的人。當年團隊沒有 SRE 這個職稱——身為 backend lead,infrastructure 的仗自然全落在我身上。這章是那段提心吊膽日子的日記:全部家當一台 …

#war-story#live-commerce#sre

單機 cron 很簡單,「可靠的」cron 很難 cron(單機)時間到就跑,超簡單 ✗ 機器一掛 → 排程全停(SPOF) 要它掛了也能跑 副本(leader) 副本 / 待命 副本 / 待命 共識日誌(Paxos)記錄:哪些任務跑過了 一台掛 → 重選 leader,狀態從共識還原 → 不重跑、不漏跑 把最單純的 cron 變可靠,底層就得用上分散式共識

可靠的 cron:最單純的定時任務,一分散就變難

· tech · 約 4 分鐘 · 📚 Google SRE 讀書筆記 #15

cron 大概是最單純的一種基礎設施:時間到,跑一個任務。單機上寫過 crontab 的人都覺得它理所當然。但只要加上兩個字——「可靠」(那台機器掛了,任務還是得照跑),它就從最簡單的東西,一夕變成一…

#sre#reliability

抓一個真實請求,跟著它走完全程 使用者一個真實請求 自建入口 LB(自建) API 服務(自建框架) 自建佇列(自建) 資料庫最終落點 每一跳都停下來,問這四題 ① 這是什麼元件?誰維護? ② 怎麼看它健康?監控 / log 在哪? ③ 它壞了,下游會怎樣? ④ 正常時,流量 / 資料長怎樣? 走完一輪,你腦中就有一張「活的」架構圖——比任何 wiki 都準

SRE 空降一間『什麼都自建』的公司,前 90 天怎麼站穩

· tech · 約 7 分鐘 · 📚 Google SRE 讀書筆記 #14.5

換工作最刺激的一種,是加入一間幾乎什麼都自建的公司:沒有現成的雲服務、連 Stack Overflow 都幫不上忙——因為這裡的基礎設施、部署工具,全世界只有這一家在用。你過去累積的「某某工具怎麼設定…

#sre#career

土砲選 leader:網路一斷,兩邊各自為政 網路斷了 ✂ 左半:Node A 「我沒收到 B → 我當 leader」 收到寫入 X = 1 右半:Node B 「我沒收到 A → 我當 leader」 收到寫入 X = 2 網路恢復後:X 到底是 1 還是 2? 兩邊都以為自己對 → 資料分岔,對不回來(split brain)

分散式共識:一群會掛的機器,如何對同一件事達成一致

· tech · 約 7 分鐘 · 📚 Google SRE 讀書筆記 #14

一群機器要對「同一件事」達成一致——誰是 leader?這把鎖在誰手上?最新的值是多少?——聽起來很簡單,卻是分散式系統最難的問題之一。難在哪?因為機器會掛、網路會斷、時鐘不可信,而你要在這些前提下,…

#sre#distributed-systems

一個請求,要通過兩層負載平衡 使用者世界各地 ① 前端 LB選哪個機房?DNS · Anycast · VIP 依 地理 / 健康 / 容量 資料中心(選中的) ② 機房內 LB給哪台機器?依 真實負載 / 健康 task 1 task 2 task 3 顧「跨機房」的事:就近、避開故障機房、分散容量 顧「機房內」的事:別讓某台過載、別送給壞掉的

負載平衡:先選對機房,再選對機器

· tech · 約 4 分鐘 · 📚 Google SRE 讀書筆記 #13

一個請求從使用者送出到被處理,其實要通過兩層負載平衡,回答兩個不同層次的問題:去哪個資料中心? 進了之後分給哪台機器? 這兩層顧的事情完全不同,把它們分開看,負載平衡就清楚多了。 前端這層要處理的是「…

#sre#networking

自動化的演進:一路往上,把人從迴圈裡拿掉 自動化↑ · 人越不用碰 ④ 自主 / 自癒系統系統自己管自己 → 人退出迴圈 ③ 通用自動化平台跨系統重用、一致、可擴展 ② 針對任務寫腳本省時,但腳本要人養、換場景就失效 ① 手動操作(toil)慢、易錯、不一致、無法規模化 ⚠ 但自動化會放大 blast radius 能一致地做對,就能一致地闖禍——一鍵下錯,關掉的可能是整個機房

自動化、發布工程與簡單性:讓『改變』又快又安全

· tech · 約 5 分鐘 · 📚 Google SRE 讀書筆記 #12

自動化、發布工程、簡單性,乍看是三個不相干的主題。但把它們擺在一起,會發現它們在回答同一個問題:怎麼讓「變更」既快又不出事?SRE 的三招答案分別是——用機器一致地做、把上線做成可重現的流程、以及讓要…

#sre#automation

你以為的安全 每天都有備份 ✓✓✓ 「帳面上」很安全 真的要還原時… 真出事時翻車 備份檔本身壞了(從沒驗過) 還原程序沒人跑過 → 手忙腳亂 還原太慢 → 超過 SLA、資料回不來 沒演練過還原的備份 = 薛丁格的備份(不打開不知道死活) 重要的不是「備份」,是「恢復」—— 備份只是達到恢復的手段

資料管線與資料完整性:有備份不等於能還原

· tech · 約 3 分鐘 · 📚 Google SRE 讀書筆記 #11

一個資料系統的可靠度,除了前面講的「服務不掛」,還有一層更根本的東西——資料本身不能不見、不能錯。這篇講兩件事:資料管線的可靠度,以及一個會顛覆你直覺的觀念:「有備份」不等於「能還原」。 資料管線(p…

#sre#data-engineering

一台倒下 → 流量轉移壓垮下一台 → 骨牌式全滅 Server A先過載 → 倒 ✗ Server B接手 A 流量 → 也倒 ✗ Server C全壓過來 → 倒 ✗ 而 retry storm(重試風暴)火上加油: 請求失敗 / 變慢 客戶端重試 總負載更高 正回饋:越失敗 → 越重試 → 越失敗(自我放大)

連鎖失效與過載:別讓一台倒下拖垮全部

· tech · 約 3 分鐘 · 📚 Google SRE 讀書筆記 #10

第一篇說可靠度的目標是「出錯也能運作」。但有一種故障特別難纏,因為它會自我放大:一個小問題引發骨牌,幾分鐘內把整個系統拖垮——這就是連鎖失效(cascading failure)。它最可怕的地方,是系…

#sre#reliability

E2E Integration Unit ↑ 少、慢、脆(像使用者走完整路徑) 元件兜起來(service + DB…) ↓ 多、快、穩(測單一函式) 倒過來(一堆 E2E、少 unit)= 反模式:慢、flaky、出事還難定位到哪層

為可靠度測試:測試不是證明沒 bug,是讓你敢快

· tech · 約 3 分鐘 · 📚 Google SRE 讀書筆記 #9

這篇講一個常被當成「開發的事」、其實是可靠度基石的東西:測試。關鍵觀念先講:可靠度不是靠「不改」得來的——你一定得改(修 bug、加功能、換設定),而每次改動都是一場賭。測試的意義,就是把這場賭變成有…

#sre#reliability

沒有指揮:混亂 系統故障中 工程 工程 工程 工程 搶著改、互相踩、資訊亂飛 → 修更慢 有指揮:有序 IC(統籌) Ops 修 Comms 報 Scribe 記 系統故障中 一人一角、資訊集中 → 修更快

事件應變:大事故真正的敵人是混亂

· tech · 約 3 分鐘 · 📚 Google SRE 讀書筆記 #8

前面你學會了 on-call 止血、也學會了系統化除錯——但那是「一個人對付一個問題」。當一場大事故爆發(多人捲入、影響大、時間壓力高),你會發現最大的敵人往往不是技術問題本身,而是混亂。 技術問題總…

#sre#incident

interface DevOps ← 哲學/文化:定義「該做什麼」 減少 silo · 接受失敗為常態 · 逐步變更 · 量測一切 · 自動化 implements(給出具體做法) class SRE implements DevOps ← 怎麼做 error budget · blameless postmortem · canary · SLI/SLO · 消除 toil DevOps 是方向與原則,SRE 是一個具體實作——不是二選一,是不同層次

DevOps vs SRE:一個是介面,一個是實作

· tech · 約 3 分鐘 · 📚 Google SRE 讀書筆記 #1.5

前一篇講完 SRE 是什麼,順手補一個超常被問、但其實是假問題的比較:「DevOps 和 SRE 有什麼不同?要選哪個?」之所以是假問題,是因為兩者根本不在同一層。Google 用一句很工程師的話破了…

#sre#culture

究責文化 · 惡性循環 出事 「誰的錯?」找戰犯 大家隱藏錯誤、不敢說真話 學不到 → 重蹈覆轍 Blameless · 良性循環 出事 「系統為何允許?」 大家坦白說出全貌 改系統 → 越來越穩 同一場故障,問「誰」還是問「系統」,把團隊帶向相反的兩個循環

Blameless Postmortem:把故障變成組織的學習

· tech · 約 4 分鐘 · 📚 Google SRE 讀書筆記 #7

上一篇講怎麼找到 root cause——但找到之後呢?Postmortem(事後檢討) 就是把一次昂貴的故障,轉化成整個組織的學習:記錄發生什麼、影響多大、時間軸、真因、怎麼修的、怎麼防止再發生。而…

#sre#culture

① Triage 止血 先讓系統活著 (別急著找 root cause) ② Examine 觀察 看監控 / log 四個黃金訊號 ③ Diagnose 診斷 假設 → 測試 → 排除 二分逼近 ④ Treat 修復 一次改一個變因 可回復 沒好?回頭再提假設 每一步都在「縮小範圍」;而反模式(亂猜、隨機換零件、一次改一堆)從不縮小,只是碰運氣

有效除錯:除錯是方法,不是天分

· tech · 約 3 分鐘 · 📚 Google SRE 讀書筆記 #6

上一篇說 on-call 被叫到先止血;但止完血,總得找出為什麼。這篇講除錯——而它最重要的一個觀念是:除錯不是靠天分或運氣,是一套可以學的系統化方法。 新手和老手的差別,不在「知道答案」,而在有沒有…

#sre#incident

一個告警進來:需要人嗎?多急? Page 呼叫 需要人「立刻」介入,否則使用者正在受影響 → 把人吵醒 Ticket 工單 需要人處理,但不急 → 上班時間看 Log 記錄 不需要人看,存著備查 / 事後分析 → 不打擾任何人 把不夠急的都塞進 Page → 告警疲勞、狼來了,真的出事反而被忽略

告警與 On-call:什麼時候該把人吵醒

· tech · 約 4 分鐘 · 📚 Google SRE 讀書筆記 #5

上一篇結尾留了一句:什麼時候該把人吵醒?這篇回答。它其實是兩件事:告警(什麼該響、響到誰)和 on-call(被叫到的人怎麼健康地扛)。核心觀念只有一句:告警的目的不是「通知」,是「該有人動手了」。 …

#sre#incident

你的服務 ① Latency 延遲 請求要多久才回? 分開看「成功」與「失敗」的延遲 ② Traffic 流量 系統現在多忙? QPS / 每秒請求數 ③ Errors 錯誤 多少請求失敗了? 失敗率(含「回 200 但內容是錯的」) ④ Saturation 飽和度 離極限還有多近? 資源用了幾成 → 最能預警 前三個 = 使用者體感(可直接當 SLI);第四個「飽和度」= 還能撐多久的預警

監控:四個黃金訊號

· tech · 約 4 分鐘 · 📚 Google SRE 讀書筆記 #4

上一篇說 SLI 是量到的可靠度數字——而那些數字,就來自監控。但監控最容易走歪的地方,是把它當成「收集越多數字越好」,結果儀表板上一百個圖,真出事時反而找不到重點。這篇講 Google 給的精煉答案…

#sre#monitoring

是不是 toil?看這六個特徵 手動 —— 要人一步步動手做 重複 —— 做過很多次、之後還會再做 可自動化 —— 機器能做,只是還沒有人去寫 無長期價值 —— 做完,系統並沒有變得更好 隨規模線性成長 —— 服務變大,它就跟著變多 被動反應 —— 被觸發才做,不是主動規劃出來的 符合越多 → 越是 toil。注意:開會、規劃、寫文件是 overhead,不算 toil

消除 Toil:把重複的維運當成待消滅的 bug

· tech · 約 4 分鐘 · 📚 Google SRE 讀書筆記 #3

第一篇說 SRE 的內核是「維運可以被工程化」。這篇講的 toil,就是那個要被工程化掉的東西。很多人以為 toil 就是「辛苦的工作」,其實不是——它是一類有明確特徵的工作,而且如果你不主動砍它,它…

#sre#reliability

99.0% 100% SLA 99.5% 對外合約·違反賠錢 SLO 99.9% 內部目標(拚這個) 違約區 沒達標(但還沒違約) 健康區 ← SLI 99.95% 實際量到的 安全 buffer:內部先痛,別讓客戶先痛 門檻鬆緊:SLA(鬆) < SLO(嚴) ≤ SLI(健康時的實測)

SLI / SLO / SLA:一個量測、一個目標、一個合約

· tech · 約 4 分鐘 · 📚 Google SRE 讀書筆記 #2

上一篇說 error budget = 1 − SLO。但 SLO 是什麼?它跟另外兩個幾乎人人混用的縮寫——SLI、SLA——又差在哪?這三個字分不清,可靠度就無從談起。一句話先記住:SLI 是你「…

#sre#reliability

可靠度目標訂在 99.9%,不是 100% 剩下的 0.1% 不是遺憾,是可以花的「預算」 Error Budget = 1 − SLO 服務成功 ≥ 99.9%(SLO 目標) 失敗 ≤ 0.1% (刻意放大顯示) ≈ 一個月約 43 分鐘可壞 追到 100%:成本爆炸、邊際效益趨近零——使用者還分不出 99.9% 和 100% (他手上的網路、手機、Wi-Fi 本來就沒那麼可靠)

SRE 是什麼?從 Error Budget 講起

· tech · 約 4 分鐘 · 📚 Google SRE 讀書筆記 #1

「SRE」這個詞很紅,但很常被誤解成「高級一點的維運」或「會寫程式的 SysAdmin」。讀完 Google 這本書我的體會是:它的靈魂根本不在職稱,而在一個轉念 + 一個機制——「100% 可靠不是…

#sre#reliability