本書是軟件開(kāi)發(fā)與運(yùn)維領(lǐng)域經(jīng)典參考書新升級(jí)版,由DevOps領(lǐng)域幾位先驅(qū)撰寫。第2版根據(jù)新研究和best practice更新了內(nèi)容,增加了大量新案例,方便大家在各行各業(yè)落地DevOps實(shí)踐。
本書內(nèi)容分為六部分,圍繞DevOps三要義(流動(dòng)、反饋、持續(xù)學(xué)習(xí)與探索)探討DevOps的理論、原則和落地實(shí)踐。第一部分介紹DevOps理論基礎(chǔ)和關(guān)鍵主題,第二部分介紹如何尋找切入點(diǎn)并啟動(dòng)轉(zhuǎn)型,第三部分介紹如何通過(guò)構(gòu)建部署流水線來(lái)加速流動(dòng),第四部分討論如何通過(guò)建立有效的生產(chǎn)環(huán)境監(jiān)控發(fā)現(xiàn)和解決問(wèn)題,第五部分探討如何通過(guò)建立公正的文化促進(jìn)持續(xù)學(xué)習(xí)與探索,第六部分介紹將安全與合規(guī)活動(dòng)集成到日常工作。
本書適合所有互聯(lián)網(wǎng)企業(yè)和傳統(tǒng)企業(yè)從業(yè)者閱讀。
1-【經(jīng)典】DevOps領(lǐng)域經(jīng)典重磅升級(jí),原版Amazon 4.7星好評(píng)
2-【靠譜】DevOps先驅(qū)Gene Kim、持續(xù)交付之父Jez Humble領(lǐng)銜作品
3-【專業(yè)】國(guó)內(nèi)DevOps資深實(shí)踐者翻譯,一線專家聯(lián)袂推薦
4-【實(shí)戰(zhàn)】匯聚全球一線DevOps落地案例(40個(gè)大案例)
5-【系統(tǒng)】IT名作《鳳凰項(xiàng)目》實(shí)戰(zhàn)篇,數(shù)字化轉(zhuǎn)型三劍客讀本
6-【落地】打造敏捷、可靠、安全、高效的技術(shù)型組織
【作者簡(jiǎn)介】
Gene Kim · DevOps先驅(qū)
熱銷書作者、研究員、首席技術(shù)官、IT Revolution創(chuàng)始人、DevOps企業(yè)峰會(huì)創(chuàng)始人,專注于研究大型復(fù)雜組織的技術(shù)轉(zhuǎn)型。著有風(fēng)靡全球的《鳳凰項(xiàng)目》《獨(dú)角獸項(xiàng)目》。
Jez Humble · 持續(xù)交付之父
Google Cloud SRE、加州大學(xué)伯克利分校講師、熱銷書作者,著有Jolt大獎(jiǎng)獲獎(jiǎng)圖書《持續(xù)交付》。
Patrick Debois · DevOps之父
Snyk公司DevOps關(guān)系總監(jiān)兼顧問(wèn)。致力于通過(guò)在開(kāi)發(fā)、項(xiàng)目管理和系統(tǒng)管理中運(yùn)用敏捷技術(shù),彌合項(xiàng)目和運(yùn)營(yíng)之間的鴻溝。
John Willis · DevOps先驅(qū)
Red Hat全球轉(zhuǎn)型辦公室高級(jí)總監(jiān)、Beyond The Phoenix Project作者、Profound播客主持人。在IT管理行業(yè)擁有超過(guò)40年經(jīng)驗(yàn)。
【譯者簡(jiǎn)介】
茹炳晟 · 騰訊Tech Lead
騰訊研究院特約研究員、中國(guó)計(jì)算機(jī)學(xué)會(huì)(CCF)TF研發(fā)效能SIG主席!稖y(cè)試工程師全棧技術(shù)進(jìn)階與實(shí)踐》等暢銷技術(shù)書作者。公眾號(hào)茹炳晟聊軟件研發(fā)主理人。
管俊 · 戴爾DevOps架構(gòu)師
目前就職于戴爾中國(guó)卓越研發(fā)集團(tuán),擔(dān)任ACP & VxRail產(chǎn)品研發(fā)部門DevOps架構(gòu)師。在數(shù)字化轉(zhuǎn)型方向擁有超過(guò)10年一線DevOps工程實(shí)踐和團(tuán)隊(duì)建設(shè)經(jīng)驗(yàn)。
董越 · 阿里前架構(gòu)師
獨(dú)立DevOps咨詢師、研發(fā)運(yùn)營(yíng)一體化(DevOps)能力成熟度模型核心專家,曾任阿里巴巴集團(tuán)研發(fā)效能事業(yè)部架構(gòu)師,當(dāng)前主要從事企業(yè)級(jí)DevOps體系建設(shè)的咨詢工作!盾浖桓锻ㄗR(shí)》等暢銷技術(shù)書作者。
王曉翔 · 去哪兒網(wǎng)前高級(jí)總監(jiān)
獨(dú)立DevOps咨詢師、研發(fā)運(yùn)營(yíng)一體化(DevOps)能力成熟度模型核心專家、去哪兒網(wǎng)前工程效率部高級(jí)總監(jiān)。目前致力于為傳統(tǒng)企業(yè)提供DevOps轉(zhuǎn)型指導(dǎo)。
第 一部分 DevOps三要義
第 1章 敏捷、持續(xù)交付與DevOps三要義5
1.1 制造業(yè)價(jià)值流5
1.2 技術(shù)價(jià)值流5
1.2.1 聚焦部署前置時(shí)間6
1.2.2 關(guān)注返工指標(biāo)%C A8
1.3 DevOps三要義:DevOps的基礎(chǔ)原則9
案例研究:向著巡航高度爬升:美國(guó)航空的DevOps之旅(第 一部分,2020年)11
1.4 小結(jié)14
第 2章 第 一要義:流動(dòng)15
2.1 使工作可視化15
2.2 限制在制品數(shù)量16
2.3 縮減批量大小17
2.4 減少工作交接19
2.5 持續(xù)識(shí)別并改進(jìn)約束20
2.6 消除價(jià)值流中的困境和浪費(fèi)21
案例研究:醫(yī)療行業(yè)中改善流動(dòng)性和改進(jìn)約束的實(shí)踐(2021年)22
2.7 小結(jié)24
第3章 第二要義:反饋25
3.1 在復(fù)雜系統(tǒng)中安全地工作25
3.2 及時(shí)發(fā)現(xiàn)問(wèn)題26
3.3 群策群力,攻克難題28
案例研究:Excella的安燈繩實(shí)驗(yàn)(2018年)30
3.4 從源頭保障質(zhì)量32
3.5 為下游工作中心優(yōu)化33
3.6 小結(jié)33
第4章 第三要義:持續(xù)學(xué)習(xí)與探索34
4.1 建立學(xué)習(xí)型組織,打造安全文化35
4.2 將日常工作的改進(jìn)制度化36
4.3 將局部經(jīng)驗(yàn)轉(zhuǎn)化為全局改進(jìn)38
4.4 在日常工作中注入彈性模式38
4.5 領(lǐng)導(dǎo)層強(qiáng)化與鞏固學(xué)習(xí)文化39
案例研究:貝爾實(shí)驗(yàn)室的故事(1925年)40
4.6 小結(jié)41
第 一部分總結(jié)42
第二部分 從哪里開(kāi)始
第5章 選擇合適的價(jià)值流切入45
5.1 綠地項(xiàng)目與棕地項(xiàng)目47
案例研究:Kessel Run:空中加油系統(tǒng)的棕地項(xiàng)目轉(zhuǎn)型(2020年)49
5.2 兼顧記錄型系統(tǒng)和交互型系統(tǒng)50
5.3 從最具同理心和創(chuàng)新精神的團(tuán)隊(duì)開(kāi)始51
案例研究:在整個(gè)企業(yè)中推廣DevOps轉(zhuǎn)型:美國(guó)航空的DevOps之旅(第二部分,2020年)52
5.4 在組織中推廣DevOps轉(zhuǎn)型52
案例研究:英國(guó)稅務(wù)及海關(guān)總署如何通過(guò)超大規(guī)模PaaS拯救經(jīng)濟(jì)于水火(2020年)55
5.5 小結(jié)57
第6章 理解、可視化和運(yùn)用價(jià)值流58
6.1 通過(guò)繪制價(jià)值流圖改進(jìn)工作58
6.2 確定價(jià)值流的參與團(tuán)隊(duì)59
6.3 通過(guò)繪制價(jià)值流圖展現(xiàn)工作60
6.4 組建專職轉(zhuǎn)型團(tuán)隊(duì)61
6.4.1 目標(biāo)一致62
6.4.2 保持小跨度的改進(jìn)計(jì)劃63
6.4.3 為非功能性需求和償還技術(shù)債務(wù)預(yù)留20%的時(shí)間63
案例研究:LinkedIn的反轉(zhuǎn)行動(dòng)(2011年)65
6.4.4 提高工作的可視化程度67
6.5 使用工具強(qiáng)化預(yù)期行為67
6.6 小結(jié)68
第7章 參照康威定律設(shè)計(jì)組織結(jié)構(gòu)與系統(tǒng)架構(gòu)69
7.1 組織原型71
7.2 過(guò)度以職能為導(dǎo)向的危害(成本優(yōu)化)72
7.3 組建市場(chǎng)型團(tuán)隊(duì)(速度優(yōu)化)72
7.4 讓職能型組織高效運(yùn)轉(zhuǎn)73
7.5 將測(cè)試、運(yùn)維和信息安全納入日常工作74
7.6 讓團(tuán)隊(duì)成員都成為通才75
7.7 投資服務(wù)與產(chǎn)品,而非項(xiàng)目76
7.8 依照康威定律設(shè)定團(tuán)隊(duì)邊界76
7.9 創(chuàng)建松耦合的架構(gòu),保證生產(chǎn)力和安全77
7.10 保持小規(guī)模團(tuán)隊(duì)(兩張比薩原則)78
案例研究:Target公司的API啟用項(xiàng)目(2015年)80
7.11 小結(jié)81
第8章 將運(yùn)維融入日常開(kāi)發(fā)工作82
8.1 構(gòu)建共享服務(wù),提升開(kāi)發(fā)人員生產(chǎn)力83
8.2 將運(yùn)維工程師融入服務(wù)團(tuán)隊(duì)85
8.3 為服務(wù)團(tuán)隊(duì)指派運(yùn)維聯(lián)絡(luò)人85
8.4 邀請(qǐng)運(yùn)維工程師參加開(kāi)發(fā)團(tuán)隊(duì)的例行活動(dòng)86
8.4.1 邀請(qǐng)運(yùn)維工程師參加每日站會(huì)87
8.4.2 邀請(qǐng)運(yùn)維工程師參加回顧會(huì)議87
8.4.3 使用共享的看板展示相關(guān)運(yùn)維工作88
案例研究:全英房屋抵押貸款協(xié)會(huì):擁抱更好的工作方式(2020年)88
8.5 小結(jié)91
第二部分總結(jié)91
第三部分 第 一要義:流動(dòng)的具體實(shí)踐
第9章 為部署流水線奠定基礎(chǔ)95
9.1 按需搭建開(kāi)發(fā)、測(cè)試和生產(chǎn)環(huán)境96
9.2 使用統(tǒng)一的代碼倉(cāng)庫(kù)97
9.3 簡(jiǎn)化基礎(chǔ)設(shè)施的重建99
案例研究:酒店公司如何通過(guò)容器技術(shù)實(shí)現(xiàn)年收入300億美元(2020年)100
9.4 代碼運(yùn)行在類生產(chǎn)環(huán)境才算開(kāi)發(fā)完成101
9.5 小結(jié)102
第 10章 實(shí)現(xiàn)快速可靠的自動(dòng)化測(cè)試103
10.1 持續(xù)構(gòu)建、測(cè)試和集成代碼與環(huán)境106
10.2 構(gòu)建快速可靠的自動(dòng)化測(cè)試套件108
10.3 在自動(dòng)化測(cè)試階段盡早發(fā)現(xiàn)問(wèn)題109
10.3.1 確保測(cè)試快速運(yùn)行110
10.3.2 測(cè)試驅(qū)動(dòng)開(kāi)發(fā)111
10.3.3 盡可能將手工測(cè)試自動(dòng)化112
10.3.4 在測(cè)試套件中集成性能測(cè)試113
10.3.5 在測(cè)試套件中集成非功能性需求測(cè)試113
10.4 在部署流水線失敗時(shí)拉下安燈繩114
10.5 小結(jié)116
第 11章 實(shí)現(xiàn)持續(xù)集成117
11.1 小批量開(kāi)發(fā)vs大批量合并119
11.2 基于主干的開(kāi)發(fā)實(shí)踐120
案例研究:Bazaarvoice的持續(xù)集成實(shí)踐(2012年)121
11.3 小結(jié)123
第 12章 自動(dòng)化和低風(fēng)險(xiǎn)的發(fā)布124
12.1 部署流程自動(dòng)化126
案例研究:CSG的每日部署(2013年)127
12.1.1 實(shí)現(xiàn)自動(dòng)化的自助部署129
12.1.2 將代碼部署集成到部署流水線130
案例研究:Etsy持續(xù)部署案例:開(kāi)發(fā)者自助部署(2014年)131
12.2 部署與發(fā)布解耦133
12.2.1 基于部署環(huán)境的發(fā)布模式134
案例研究:Dixons Retail:藍(lán)綠部署在POS系統(tǒng)中的應(yīng)用(2008年)136
12.2.2 基于應(yīng)用程序的發(fā)布模式138
案例研究:Facebook Chat功能的灰度發(fā)布案例(2008年)140
12.3 持續(xù)交付和持續(xù)部署實(shí)踐調(diào)研141
案例研究:CSG:實(shí)現(xiàn)開(kāi)發(fā)與運(yùn)維的雙贏(2016年)142
12.4 小結(jié)146
第 13章 降低發(fā)布風(fēng)險(xiǎn)的架構(gòu)147
13.1 提高研發(fā)效能、可測(cè)試性和安全性的架構(gòu)148
13.2 架構(gòu)原型:?jiǎn)误w架構(gòu)vs微服務(wù)149
案例研究:亞馬遜的演進(jìn)式架構(gòu)(2002年)150
13.3 安全地演進(jìn)企業(yè)架構(gòu)151
案例研究:Blackboard Learn的絞殺者應(yīng)用模式(2011年)152
13.4 小結(jié)155
第三部分總結(jié)155
第四部分 第二要義:反饋的具體實(shí)踐
第 14章 使用監(jiān)控發(fā)現(xiàn)和解決問(wèn)題159
14.1 搭建集中式的監(jiān)控基礎(chǔ)設(shè)施161
14.2 為應(yīng)用程序添加日志監(jiān)控163
14.3 用監(jiān)控指引問(wèn)題的分析和解決165
14.4 把添加監(jiān)控融入日常工作165
14.5 以自助方式訪問(wèn)監(jiān)控?cái)?shù)據(jù)166
案例研究:搭建自助的監(jiān)控體系:LinkedIn的實(shí)踐(2011年)167
14.6 對(duì)監(jiān)控配置查漏補(bǔ)缺169
14.6.1 應(yīng)用程序和業(yè)務(wù)的監(jiān)控169
14.6.2 基礎(chǔ)設(shè)施的監(jiān)控171
14.6.3 顯示其他相關(guān)信息172
14.7 小結(jié)172
第 15章 使用監(jiān)控預(yù)防問(wèn)題并實(shí)現(xiàn)業(yè)務(wù)目標(biāo)173
15.1 用均值和標(biāo)準(zhǔn)差發(fā)現(xiàn)潛在問(wèn)題174
15.2 監(jiān)測(cè)到非預(yù)期結(jié)果時(shí)告警175
15.3 監(jiān)控?cái)?shù)據(jù)非高斯分布帶來(lái)的問(wèn)題176
案例研究:Netflix的自動(dòng)擴(kuò)容能力(2012年)177
15.4 使用異常檢測(cè)技術(shù)179
案例研究:異常檢測(cè)中的高級(jí)技術(shù)(2014年)180
15.5 小結(jié)182
第 16章 引入反饋機(jī)制實(shí)現(xiàn)安全部署183
16.1 利用監(jiān)控確保部署上線更安全184
16.2 讓開(kāi)發(fā)和運(yùn)維輪流值班186
16.3 讓開(kāi)發(fā)人員到價(jià)值流下游看一看186
16.4 先由開(kāi)發(fā)人員自行運(yùn)維188
案例研究:谷歌的移交就緒評(píng)審和發(fā)布就緒評(píng)審(2010年)190
16.5 小結(jié)192
第 17章 將假設(shè)驅(qū)動(dòng)開(kāi)發(fā)和A B測(cè)試納入日常工作193
17.1 A B測(cè)試簡(jiǎn)史194
17.2 在新功能測(cè)試中整合A B測(cè)試195
17.3 在軟件發(fā)布中整合A B測(cè)試196
17.4 在功能規(guī)劃中整合A B測(cè)試196
案例研究:雅虎問(wèn)答在快速迭代中實(shí)驗(yàn),實(shí)現(xiàn)收入翻倍197
17.5 小結(jié)198
第 18章 通過(guò)評(píng)審和協(xié)調(diào)提升工作質(zhì)量199
18.1 變更審批流程帶來(lái)的問(wèn)題200
18.2 過(guò)度變更控制帶來(lái)的問(wèn)題201
案例研究:從三位高管審批到自動(dòng)審批阿迪達(dá)斯的大規(guī)模發(fā)布實(shí)踐(2020年)202
18.3 對(duì)變更進(jìn)行協(xié)調(diào)和規(guī)劃204
18.4 對(duì)變更進(jìn)行同行評(píng)議204
案例研究:谷歌的代碼評(píng)審(2010年)206
18.5 凍結(jié)變更并進(jìn)行大量手工測(cè)試的隱患207
18.6 用結(jié)對(duì)編程提升各種類型變更的質(zhì)量207
案例研究:Pivotal用結(jié)對(duì)編程代替阻滯的代碼評(píng)審過(guò)程(2011年)208
18.7 分析拉取請(qǐng)求過(guò)程的有效性209
18.8 對(duì)官僚化流程進(jìn)行大膽簡(jiǎn)化210
18.9 小結(jié)211
第四部分 總結(jié)212
第五部分 第三要義:持續(xù)學(xué)習(xí)與探索的具體實(shí)踐
第 19章 將學(xué)習(xí)融入日常工作215
19.1 建立公正的學(xué)習(xí)文化216
19.2 故障發(fā)生后及時(shí)召開(kāi)回顧會(huì)議217
19.3 盡可能廣泛公開(kāi)回顧會(huì)議紀(jì)要219
19.4 降低事故容差以發(fā)現(xiàn)更弱的故障信號(hào)220
19.5 重新定義失敗并鼓勵(lì)評(píng)估風(fēng)險(xiǎn)221
19.6 向生產(chǎn)環(huán)境注入故障,培養(yǎng)系統(tǒng)彈性和學(xué)習(xí)氛圍222
19.7 設(shè)立故障演練日223
案例研究:CSG如何將故障轉(zhuǎn)化為有效的學(xué)習(xí)機(jī)會(huì)(2021)224
19.8 小結(jié)226
第 20章 將局部經(jīng)驗(yàn)轉(zhuǎn)化為全局改進(jìn)227
20.1 將可復(fù)用的標(biāo)準(zhǔn)流程自動(dòng)化228
20.2 創(chuàng)建組織級(jí)的單一共享源代碼倉(cāng)庫(kù)229
20.3 用自動(dòng)化測(cè)試記錄、交流實(shí)踐以傳播知識(shí)231
20.4 通過(guò)規(guī)范非功能性需求來(lái)設(shè)計(jì)運(yùn)維231
20.5 將可復(fù)用的運(yùn)維用戶故事融入開(kāi)發(fā)過(guò)程232
20.6 確保技術(shù)選型有助于組織達(dá)成目標(biāo)233
案例研究:Etsy的新技術(shù)棧標(biāo)準(zhǔn)化(2010年)234
案例研究:Target的眾包技術(shù)治理(2018年)235
20.7 小結(jié)236
第 21章 預(yù)留時(shí)間開(kāi)展組織學(xué)習(xí)和改進(jìn)237
21.1 將償還技術(shù)債務(wù)變?yōu)槔谢顒?dòng)238
21.2 讓所有人教學(xué)相長(zhǎng)239
21.3 在DevOps會(huì)議中分享經(jīng)驗(yàn)241
案例研究:美國(guó)全國(guó)保險(xiǎn)、Capital One和Target的內(nèi)部技術(shù)會(huì)議(2014年)242
21.4 創(chuàng)建社區(qū)結(jié)構(gòu)來(lái)推廣實(shí)踐243
21.5 小結(jié)245
第五部分 總結(jié)245
第六部分 整合信息安全、變更管理和合規(guī)性的技術(shù)實(shí)踐
第 22章 信息安全是每個(gè)人的日常工作249
22.1 將安全集成到開(kāi)發(fā)迭代演示249
22.2 將安全問(wèn)題納入缺陷跟蹤和事后分析250
22.3 將預(yù)防性安全控制集成到共享源代碼倉(cāng)庫(kù)及共享服務(wù)250
22.4 將安全集成到部署流水線252
22.5 保障應(yīng)用程序安全253
案例研究:Twitter的靜態(tài)安全測(cè)試(2009年)254
22.6 保障軟件供應(yīng)鏈安全256
22.7 保障環(huán)境安全261
案例研究:18F使用Compliance Masonry實(shí)現(xiàn)聯(lián)邦政府合規(guī)性審查自動(dòng)化(2016年)261
22.8 將信息安全集成到生產(chǎn)監(jiān)控系統(tǒng)262
22.8.1 為應(yīng)用程序創(chuàng)建安全監(jiān)控263
22.8.2 為環(huán)境創(chuàng)建安全監(jiān)控263
案例研究:Etsy的環(huán)境監(jiān)測(cè)(2010年)264
22.9 保護(hù)部署流水線265
案例研究:在Fannie Mae開(kāi)展安全左移(2020年)266
22.10 小結(jié)267
第 23章 保護(hù)部署流水線268
23.1 將安全和合規(guī)集成到變更審批流程268
23.2 將低風(fēng)險(xiǎn)的變更歸類為標(biāo)準(zhǔn)變更269
23.3 當(dāng)變更被歸類為常規(guī)變更時(shí)如何處理270
案例研究:Salesforce將自動(dòng)化基礎(chǔ)設(shè)施變更歸類為標(biāo)準(zhǔn)變更(2012年)270
23.4 通過(guò)代碼評(píng)審實(shí)現(xiàn)職責(zé)分離271
案例研究:Etsy的PCI合規(guī)性以及一則職責(zé)分離的警示故事(2014年)272
案例研究:通過(guò)業(yè)務(wù)與技術(shù)合作,Capital One實(shí)現(xiàn)每天10次有信心的發(fā)布(2020年)274
23.5 確保為合規(guī)官和審計(jì)師提供文檔和證據(jù)275
案例研究:證明監(jiān)管環(huán)境下的合規(guī)性(2015年)275
案例研究:ATM系統(tǒng)離不開(kāi)生產(chǎn)監(jiān)控(2013年)277
23.6 小結(jié)278
第六部分 總結(jié)278
附錄1:DevOps大融合286
附錄2:約束理論和長(zhǎng)期存在的根本矛盾288
附錄3:惡性循環(huán)列表289
附錄4:交接和隊(duì)列的危害289
附錄5:工業(yè)安全的誤區(qū)291
附錄6:豐田安燈繩291
附錄7:COTS軟件292
附錄8:事后分析會(huì)議(回顧會(huì)議)292
附錄9:猿猴軍團(tuán)293
附錄10:上線時(shí)間透明化294