持續集成與持續部署實踐

陳志勇 錢琪 孫金飛 李誠誠

  • 出版商: 人民郵電
  • 出版日期: 2019-06-01
  • 售價: $534
  • 貴賓價: 9.5$507
  • 語言: 簡體中文
  • ISBN: 7115506817
  • ISBN-13: 9787115506818

立即出貨

買這商品的人也買了...

相關主題

商品描述

本書結合實例介紹持續集成與持續部署過程中的相關知識,包括從源代碼管理(版本管理、代碼掃描、代碼審核)到集成部署(編譯打包、流水線、容器化部署),再到自動化測試(單元測試、接口測試),最後到生產發布(鏡像倉庫、鏡像管理、日誌管理、網絡管理、持久化方案、服務發現、服務編排等)的整個過程。參照書中內容即可在企業中落地持續集成與持續部署。

本書適合有志於投身運維的讀者,以及還處在手工部署環境中的測試團隊、運維團隊、開發團隊。由於可操作性較強,本書也適合作為大專院校相關專業師生的學慣用書和培訓學校的教材。

作者簡介

錢琪,曾任職於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