持續集成與持續部署實踐
陳志勇 錢琪 孫金飛 李誠誠
買這商品的人也買了...
-
$320$250 -
$650$507 -
$680$530 -
$356精益產品開發:原則、方法與實施
-
$301代碼管理核心技術及實踐
-
$1,280$998 -
$454持續交付 2.0 業務引領的 DevOps 精要
-
$390$371 -
$580$493 -
$653Jenkins 2 權威指南 (Jenkins 2: Up and Running: Evolve Your Deployment Pipeline for Next Generation Automation)
-
$580$435 -
$403Jenkins2.x 實踐指南
-
$834$792 -
$857Kubernetes 權威指南:從 Docker 到 Kubernetes 實踐全接觸, 4/e
-
$454TypeScript 實戰指南
-
$250Robot Framework 自動化測試框架核心指南
-
$600$474 -
$454再也不踩坑的 kubernetes 實戰指南
-
$780$616 -
$590$466 -
$680$530 -
$454微服務容器化開發實戰
-
$1,000$780 -
$690$538 -
$780$616
相關主題
商品描述
本書結合實例介紹持續集成與持續部署過程中的相關知識,包括從源代碼管理(版本管理、代碼掃描、代碼審核)到集成部署(編譯打包、流水線、容器化部署),再到自動化測試(單元測試、接口測試),最後到生產發布(鏡像倉庫、鏡像管理、日誌管理、網絡管理、持久化方案、服務發現、服務編排等)的整個過程。參照書中內容即可在企業中落地持續集成與持續部署。
本書適合有志於投身運維的讀者,以及還處在手工部署環境中的測試團隊、運維團隊、開發團隊。由於可操作性較強,本書也適合作為大專院校相關專業師生的學慣用書和培訓學校的教材。
作者簡介
錢琪,曾任職於AMD、思科、中國電信、VMWare等企業,擅長測試開發、自動化測試、性能測試,擁有豐富的持續集成、持續部署實踐經驗。孫金飛,萬達網科質量管理部技術專家,曾擔任平安付、挖財等公司測試總監,服務過騰訊、淘寶、百度、平安、挖財等企業,擅長測試開發、自動化測試、測試管理、性能測試,擁有豐富的持續集成、持續部署實踐經驗。陳志勇(天勝),曾任職於諾亞舟、上汽通用、平安集團、中國電信等企業,從事DevOps開發、性能測試工作,擁有豐富的開發、項目管理、性能測試經驗,著有《全棧性能測試修煉寶典JMeter實戰》。李誠誠,翼支付消費金融事業群自動化測試專家,曾任職於平安付、挖財,擅長性能測試、自動化測試、測試開發,擁有豐富的持續集成、性能測試經驗。
目錄大綱
第1部分價值驅動
第1章為什麼要CI&CD 2
1.1 CI&CD的價值2
1.2 CI&CD帶來的變化3
1.3 CI&CD實施現狀4
1.4 CI&CD技術棧5
1.5大規模部署的煩惱6
1.6實施雲平台化7
1.7本章小結11
第二部分持續集成
第2章代碼管理14
2.1代碼版本管理工具GitLab 14
2.1.1安裝GitLab CE 14
2.1.2配置GitLab 24
2.1.3 GitLab的使用說明33
2.2代碼掃描和管理平台
SonarQube 42
2.2. 1 SonarQube平台的組成
結構和集成42
2.2.2 SonarQube服務器44
2.2.3 SonarQube掃描器52
2.2.4 SonarQube服務器的
界面56
2.3代碼審核工具Gerrit 65
2.3.1 Gerrit 65
2.3.2 Gerrit的安裝和配置66
2.3.3 GitWeb的安裝和配置75
2.3.4在Gerrit中集成LDAP
認證78
2.3.5 Gerrit和GitLab的
集成79
2.3.6 Gerrit的基本用法86
2.4本章小結92
第3章Jenkins基礎知識93
3.1 Jenkins 93
3.2 Jenkins的安裝94
3.2.1使用Docker安裝
Jenkins 94
3.2.2為CentOS虛擬機安裝
Jenkins 106
3.3 Jenkins Home目錄108
3.4 Jenkins的升級以及備份和
還原111
3.4.1升級Jenkins 111
3.4.2備份和還原Jenkins 111
3.5 Jenkins的分佈式構建模式114
3.6 Jenkins配置120
3.6.1 Jenkins界面120
3.6.2 Jenkins系統配置125
3.6.3 Jenkins全局安全配置130
3.6.4 Jenkins全局工具配置136
3.6.5 Jenkins CLI 140
3.7 Jenkins插件的配置和使用144
3.7.1強大的插件功能144
3.7.2安裝和更新插件145
3.8本章小結150
第4章持續集成實戰151
4.1源碼下拉和管理152
4.1.1創建任務152
4.1.2 Git源碼管理153
4.1.3憑據154
4.1.4分支管理158
4.1.5 Git源碼管理的附加
操作159
4.1.6拉取多個Git倉庫161
4.2 Maven源碼構建162
4.2.1構建一個Maven
項目162
4.2.2配置Build模塊164
4.3集成SonarQube進行代碼
掃描167
4.3.1對Sonar和Jenkins進行
集成167
4.3.2為Maven任務配置Sonar
掃描169
4.4觸發設定173
4.4.1定時構建173
4.4.2遠程構建174
4.4.3 GitLab觸發構建175
4.4.4 Gerrit觸發構建178
4.4.5其他工程構建後觸發184
4.5郵件提醒184
4.5.1 Jenkins全局配置184
4.5. 2在Jenkins任務中配置
郵件提醒185
4.5.3郵件模板配置187
4.6任務參數化配置197
4.6.1 Jenkins自帶常用
參數198
4.6.2 N0de參數199
4.6.3 Git參數201
4.6.4動態選擇參數203
4.7上下游任務設定207
4.8執行條件設定209
4.8.1設置Conditional step
(single) 210
4.8.2設置Conditional steps
(multiple) 214
4.9實例一:Git代碼提交觸發+Maven構建+代碼掃描+郵件通知214
4.9.1 Build部分配置215
4.9.2 Artifactory構建倉庫
配置215
4.10實例二:Git源碼下拉+參數化
構建+多環境部署219
4.10.1任務參數化220
4.10.2多項目代碼下拉222
4.10.3配置多階段子任務223
4.10.4在子任務之間傳遞部署
執行文件225
4.11 Pipeline和Blue Ocean 227
4.11.1 Jenkins Pipeline 227
4.11.2多分支流水線任務239
4.11.3通過Blue Ocean展示和
創建任務242
4.12在Jenkins中集成Kubernetes 245
4.12.1基於Kubernetes集群的
Jenkins 245
4.12.2安裝Jenkins Master 246
4.12.3配置Jenkins Master 252
4.12.4通過Pipeline腳本創建
動態Slave節點256
4.13本章小結258
第5章自動化測試集成259
5.1 Jenkins+Maven+JMeter 259
5.1.1環境準備259
5.1.2 Maven+JMeter執行260
5.1.3 Jenkins+Maven+JMeter
任務構建270
5.2 Jenkins+Robot Framework 270
5.2.1 Robot Framework介紹和
安裝270
5.2 .2在Robot Framework中
集成Jenkins 275
5.3本章小結283
第三部分持續部署
第6章持續部署設計286
6.1持續部署的問題286
6.2解決方案288
6.2.1 Rancher 289
6.2.2 Rancher運行機理291
6.2.3 Rancher如何解決持續
部署的問題293
6.3持續部署場景295
6.3.1單系統部署結構295
6.3.2普通集群部署結構296
6.3.3微服務系統部署結構296
6.3.4租戶隔離結構297
6.4本章小結297
第7章安裝環境298
7.1準備工作298
7.2安裝Docker 301
7.3安裝Rancher 302
7.3.1安裝Rancher HA
環境302
7.3.2添加本地賬戶306
7.3.3設置環境308
7.3.4添加主機309
7.4集成Harbor鏡像倉庫311
7.4.1下拉鏡像311
7.4.2配置312
7.4.3啟動容器313
7.4.4修改默認的HTTP
端口315
7.4.5集成Harbor到
Rancher中315
7.4.6測試連通316
7.4.7查看Harbor日誌319
7.4.8從Rancher商店集成
Harbor 319
7.5 Rancher名詞約定321
7.6本章小結324
第8章持續部署325
8.1單系統部署325
8.1.1源碼掃描、編譯、
打包326
8.1.2製作鏡像並上傳到
Harbor中327
8.1.3通過rancher-compose啟動
容器329
8.1.4在Jenkins中訪問
Rancher 332
8.2集群部署333
8.2.1部署多個實例334
8.2.2建立Load Balancer 335
8.2.3持續部署339
8.2.4用nginx作為
Load Balancer 340
8.3微服務部署343
8.3.1微服務部署需求343
8.3.2在Docker中實現日誌
統一收集345
8.3.3 filebeat與ELK的
集成348
8.3.4將Docker日誌傳遞到
ELK 352
8.3.5通過Docker日誌收集
log-pilot 353
8.4租戶隔離356
8.5同一鏡像的多環境發布357
8.6本章小結360
第9章網絡方案361
9.1 Docker網絡361
9.1.1 Host網絡361
9.1.2 Bridge網絡362
9.1.3 Container網絡363
9.1.4 none網絡363
9.2 Rancher網絡方案364
9.3 IPSec網絡366
9.3.1 IPSec的定義366
9.3.2 Rancher的IPSec網絡367
9.4 VXLAN 368
9.4.1什麼是VXLAN 368
9.4.2 Rancher的VXLAN
驅動369
9.5本章小結371
第10章服務管理372
10.1服務編排372
10.1.1 Add Service 372
10.1.2 Command 373
10.1.3 Volumes 374
10.1.4 Networking 375
10.1.5 Security/Host 376
10.2健康檢查379
10.3藍綠髮布380
10.4灰度發布381
10.5本章小結381
第11章鏡像倉庫規劃382
11.1鏡像倉庫的需求382
11.2鏡像倉庫規劃382
11.3複製Harbor鏡像383
11.3.1分別準備好測試與生產
環境的鏡像倉庫384
11.3.2設置複製策略384
11.4本章小結386
第12章存儲方案387
12.1存儲需求387
12.1.1文件存儲需求387
12.1.2對象存儲需求387
12.1.3塊存儲需求388
12.1.4分佈式存儲需求388
12.2常用方案389
12.3 Rancher NFS示例390
12.4本章小結394
第13章服務編排工具395
13.1 Rancher 2.0 395
13.2 Rancher 2.0體驗397
13.3本章小結398