聆聽工程師和其他領(lǐng)導(dǎo)人現(xiàn)場討論:在各種環(huán)境中實(shí)現(xiàn)SRE及其指導(dǎo)思想的不同方法。SRE與其他方法(例如DevOps)的關(guān)系。最前沿的專業(yè)技術(shù)很快將在SRE中十分常見。簡化實(shí)現(xiàn)SRE的最佳實(shí)踐和技術(shù)。重要但很少有人探索的SRE人性的一面。
David N. Blank-Edelman在大型多平臺環(huán)境中的SRE、DevOps、系統(tǒng)管理領(lǐng)域擁有超過30年的經(jīng)驗(yàn)。他目前就職于Microsoft,是高級云平臺運(yùn)維布道師,專注于站點(diǎn)可靠性工程。他是USENIX在全球舉辦的廣受歡迎的SREcon會議的聯(lián)合創(chuàng)始人之一,同時(shí)還是O’Reilly水獺書(《Automating Systems Administration with Perl》)的作者。
目錄
緒論 1
第一部分 SRE 實(shí)施
第1 章 SRE 中的上下文與控制 7
第2 章 面試站點(diǎn)可靠性工程師 17
面試101 17
誰參與 17
行業(yè)與大學(xué) 18
偏見 18
漏斗 18
SRE 漏斗 19
電話篩查 20
現(xiàn)場面試 20
帶回家的問題 22
面試SRE 的最終思考 24
延伸閱讀 24
第3 章 你想建立一個(gè)SRE 團(tuán)隊(duì)嗎? 25
出于正確的原因選擇SRE 26
面向數(shù)據(jù)驅(qū)動方法 28
對SRE 的承諾 29
做出關(guān)于SRE 的決定 30
第4 章 使用事件指標(biāo)在規(guī)模上
提高SRE 31
救援到良性循環(huán):你需要測量…… 31
指標(biāo)回顧:如果指標(biāo)無法找到…… 33
代理指標(biāo) 34
修復(fù)債務(wù) 35
虛擬修復(fù)債務(wù):在機(jī)器中驅(qū)除幽靈 36
實(shí)時(shí)儀表板:SRE 的面包和黃油 37
學(xué)習(xí):終身學(xué)習(xí) 38
延伸閱讀 38
第5 章 與第三方合作的藝術(shù) 39
自建、購買或采用? 39
建立重要性 40
確定利益相關(guān)者 40
做出決策 41
承認(rèn)現(xiàn)實(shí) 42
第三方作為“一等公民” 45
當(dāng)他們倒下時(shí),你也倒下 46
像服務(wù)一樣運(yùn)行黑匣子 48
服務(wù)級別指標(biāo)、服務(wù)級別目標(biāo)和SLA 49
行動手冊:從預(yù)發(fā)布到生產(chǎn) 51
總結(jié)想法 58
第6 章 如何在沒有專用SRE 團(tuán)隊(duì)的情況下應(yīng)用SRE
原則 60
向SRE 求救(以及他們?nèi)绾问。? 60
按員工人數(shù)計(jì)算的規(guī)模問題 61
嵌入式SRE 61
你建造它,你就得運(yùn)行它 62
部署平臺 62
完成循環(huán):自行運(yùn)維 63
介紹生產(chǎn)工程團(tuán)隊(duì) 64
一些實(shí)施詳細(xì)信息 66
開發(fā)人員的工作效率和健康與監(jiān)控 66
使用事后分析解決跨團(tuán)隊(duì)可靠性問題 68
統(tǒng)一的基礎(chǔ)設(shè)施和工具與自主和創(chuàng)新 69
獲得支持者 70
小結(jié) 72
延伸閱讀 73
第7 章 無SRE 的SRE 模式:Spotify 案例研究 74
蹣跚學(xué)步:2006 – 2007 75
前奏 75
關(guān)鍵收獲 76
測試版和正式發(fā)布:2008 – 2009 76
前奏 77
將可擴(kuò)展性和可靠性帶到前沿 78
關(guān)鍵收獲 79
成功的詛咒:2010 80
前奏 80
新的所有權(quán)模型 81
核心服務(wù)正規(guī)化 82
部署時(shí)間的抉擇 83
輪值和警報(bào) 83
生成內(nèi)部辦公室支持 84
解決剩余首要問題 84
創(chuàng)建偵探 85
關(guān)鍵收獲 86
寵物和動物,以及敏捷:2011 87
前奏 87
形成不良習(xí)慣 88
打破那些壞習(xí)慣 88
關(guān)鍵收獲 89
無法擴(kuò)展的系統(tǒng):2012 89
前奏 89
手工運(yùn)維碰壁 90
關(guān)鍵收獲 91
介紹小組內(nèi)嵌運(yùn)維:2013 – 2015 91
前奏 91
以信任為基礎(chǔ) 94
推動模式轉(zhuǎn)變 95
關(guān)鍵收獲 96
自主性與一致性的權(quán)衡:2015 – 2017 96
前奏 97
受益之處 98
權(quán)衡 98
關(guān)鍵收獲 99
未來:規(guī);乃俣群桶踩 99
第8 章 大型企業(yè)SRE 的介紹 103
背景 103
介紹SRE 104
定義當(dāng)前狀態(tài) 104
識別和教育利益相關(guān)者 106
展示業(yè)務(wù)案例 108
實(shí)施SRE 團(tuán)隊(duì) 109
經(jīng)驗(yàn)和教訓(xùn) 111
實(shí)施路線圖示例 112
總結(jié)反思 114
延伸閱讀 114
第9 章 從系統(tǒng)管理員到SRE 115
澄清術(shù)語 116
服務(wù)級別指示器 116
SLA 117
服務(wù)級別目標(biāo) 117
為內(nèi)部組件建立SLA 119
了解外部依賴關(guān)系 125
非技術(shù)解決方案 127
跟蹤可用性級別 128
處理罕見情況 133
小結(jié) 135
第10 章 為企業(yè)中的SRE 掃清道路 137
瑣事,SRE 的敵人 138
企業(yè)中的瑣事 141
孤島、隊(duì)列和工單 141
路上的孤島 142
工單驅(qū)動的請求隊(duì)列成本高昂 144
立即行動 146
從精益開始 146
盡可能多地?cái)[脫交接 150
將剩余的移交替換為自助服務(wù) 153
自助服務(wù)不僅僅是一個(gè)按鈕 154
自助服務(wù)以多種方式幫助SRE 155
運(yùn)維作為服務(wù) 156
錯(cuò)誤預(yù)算、限制瑣事和其他增強(qiáng)人類能力的工具 159
錯(cuò)誤預(yù)算 159
瑣事上限 160
利用DevOps 的現(xiàn)有熱情 161
統(tǒng)一任務(wù)列表并保護(hù)容量 161
心理安全與人為因素 162
加入運(yùn)動 163
第11 章 SRE 模式深受DevOps 的熱愛 164
模式1:Google 誕生的自動測試 165
模式2:在谷歌啟動和移交準(zhǔn)備審查 167
模式3:創(chuàng)建共享源代碼存儲庫 170
小結(jié) 172
進(jìn)一步閱讀和源材料 172
第12 章 DevOps 和SRE:來自社區(qū)的聲音 174
背景 174
方法 174
結(jié)果 175
回復(fù) 175
第13 章 Facebook 的生產(chǎn)工程師 191
第二部分 SRE 前沿領(lǐng)域
第14 章 起初,有混沌 215
系統(tǒng)問題 216
復(fù)雜性的經(jīng)濟(jì)支柱 218
開始混沌 219
安全和復(fù)雜性的權(quán)衡 220
混沌變大 221
形式化 221
高級原則 222
常見問題 223
小結(jié) 225
第15 章 可靠性與隱私的交集 226
可靠性與隱私的交集概述 227
隱私工程的一般景觀 228
隱私和SRE:常見方法 230
減少辛勞 230
高效、慎重地解決問題 232
關(guān)系管理 233
早期干預(yù)與價(jià)值觀傳播 233
細(xì)微差別、差異和權(quán)衡 235
小結(jié) 236
延伸閱讀 236
第16 章 數(shù)據(jù)庫可靠性工程 237
數(shù)據(jù)庫可靠性工程師的指導(dǎo)原則 237
保護(hù)數(shù)據(jù) 238
自助縮放服務(wù) 238
數(shù)據(jù)庫不特殊 239
數(shù)據(jù)庫可靠性工程文化 240
可恢復(fù)性 241
恢復(fù)注意事項(xiàng) 241
恢復(fù)策略的剖析 242
構(gòu)建基塊1:檢測 242
構(gòu)建基塊2:多樣化的存儲 244
構(gòu)建基塊3:各種工具箱 245
構(gòu)建基塊4:測試 246
倡導(dǎo)恢復(fù)可靠性 247
持續(xù)交付:從開發(fā)到生產(chǎn) 247
協(xié)作 249
部署 249
遷移和版本控制 249
影響分析 250
遷移模式 250
倡導(dǎo)CD 251
為DBRE 提供支持 252
延伸閱讀 252
第17 章 數(shù)據(jù)耐久性工程 253
復(fù)制是基礎(chǔ) 253
備份 253
復(fù)制 254
真實(shí)世界的耐久性 257
保護(hù) 261
測試 261
保障 262
恢復(fù) 262
驗(yàn)證 263
零的力量 264
驗(yàn)證范圍 264
監(jiān)視器的觀察者 266
自動化 266
漏洞之窗 266
運(yùn)維人員疲勞 267
可靠性 267
小結(jié) 268
第18 章 SRE 機(jī)器學(xué)習(xí)概述 270
為什么要使用機(jī)器學(xué)習(xí)輔助SRE 工作? 270
為什么我的公司應(yīng)該如何參與這項(xiàng)工作? 271
AI 應(yīng)用方面的覺醒 272
什么是機(jī)器學(xué)習(xí)? 273
我們所說的學(xué)習(xí)是什么意思? 274
從國際象棋到圍棋:我們可以潛水有多深? 276
為什么是現(xiàn)在?我們改變了什么? 277
什么是神經(jīng)網(wǎng)絡(luò)? 278
神經(jīng)元和神經(jīng)網(wǎng)絡(luò) 278
應(yīng)該如何以及何時(shí)應(yīng)用神經(jīng)網(wǎng)絡(luò)? 280
我們可以使用哪些類型的數(shù)據(jù)? 280
實(shí)用機(jī)器學(xué)習(xí) 281
神經(jīng)網(wǎng)絡(luò)的熱門庫 281
實(shí)用機(jī)器學(xué)習(xí)示例 282
成功案例 296
延伸閱讀 297
我的GitHub 存儲庫 297
推薦書籍 297
第三部分 SRE 最佳實(shí)踐和技術(shù)
第19 章 使文檔更好:將文檔集成到工作流程中 301
定義質(zhì)量:好文檔是什么樣子的? 302
SRE 文檔的功能要求 304
將文檔集成到工程的工作流中 306
谷歌的經(jīng)驗(yàn):g3doc 和EngPlay 307
我們學(xué)到的知識 310
更好的文檔:最佳實(shí)踐 311
為每個(gè)文檔類型創(chuàng)建模板 311
更好 > 最佳:為質(zhì)量設(shè)定現(xiàn)實(shí)標(biāo)準(zhǔn) 313
要求將文檔作為代碼評審的一部分 313
大膽地修剪你的文檔 314
對文檔進(jìn)行表彰和獎(jiǎng)勵(lì) 314
傳達(dá)文檔的價(jià)值 315
延伸閱讀 317
第20 章 主動教學(xué)和自學(xué) 319
主動學(xué)習(xí) 320
主動學(xué)習(xí)示例:不幸之輪 321
活動學(xué)習(xí)示例:事件管理(紙牌游戲) 322
活動學(xué)習(xí)示例:SRE 教室 326
不能學(xué)習(xí)的代價(jià) 327
有效 SRE 團(tuán)隊(duì)的學(xué)習(xí)氛圍 328
生產(chǎn)會議 328
故障報(bào)告 329
行動號召:放棄無聊的幻燈片 330
第21 章 服務(wù)級別目標(biāo)的藝術(shù)與科學(xué) 331
為什么要設(shè)定目標(biāo)? 331
可用性 332
時(shí)間計(jì)量 333
事務(wù) 334
時(shí)間跨度的事務(wù)統(tǒng)計(jì) 334
關(guān)于評估 SLO 335
直方圖 338
百分位數(shù)的不足之處(和直方圖的優(yōu)點(diǎn)) 339
思路的不同:自底向上的分析 SLO 339
延伸閱讀 340
第22 章 SRE 作為一種成功文化 341
SRE 是從哪里來的? 341
SRE 的關(guān)鍵價(jià)值 343
保持網(wǎng)站運(yùn)行 343
授權(quán)團(tuán)隊(duì)“做正確的事情” 345
將運(yùn)維視為工程問題 346
通過承諾(服務(wù)級別)實(shí)現(xiàn)業(yè)務(wù)成功 347
SRE 的關(guān)鍵啟用功能 348
監(jiān)視、指標(biāo)和 KPI 348
事件管理和應(yīng)急響應(yīng) 349
容量規(guī)劃和需求預(yù)測 349
性能分析和優(yōu)化 349
預(yù)配、更改管理和速度 349
SRE 執(zhí)行階段 350
第 1 階段:滅火/ 應(yīng)急 350
第 2 階段:守門員 350
第3 階段:倡導(dǎo)者/ 合作伙伴 351
第4 階段:催化 351
不同階段的并發(fā)癥 352
關(guān)注成功的細(xì)節(jié) 352
延伸閱讀 353
第23 章 SRE 反模式 354
反模式 1:站點(diǎn)可靠性運(yùn)維 355
反模式2:人類盯著屏幕 356
反模式3:事件響應(yīng)時(shí)一窩蜂 357
反模式 4:根本原因 = 人為錯(cuò)誤 358
反模式5:丟包袱 360
反模式 6:馬戲團(tuán)表演模式! 361
反模式7:警報(bào)可靠性工程 362
反模式8:雇用他人來遛狗 363
反模式 9:減速帶工程 364
反模式10:設(shè)計(jì)阻塞點(diǎn) 365
反模式11:批評太多,鼓勵(lì)不夠 366
反模式12:推遲生產(chǎn)環(huán)境發(fā)布 368
反模式 13:優(yōu)先避免故障而不追求快速恢復(fù)(MTTF > MTTR) 369
反模式14:依賴性地獄 371
反模式15:笨拙的治理 372
反模式 16: 考慮不周的 SLO 373
反模式 17:讓人惱火的 API 接口 374
反模式 18:修復(fù)運(yùn)維團(tuán)隊(duì) 376
那么,這就足夠了嗎? 377
第24 章 不變的基礎(chǔ)架構(gòu)和SRE 379
可擴(kuò)展性、可靠性和性能 379
故障恢復(fù) 380
更簡單的運(yùn)維 380
更快的啟動時(shí)間 381
已知狀態(tài) 381
自信地完成持續(xù)集成/ 持續(xù)部署 382
安全性 382
多區(qū)域操作 383
發(fā)布的工程學(xué) 383
構(gòu)建基本鏡像 384
部署應(yīng)用程序 385
缺點(diǎn) 385
小結(jié) 386
第25 章 可編寫腳本的負(fù)載均衡器 387
可編寫腳本的負(fù)載均衡器:新新人類 387
使困難變得簡單 389
分片感知路由 390
利用潛力 394
案例研究:休息時(shí)間 394
服務(wù)級別中間件 395
作為救援的中間件 397
服務(wù)級別中間件的 API 397
案例研究:WAF/Bot 緩解 397
避免災(zāi)難 398
獲得狀態(tài)的技巧 398
案例研究:結(jié)賬隊(duì)列 400
展望未來,進(jìn)一步閱讀 401
第26 章 服務(wù)網(wǎng)格化:微服務(wù)的牧人? 403
準(zhǔn)備好擺脫全家桶了嗎? 404
微服務(wù)網(wǎng)絡(luò)的當(dāng)前狀態(tài) 405
服務(wù)網(wǎng)格來救援 407
邊三輪代理的好處 408
最終一致的服務(wù)發(fā)現(xiàn) 409
可觀察性和報(bào)警機(jī)制 410
邊三輪性能影響 411
精簡庫和上下文傳播 412
配置管理(控制平面與數(shù)據(jù)平面) 413
實(shí)踐中的服務(wù)網(wǎng)格 414
Envoy 在 Lyft 的起源與發(fā)展 415
Lyft 運(yùn)維的 Envoy 416
服務(wù)網(wǎng)格的未來 418
延伸閱讀 418
第四部分 SRE 的人性化一面
第27 章 SRE 的心理安全 421
成功團(tuán)隊(duì)的主要指標(biāo) 421
延伸閱讀 430
第28 章 SRE 認(rèn)知工作 431
簡介 431
SRE 人員是做什么的? 432
我們?yōu)槭裁匆P(guān)心從業(yè)者認(rèn)知? 433
在不確定性和時(shí)間壓力下做出的關(guān)鍵決策無法重現(xiàn) 434
現(xiàn)代復(fù)雜系統(tǒng)中的人類表現(xiàn):主題 434
關(guān)于圍繞事件的SRE 認(rèn)知工作的觀察 435
每一次事件都可能更糟 435
在不確定的情況下做出犧牲性決策 436
正常系統(tǒng)的維修 437
關(guān)于復(fù)雜系統(tǒng)的專業(yè)知識 438
管理協(xié)調(diào)成本 439
SRE 是聯(lián)合認(rèn)知系統(tǒng)中工作的認(rèn)知主體 439
知識校準(zhǔn)問題 440
心理模型 441
略