注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)計(jì)算機(jī)科學(xué)理論與基礎(chǔ)知識(shí)持續(xù)交付圖解

持續(xù)交付圖解

持續(xù)交付圖解

定 價(jià):¥128.00

作 者: [美] 克里斯蒂·威爾遜(Christie Wilson)著 姚冬,高俊寧,胡帥,劉志超 譯
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買這本書可以去


ISBN: 9787302679219 出版時(shí)間: 2025-03-01 包裝: 平裝-膠訂
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  請(qǐng)讓你的代碼庫(kù)隨時(shí)保持可發(fā)布狀態(tài)。持續(xù)交付流水線可以實(shí)現(xiàn)自動(dòng)化版本控制、自動(dòng)測(cè)試和自動(dòng)部署,將開(kāi)發(fā)人員的干預(yù)降至最低。掌握持續(xù)交付的工具和實(shí)踐,你將能夠快速且一致地添加功能和推送更新?!冻掷m(xù)交付圖解》是建立和使用持續(xù)交付流水線的友好指南。每一章都介紹了在設(shè)置CD系統(tǒng)時(shí)將面臨的不同場(chǎng)景,包括自動(dòng)擴(kuò)展和測(cè)試遺留應(yīng)用程序等現(xiàn)實(shí)問(wèn)題的示例。作者Christie Wilson采用與具體工具無(wú)關(guān)的方法,通過(guò)插圖、清晰的解釋和實(shí)踐練習(xí)來(lái)指導(dǎo)你的每一步學(xué)習(xí)。主要內(nèi)容•為新項(xiàng)目和遺留項(xiàng)目設(shè)計(jì)有效的CD流水線•確保你的流水線在適當(dāng)?shù)臅r(shí)候發(fā)出正確的信號(hào)•將版本控制作為真相的來(lái)源•安全地自動(dòng)化部署

作者簡(jiǎn)介

  Christie Wilson是一名軟件工程師。她經(jīng)常在Kubecon、OSCON、QCon、PyCon等會(huì)議上就CI/CD及相關(guān)主題發(fā)表演講。Christie的職業(yè)生涯始于移動(dòng)端Web應(yīng)用開(kāi)發(fā)。在從事AAA游戲的后端開(kāi)發(fā)時(shí),她編寫的功能通常在系統(tǒng)大規(guī)模發(fā)布后才會(huì)被許多人同時(shí)使用。為此,她構(gòu)建了負(fù)載和系統(tǒng)測(cè)試平臺(tái)。憑借處理復(fù)雜部署環(huán)境、核心關(guān)鍵系統(tǒng)和應(yīng)對(duì)突發(fā)流量的經(jīng)驗(yàn),她加入了Google并從事相關(guān)方向的工作。在Google,她為AppEngine、boot-strapped Knative構(gòu)建了內(nèi)部生產(chǎn)力工具,并創(chuàng)建了Tekton,這是一個(gè)基于Kubernetes(目前有65家以上的公司參與)構(gòu)建的云原生CI/CD平臺(tái)。

圖書目錄

