簡而言之,SRE 經營「服務(services)」——由一組互相關聯、為使用者運行的系統,最終對服務的健康負責。經營一個服務涵蓋大量活動:建立監控系統、容量規劃、應變事件、確保根因被處理等等。本部分探討 SRE 的日常工作:建構與運維大型分散式系統的理論與實踐。
服務可靠性的層級結構#
如同馬斯洛把人類需求分層,我們也可以將服務的健康從最基本到最高階分為幾個層級。下面依序介紹各層及對應章節。
監控(Monitoring)#
沒有監控,等同盲飛。
- 第 10 章「實用告警」:以時序資料為基礎的告警工具與哲學
事件應變(Incident Response)#
SRE 並非為了 On-Call 而 On-Call;如果有辦法不揹 pager,我們會這麼做。
- 第 11 章「On-Call 輪值」:如何平衡 On-Call 與其他職責
- 第 12 章「有效的疑難排解」:結構化的故障診斷方法
- 第 13 章「緊急應變」:避免在事件期間衝動行事
- 第 14 章「事件管理」:有效的事件管理能降低衝擊與焦慮
事後檢討與根因分析(Postmortem and Root-Cause Analysis)#
SRE 哲學的核心差異之一是:只應對新而有趣的問題,舊問題該被一勞永逸地修掉。
- 第 15 章「事後檢討文化」:建立無究責(blameless)的事後檢討文化
- 第 16 章「故障追蹤」:介紹內部工具 Outage Tracker,集中追蹤近期事件與其後續行動
測試(Testing)#
了解錯誤模式後,下一步是預防它。
- 第 17 章「可靠性測試」:如何運用測試套件減少特定錯誤類別
容量規劃(Capacity Planning)#
- 第 18 章「SRE 中的軟體工程」:透過容量規劃工具 Auxon 的案例展示 SRE 的軟體工程實作
- 第 19 章「前端負載平衡」:請求如何被導向資料中心
- 第 20 章「資料中心負載平衡」:資料中心內的請求分發
- 第 21 章「處理過載」:當需求超過容量時的應對
- 第 22 章「應對連鎖故障」:在系統設計與發生時的應對策略
開發(Development)#
Google SRE 的關鍵之一是:在組織內部進行大規模系統設計與軟體工程工作。
- 第 23 章「管理關鍵狀態」:分散式共識(如 Paxos)的可靠性應用
- 第 24 章「分散式定時排程」:規模化的 Cron 系統設計
- 第 25 章「資料處理管線」:從週期性 MapReduce 到接近即時系統的多種架構
- 第 26 章「資料完整性」:「讀到的就是寫進去的」
產品(Product)#
爬到可靠性金字塔頂端後,最終要面對的是產品本身。
- 第 27 章「可靠的產品上線」:如何從第 0 天起就給使用者最好的體驗
延伸閱讀#
- 〈Weathering the Unexpected〉[Kri12]:Google 全公司規模的韌性測試
- 〈Capacity Planning〉[Hix15a]:容量規劃不一定需要水晶球
- 〈BeyondCorp〉[War14]:以裝置與使用者憑證取代特權內網的新典範