站點可靠性工程(Site Reliability Engineering,簡稱SRE)是一個令人興奮的新興領(lǐng)域,它專注于如何確保系統(tǒng)穩(wěn)定、可靠地運行。本書基于一個金字塔層次結(jié)構(gòu)模型,深入淺出地介紹了關(guān)于SRE 的方方面面,涉及監(jiān)控、事故響應(yīng)與回顧、測試與發(fā)布、容量規(guī)劃、開發(fā)、用戶體驗設(shè)計,以及貫穿其中的溝通技巧。本書是SRE 工程師、DevOps 工程師、運維工程師和系統(tǒng)管理員不可或缺的參考資料;軟件架構(gòu)師、軟件工程師、用戶體驗設(shè)計師也能從本書中獲取關(guān)于SRE 的相關(guān)知識。
Nat Welch是一名美國的軟件開發(fā)人員。自2005年以來,他一直做著構(gòu)建網(wǎng)站并保持其運行的工作。他曾先后是谷歌、HFA等各大平臺的網(wǎng)站可靠性工程師。多年來,他一直致力于提高網(wǎng)站的可靠性以幫助開發(fā)人員構(gòu)建可靠的系統(tǒng)。
馮文輝,現(xiàn)任ThoughtWorks中國區(qū)資深架構(gòu)咨詢師,具有11年的軟件行業(yè)經(jīng)驗,曾服務(wù)于多個世界500強企業(yè),覆蓋銀行、保險、通信、汽車、物流等行業(yè)。為客戶提供敏捷開發(fā)、DevOps、架構(gòu)設(shè)計與數(shù)字化轉(zhuǎn)型等咨詢服務(wù)。熱衷于探索更好的架構(gòu)設(shè)計方法,助力企業(yè)的數(shù)字化轉(zhuǎn)型。
目錄
1 簡介 1
SRE簡史 2
SRE是什么 3
關(guān)于這本書 7
以SRE作為新項目的框架 9
小結(jié) 12
2 監(jiān)控 13
為什么要監(jiān)控 13
檢測應(yīng)用程序 16
度量什么 23
SLIs、SLOs和錯誤預(yù)算簡介 26
錯誤預(yù)算 27
收集和保存監(jiān)控數(shù)據(jù) 29
輪詢應(yīng)用程序 29
推送應(yīng)用程序 32
展示監(jiān)控信息 35
任意查詢 35
圖表 36
儀表板 37
聊天機器人 38
管理和維護監(jiān)控數(shù)據(jù) 38
溝通 39
他們知道有監(jiān)控嗎 39
小結(jié) 40
參考資料 41
3 事故響應(yīng) 42
什么是事故 43
什么是事故響應(yīng) 45
警報 47
什么時候發(fā)起警報 48
怎么發(fā)出警報 49
向誰發(fā)出警報 54
隨時待命 55
溝通 57
事故指揮系統(tǒng) 59
在哪里溝通 61
恢復(fù)系統(tǒng) 61
警報解除 63
小結(jié) 64
4 事后回顧 65
什么是事后回顧 65
為什么寫事后回顧報告 66
何時寫事后回顧報告 68
開展事故分析 69
如何寫事后回顧報告 71
總結(jié) 71
影響 72
時間 73
根本原因 74
行動項 75
附錄 77
停止事后指責(zé) 77
舉行事后回顧會議 79
分析以往的事后回顧報告 80
MTTR與MTBF 81
警報疲勞 81
討論過去的服務(wù)中斷 81
小結(jié) 82
參考資料 82
5 測試和發(fā)布 83
測試 84
測試內(nèi)容 87
發(fā)布 100
何時發(fā)布 101
回滾 104
自動化 104
持續(xù) 105
小結(jié) 106
6 容量規(guī)劃 107
企業(yè)財務(wù)簡介 108
為什么需要規(guī)劃 110
風(fēng)險管理與期望管理 111
定義一個規(guī)劃 112
當(dāng)前的容量是多少 113
何時達到容量極限 115
應(yīng)該如何更改容量 119
執(zhí)行規(guī)劃 125
架構(gòu)——性能變化的根源 126
技術(shù)作為利潤中心和采購 128
小結(jié) 128
7 構(gòu)建工具 129
尋找項目 131
定義項目 133
RDD 133
設(shè)計文檔 136
項目計劃 138
例子 139
回顧會與站會 141
工作分配 142
構(gòu)建項目 143
關(guān)于編寫代碼的建議 143
關(guān)注點分離 144
長期工作 145
筆記本 148
文檔與維護項目 149
小結(jié) 150
8 用戶體驗 151
設(shè)計和用戶體驗簡介 155
現(xiàn)實世界的交互設(shè)計 157
用戶測試 160
挑選一種體驗 161
設(shè)計測試 162
尋找要測試的人 162
開發(fā)者體驗 163
工具經(jīng)驗 164
績效預(yù)算 164
安全性 166
身份認證 167
授權(quán) 168
風(fēng)險概況 168
網(wǎng)絡(luò)釣魚 169
ACM道德準(zhǔn)則 170
小結(jié) 171
參考資料 172
9 網(wǎng)絡(luò)基礎(chǔ) 173
互聯(lián)網(wǎng) 173
發(fā)送一個HTTP請求 175
DNS 175
以太網(wǎng)和TCP/IP 179
HTTP 186
curl與wget 189
網(wǎng)絡(luò)監(jiān)控工具 194
netstat 194
nc 195
tcpdump 196
小結(jié) 197
參考資料 197
10 Linux和云基礎(chǔ) 198
Linux基礎(chǔ) 198
一切皆是文件 199
進程是什么 206
syscalls 207
構(gòu)建自己的工具 213
云基礎(chǔ) 214
虛擬機 215
容器 216
負載均衡 218
自動伸縮 219
存儲 219
隊列與發(fā)布/訂閱 220
伸縮單元 221
架構(gòu)面試示例 222
小結(jié) 226
參考資料 226