第Ⅰ部分 持續(xù)交付入門1
第1章 歡迎閱讀本書3
1.1 你需要持續(xù)交付嗎4
1.2 為什么要持續(xù)交付5
1.3 持續(xù)交付7
1.4 集成8
1.5 持續(xù)集成9
1.6 我們能交付什么10
1.7 交付11
1.8 持續(xù)交付/持續(xù)部署12
1.9 持續(xù)交付的要素13
1.10 結(jié)論14
1.11 本章小結(jié)14
1.12 接下來(lái)……14
第2章 基礎(chǔ)流水線15
2.1 貓咪圖片網(wǎng)站16
2.2 貓咪圖片網(wǎng)站源碼17
2.3 貓咪圖片網(wǎng)站流水線18
2.4 什么是流水線,什么是任務(wù)19
2.5 CD流水線中的基礎(chǔ)任務(wù)20
2.6 門禁與轉(zhuǎn)換21
2.7 CD:門禁機(jī)制與轉(zhuǎn)換22
2.8 貓咪圖片網(wǎng)站服務(wù)流水線23
2.9 運(yùn)行流水線24
2.10 每天都運(yùn)行一次25
2.11 嘗試持續(xù)集成26
2.12 使用通知27
2.13 拓展手動(dòng)工作28
2.14 通過(guò)webhook自動(dòng)化29
2.15 拓展webhook30
2.16 在流水線出現(xiàn)問(wèn)題時(shí)不要提交代碼變更31
2.17 貓咪圖片網(wǎng)站的CD32
2.18 名稱中的學(xué)問(wèn)33
2.19 結(jié)論34
2.20 本章小結(jié)34
2.21 接下來(lái)……34
第Ⅱ部分 讓軟件一直保持在可交付狀態(tài)35
第3章 版本控制是發(fā)布軟件的唯一方式37
3.1 Sasha和Sarah的創(chuàng)業(yè)38
3.2 所有類型的數(shù)據(jù)39
3.3 源碼與軟件40
3.4 代碼庫(kù)和版本41
3.5 持續(xù)交付和版本控制42
3.6 Git和GitHub43
3.7 第一次代碼提交——出錯(cuò)啦44
3.8 主分支出錯(cuò)45
3.9 推送與拉取46
3.10 我們?cè)谶M(jìn)行持續(xù)交付嗎48
3.11 讓版本控制系統(tǒng)保持可發(fā)布狀態(tài)49
3.12 代碼變更提交到版本控制系統(tǒng)時(shí)的觸發(fā)器50
3.13 觸發(fā)用戶服務(wù)流水線51
3.14 構(gòu)建用戶服務(wù)52
3.15 云端的用戶服務(wù)53
3.16 連接RandomCloud數(shù)據(jù)庫(kù)54
3.17 管理用戶服務(wù)55
3.18 用戶服務(wù)宕機(jī)56
3.19 被自動(dòng)化打敗57
3.20 什么是可信代碼源58
3.21 用戶服務(wù)的配置即代碼60
3.22 配置Deployaker62
3.23 配置即代碼63
3.24 發(fā)布軟件與配置變更64
3.25 結(jié)論66
3.26 本章小結(jié)66
3.27 接下來(lái)……66
第4章 有效使用靜態(tài)代碼檢查67
4.1 Becky和超級(jí)游戲控制臺(tái)68
4.2 采用靜態(tài)代碼檢查解決問(wèn)題69
4.3 關(guān)于靜態(tài)代碼檢查的內(nèi)幕70
4.4 Pylint的故事和很多問(wèn)題71
4.5 遺留代碼:使用系統(tǒng)化方法72
4.6 第1步:根據(jù)編碼規(guī)范進(jìn)行配置73
4.7 第2步:建立基線74
4.8 第3步:在提交時(shí)強(qiáng)制執(zhí)行75
4.9 向流水線添加強(qiáng)制執(zhí)行76
4.10 第4步:分而治之77
4.11 隔離:不是所有問(wèn)題都應(yīng)該修復(fù)78
4.12 強(qiáng)制隔離79
4.13 并非所有問(wèn)題都同等重要80
4.14 靜態(tài)代碼檢查問(wèn)題的類型81
4.15 缺陷優(yōu)先,風(fēng)格其后82
4.16 克服重重障礙83
4.17 結(jié)論85
4.18 本章小結(jié)85
4.19 接下來(lái)……85
第5章 處理有噪聲的測(cè)試87
5.1 持續(xù)交付和測(cè)試88
5.2 “全民冰淇淋”停機(jī)事件89
5.3 信號(hào)與噪聲90
5.4 噪聲的成功91
5.5 失敗是如何變成噪聲的92
5.6 從噪聲到信號(hào)94
5.7 讓測(cè)試通過(guò)(變綠)95
5.8 又一次停機(jī)96
5.9 通過(guò)測(cè)試仍然可能會(huì)有噪聲97
5.10 修復(fù)測(cè)試失敗98
5.11 失敗的方式:脆弱的測(cè)試99
5.12 對(duì)失敗做出反應(yīng)100
5.13 修復(fù)測(cè)試:修改代碼或測(cè)試101
5.14 重試的危險(xiǎn)102
5.15 重試重新訪問(wèn)103
5.16 為什么要重試105
5.17 變綠并保持綠色106
5.18 結(jié)論108
5.19 本章小結(jié)108
5.20 接下來(lái)……108
第6章 讓那些緩慢的測(cè)試套件變得更快109
6.1 狗狗圖片網(wǎng)站110
6.2 當(dāng)流水線過(guò)于簡(jiǎn)單時(shí)111
6.3 新工程師試圖提交代碼112
6.4 測(cè)試和持續(xù)交付113
6.5 診斷:速度太慢114
6.6 測(cè)試金字塔115
6.7 先運(yùn)行執(zhí)行快的測(cè)試用例116
6.8 兩條流水線117
6.9 獲得正確的平衡118
6.10 改變金字塔比例119
6.11 安全地調(diào)整測(cè)試用例120
6.12 測(cè)試覆蓋率121
6.13 強(qiáng)制要求測(cè)試覆蓋率122
6.14 流水線中的測(cè)試覆蓋率123
6.15 在具備覆蓋率的金字塔中移動(dòng)測(cè)試用例124
6.16 沿著金字塔往下移動(dòng)什么125
6.17 遺留的測(cè)試用例和FUD127
6.18 并行運(yùn)行測(cè)試用例128
6.19 何時(shí)可以并行運(yùn)行測(cè)試用例129
6.20 更新流水線130
6.21 還是太慢了131
6.22 分片測(cè)試,又稱并行 132
6.23 如何分片133
6.24 更復(fù)雜的分片134
6.25 分片流水線135
6.26 對(duì)瀏覽器測(cè)試套件進(jìn)行分片136
6.27 流水線中的分片137
6.28 狗狗圖片網(wǎng)站的流水線138
6.29 結(jié)論142
6.30 本章小結(jié)142
6.31 接下來(lái)……142
第7章 在正確的時(shí)間發(fā)出正確的信號(hào)143
7.1 CoinExCompare網(wǎng)站144
7.2 代碼變更的生命周期145
7.3 僅在代碼合并前進(jìn)行的CI146
7.4 代碼變更出錯(cuò)的時(shí)間線147
7.5 僅在合并前運(yùn)行的CI未命中缺陷148
7.6 兩張圖的故事:默認(rèn)為7天149
7.7 兩張圖的故事:默認(rèn)為30天150
7.8 沖突并不是總會(huì)被發(fā)現(xiàn)151
7.9 單元測(cè)試呢152
7.10 PR觸發(fā)器仍然會(huì)讓缺陷潛入153
7.11 合并前以及合并后的CI154
7.12 選項(xiàng)1:定期運(yùn)行CI155
7.13 選項(xiàng)1:設(shè)置定期運(yùn)行的CI156
7.14 選項(xiàng)2:要求特性分支是最新的157
7.15 選項(xiàng)2:成本是多少158
7.16 選項(xiàng)3:自動(dòng)合并CI159
7.17 選項(xiàng)3:使用最新的主分支運(yùn)行CI160
7.18 選項(xiàng)3:合并事件161
7.19 選項(xiàng)3:合并隊(duì)列162
7.20 選項(xiàng)3:CoinExCompare網(wǎng)站的合并隊(duì)列163
7.21 哪里還會(huì)發(fā)生錯(cuò)誤165
7.22 測(cè)試脆弱性和PR觸發(fā)的CI166
7.23 通過(guò)定期測(cè)試捕獲脆弱的測(cè)試167
7.24 缺陷和構(gòu)建168
7.25 CI與構(gòu)建和部署169
7.26 使用相同的邏輯構(gòu)建和部署170
7.27 通過(guò)構(gòu)建改進(jìn)CI流水線171
7.28 重新審視代碼變更時(shí)間表172
7.29 結(jié)論174
7.30 本章小結(jié)174
7.31 接下來(lái)……174
第Ⅲ部分 讓交付變得簡(jiǎn)單175
第8章 輕松交付從版本控制出發(fā)177
8.1 回到Watch Me Watch項(xiàng)目178
8.2 DORA指標(biāo)179
8.3 如果我不運(yùn)行服務(wù)呢181
8.4 Watch Me Watch 與精英效能團(tuán)隊(duì)183
8.5 給Watch Me Watch提升速率184
8.6 與AllCatsAllTheTime集成 185
8.7 主干開(kāi)發(fā)186
8.8 特性增量式交付187
8.9 跳過(guò)測(cè)試的提交188
8.10 代碼評(píng)審和“不完整”的代碼189
8.11 保持這個(gè)勢(shì)頭191
8.12 提交不完整的代碼192
8.13 評(píng)審進(jìn)行中的代碼193
8.14 與此同時(shí),讓我們回到端到端測(cè)試194
8.15 可見(jiàn)的好處195
8.16 不斷縮短的變更前置時(shí)間197
8.17 繼續(xù)AllCatsAllTheTime開(kāi)發(fā)198
8.18 部署窗口和代碼凍結(jié)199
8.19 速率提高200
8.20 結(jié)論201
8.21 本章小結(jié)201
8.22 接下來(lái)……201
第9章 安全可靠的構(gòu)建203
9.1 Top Dog Maps204
9.2 當(dāng)構(gòu)建流程僅僅記錄在文檔中時(shí)205
9.3 安全和可靠構(gòu)建的屬性206
9.4 始終可發(fā)布208
9.5 自動(dòng)化構(gòu)建209
9.6 構(gòu)建即代碼210
9.7 使用CD服務(wù)211
9.8 臨時(shí)構(gòu)建環(huán)境212
9.9 Miguel的計(jì)劃213
9.10 從純文檔到擁有版本控制的腳本 214
9.11 自動(dòng)化容器化構(gòu)建215
9.12 安全和可靠的構(gòu)建流程217
9.13 接口的變更和導(dǎo)致的缺陷219
9.14 當(dāng)構(gòu)建產(chǎn)生缺陷時(shí)220
9.15 構(gòu)建與溝通221
9.16 語(yǔ)義化版本控制222
9.17 版本控制的重要性223
9.18 又一次故障!225
9.19 構(gòu)建時(shí)依賴導(dǎo)致的錯(cuò)誤226
9.20 鎖定依賴項(xiàng)版本227
9.21 僅僅鎖定版本還不足夠228
9.22 鎖定哈希值229
9.23 結(jié)論231
9.24 本章小結(jié)231
9.25 接下來(lái)……231
第10章 可信賴的部署233
10.1 部署困擾不斷234
10.2 DORA的穩(wěn)定性指標(biāo)235
10.3 Plenty of Woofs的DORA指標(biāo)237
10.4 減少部署頻率嗎238
10.5 增加部署頻率嗎239
10.6 每日部署與故障240
10.7 增加部署頻率的步驟241
10.8 修復(fù)流程中的問(wèn)題242
10.9 滾動(dòng)更新243
10.10 通過(guò)滾動(dòng)更新修復(fù)缺陷244
10.11 回滾245
10.12 回滾策略 = 即時(shí)改善246
10.13 回滾策略實(shí)戰(zhàn)248
10.14 藍(lán)綠部署249
10.15 使用藍(lán)綠部署加速故障恢復(fù)時(shí)間250
10.16 金絲雀發(fā)布更快且更穩(wěn)定251
10.17 金絲雀部署的前提條件252
10.18 金絲雀發(fā)布的基線254
10.19 金絲雀發(fā)布的服務(wù)恢復(fù)時(shí)間255
10.20 增加部署頻率257
10.21 每日金絲雀發(fā)布策略下的DORA指標(biāo)258
10.22 持續(xù)部署259
10.23 使用持續(xù)部署的時(shí)機(jī)260
10.24 強(qiáng)制性的QA階段261
10.25 QA與持續(xù)部署262
10.26 精英效能團(tuán)隊(duì)264
10.27 結(jié)論265
10.28 本章小結(jié)265
10.29 接下來(lái)……265
第Ⅳ部分 設(shè)計(jì)持續(xù)交付267
第11章 啟動(dòng)包:從零到CD269
11.1 啟動(dòng)包:概覽270
11.2 回顧:通用的CD流水線任務(wù)271
11.3 典型的發(fā)布流水線272
11.4 典型的CI流水線273
11.5 兩條都帶觸發(fā)器的流水線274
11.6 綠地項(xiàng)目:邁向CD276
11.7 Gulpy277
11.8 綠地項(xiàng)目:從零到CD278
11.9 第一步:它能構(gòu)建嗎279
11.10 選擇CD系統(tǒng)280
11.11 建立初始的自動(dòng)化281
11.12 代碼的狀態(tài):靜態(tài)代碼檢查282
11.13 代碼的狀態(tài):?jiǎn)卧獪y(cè)試283
11.14 代碼的狀態(tài):覆蓋率284
11.15 超越CI:發(fā)布285
11.16 部署286
11.17 擴(kuò)展測(cè)試287
11.18 集成測(cè)試和端到端測(cè)試的任務(wù)288
11.19 完成CI流水線289
11.20 Gulpy完整的流水線290
11.21 遺留項(xiàng)目:邁向CD291
11.22 Rebellious Hamster292
11.23 第一步:確定增量目標(biāo)的優(yōu)先級(jí)293
11.24 首先關(guān)注痛點(diǎn)294
11.25 Rebellious Hamster的痛點(diǎn)295
11.26 知道何時(shí)出現(xiàn)了問(wèn)題296
11.27 隔離并添加測(cè)試297
11.28 具有更多測(cè)試的遺留項(xiàng)目流水線298
11.29 使部署更加自動(dòng)化299
11.30 創(chuàng)建發(fā)布流水線300
11.31 Rebellious Hamster的發(fā)布流水線301
11.32 Rebellious Hamster的完整流水線302
11.33 結(jié)論303
11.34 本章小結(jié)303
11.35 接下來(lái)……303
第12章 腳本也是代碼305
12.1 Purrfect Bank306
12.2 CD的問(wèn)題307
12.3 Purrfect Bank的CD概覽308
12.4 支付組織的Bash腳本庫(kù)309
12.5 交易服務(wù)流水線310
12.6 從一個(gè)大腳本演化311
12.7 設(shè)計(jì)良好任務(wù)的原則312
12.8 打破巨型任務(wù)313
12.9 更新后的交易服務(wù)流水線314
12.10 調(diào)試Bash庫(kù)315
12.11 調(diào)查Bash庫(kù)的缺陷316
12.12 為什么會(huì)引入這個(gè)缺陷317
12.13 Bash的作用318
12.14 何時(shí)Bash不太好319
12.15 shell腳本與通用語(yǔ)言321
12.16 從shell腳本到通用編程語(yǔ)言322
12.17 遷移計(jì)劃323
12.18 從Bash庫(kù)到擁有Bash的任務(wù)324
12.19 任務(wù)內(nèi)的可重用Bash325
12.20 從Bash到Python326
12.21 任務(wù)即代碼327
12.22 CD腳本也是代碼328
12.23 結(jié)論329
12.24 本章小結(jié)329
12.25 接下來(lái)……329
第13章 流水線設(shè)計(jì)331
13.1 PetMatch332
13.2 匹配服務(wù)CD流水線333
13.3 CD流水線問(wèn)題334
13.4 端到端測(cè)試流水線335
13.5 端到端測(cè)試流水線和錯(cuò)誤336
13.6 最終行為337
13.7 圖形化最終部分338
13.8 匹配服務(wù)流水線中的最終行為339
13.9 端到端測(cè)試流水線和速度340
13.10 并行執(zhí)行任務(wù)341
13.11 端到端測(cè)試流水線和測(cè)試速度342
13.12 并行執(zhí)行和測(cè)試分片343
13.13 帶有分片的端到端測(cè)試流水線344
13.14 端到端測(cè)試流水線和信號(hào)345
13.15 單一CI流水線346
13.16 發(fā)布流水線與信號(hào)347
13.17 CI流水線的差異348
13.18 合并流水線349
13.19 發(fā)布流水線350
13.20 發(fā)布流水線中的硬編碼351
13.21 通過(guò)參數(shù)化復(fù)用流水線352
13.22 使用可重用的流水線353
13.23 更新后的流水線354
13.24 解決PetMatch的CD問(wèn)題355
13.25 期待的CD功能356
13.26 結(jié)論357
13.27 本章小結(jié)357
13.28 接下來(lái)……357
附錄359
附錄A  -- CD系統(tǒng)361
附錄B -- 版本控制系統(tǒng)371

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)