本書基于DevOps的文化和理念,介紹基于DevOps的研發(fā)流程一體化的過程。 本書分為理論篇和實(shí)踐篇。理論篇包括5章:DevOps誕生與發(fā)展,DevOps標(biāo)準(zhǔn)與落地框架,軟件交付,基礎(chǔ)設(shè)施即代碼,軟件質(zhì)量管理。實(shí)踐篇包括5章:DevOps基礎(chǔ)實(shí)踐,DaseDevOps示例程序,DaseDevOps測(cè)試用例,CI/CD實(shí)踐,發(fā)布平臺(tái)監(jiān)控與日志實(shí)踐。 本書內(nèi)容充實(shí)、結(jié)構(gòu)清楚,理論與實(shí)踐相結(jié)合,適合作為高校相關(guān)課程的教材,也適合DevOps初學(xué)者和從事該行業(yè)并需要提升DevOps技能的人員參考。
張琰彬,女,華東師范大學(xué)數(shù)據(jù)科學(xué)與工程學(xué)院教師,全民計(jì)算機(jī)科學(xué)教育研究中心,智能教育類產(chǎn)品負(fù)責(zé)人,CCF開源發(fā)展委員會(huì)執(zhí)行委員,長(zhǎng)期從事計(jì)算教育、開源教育、軟件項(xiàng)目設(shè)計(jì)、研發(fā)周期管理與質(zhì)量管理等領(lǐng)域工程和科研工作。在此之前先后就職于中興通訊北京研究院、SonicWall上海研發(fā)中心、英特爾亞太研發(fā)有限公司,英特爾亞太研發(fā)中心工作十年,曾擔(dān)任英特爾開源項(xiàng)目Open WebRTC Tooklit(OWT)測(cè)試架構(gòu)師與總負(fù)責(zé)人。
目 錄
理 論 篇
第1章 DevOps誕生與發(fā)展3
1.1 DevOps概述4
1.1.1 DevOps文化4
1.1.2 DevOps實(shí)踐5
1.1.3 DevOps生命周期5
1.2 DevOps的誕生7
1.2.1 DevOps的歷史7
1.2.2 DevOps的優(yōu)勢(shì)9
1.3 DevOps的現(xiàn)狀和發(fā)展趨勢(shì)10
1.3.1 DevOps的現(xiàn)狀10
1.3.2 DevOps的發(fā)展趨勢(shì)12
1.4 DevOps與開源17
本章小結(jié)19
參考文獻(xiàn)19
習(xí)題119
第2章 DevOps標(biāo)準(zhǔn)和落地框架20
2.1 DevOps標(biāo)準(zhǔn)概述21
2.2 DevOps標(biāo)準(zhǔn)主要內(nèi)容21
2.2.1 DevOps標(biāo)準(zhǔn)總體架構(gòu)21
2.2.2 DevOps標(biāo)準(zhǔn)名稱和主要內(nèi)容22
2.3 站點(diǎn)可靠性工程SRE27
2.3.1 SRE概述27
2.3.2 SRE的核心原則29
本章小結(jié)29
參考文獻(xiàn)29
習(xí)題230
第3章 軟件交付31
3.1 軟件交付流程介紹32
3.2 軟件交付涉及的工具32
3.3 持續(xù)集成35
3.4 持續(xù)部署38
3.5 漸進(jìn)式部署39
3.6 基于容器的交付40
本章小結(jié)45
參考文獻(xiàn)45
習(xí)題346
第4章 基礎(chǔ)設(shè)施即代碼47
4.1 傳統(tǒng)的基礎(chǔ)設(shè)施48
4.2 基礎(chǔ)設(shè)施即代碼48
4.3 GitOps實(shí)踐50
4.3.1 Argo CD50
4.3.2 Flux CD52
本章小結(jié)54
參考文獻(xiàn)54
習(xí)題454
第5章 軟件質(zhì)量管理55
5.1 測(cè)試自動(dòng)化56
5.1.1 測(cè)試自動(dòng)化與DevOps的關(guān)系56
5.1.2 測(cè)試數(shù)據(jù)構(gòu)造57
5.1.3 單元測(cè)試60
5.1.4 接口自動(dòng)化測(cè)試67
5.1.5 UI自動(dòng)化測(cè)試73
5.1.6 客戶端性能測(cè)試76
5.1.7 服務(wù)器性能測(cè)試79
5.1.8 兼容性測(cè)試89
5.1.9 客戶端穩(wěn)定性測(cè)試92
5.1.10 服務(wù)器穩(wěn)定性測(cè)試94
5.2 線上監(jiān)控體系97
5.2.1 接口自動(dòng)化巡檢97
5.2.2 UI自動(dòng)化巡檢99
5.2.3 用戶反饋監(jiān)控99
5.2.4 資源監(jiān)控102
5.2.5 業(yè)務(wù)質(zhì)量指標(biāo)監(jiān)控107
5.3 質(zhì)量標(biāo)準(zhǔn)化與可視化110
5.3.1 質(zhì)量標(biāo)準(zhǔn)化管理110
5.3.2 質(zhì)量標(biāo)準(zhǔn)化和可視化實(shí)施113
5.4 測(cè)試智能化118
5.4.1 測(cè)試智能化與DevOps的關(guān)系118
5.4.2 精準(zhǔn)測(cè)試118
5.4.3 引流測(cè)試120
5.4.4 契約測(cè)試124
5.4.5 MLOps簡(jiǎn)介127
本章小結(jié)130
參考文獻(xiàn)131
習(xí)題5131
實(shí) 踐 篇
第6章 DevOps基礎(chǔ)實(shí)踐135
6.1 阿里云容器鏡像云基礎(chǔ)實(shí)踐136
6.1.1 實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)環(huán)境136
6.1.2 實(shí)驗(yàn)步驟137
6.2 Git基礎(chǔ)實(shí)踐140
6.2.1 實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)環(huán)境140
6.2.2 實(shí)驗(yàn)步驟141
6.3 GitHub基礎(chǔ)實(shí)踐142
6.3.1 實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)環(huán)境143
6.3.2 實(shí)驗(yàn)步驟143
6.4 JihuLab基礎(chǔ)實(shí)踐149
6.4.1 實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)環(huán)境149
6.4.2 實(shí)驗(yàn)步驟149
6.5 Docker基礎(chǔ)實(shí)踐153
6.5.1 實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)環(huán)境153
6.5.2 實(shí)驗(yàn)步驟153
6.6 Python基礎(chǔ)實(shí)踐157
6.6.1 實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)環(huán)境157
6.6.2 實(shí)驗(yàn)步驟157
6.7 Java基礎(chǔ)實(shí)踐159
6.7.1 實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)環(huán)境159
6.7.2 實(shí)驗(yàn)步驟160
6.8 Node.js基礎(chǔ)實(shí)踐164
6.8.1 實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)環(huán)境164
6.8.2 實(shí)驗(yàn)步驟164
本章小結(jié)166
第7章 DaseDevOps示例程序167
7.1 Java微服務(wù)后端程序168
7.1.1 實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)環(huán)境168
7.1.2 實(shí)驗(yàn)步驟170
7.2 基于Vue的前端程序176
7.2.1 實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)環(huán)境176
7.2.2 實(shí)驗(yàn)步驟176
本章小結(jié)179
第8章 DaseDevOps測(cè)試用例180
8.1 靜態(tài)代碼掃描181
8.1.1 實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)環(huán)境181
8.2.2 實(shí)驗(yàn)步驟181
8.2 單元測(cè)試182
8.2.1 實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)環(huán)境183
8.2.2 實(shí)驗(yàn)步驟183
8.3 用戶界面測(cè)試用例190
8.3.1 實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)環(huán)境191
8.3.2 實(shí)驗(yàn)步驟191
8.4 接口測(cè)試用例198
8.4.1 實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)環(huán)境198
8.4.2 實(shí)驗(yàn)步驟199
8.5 壓力測(cè)試用例204
8.5.1 實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)環(huán)境206
8.5.2 實(shí)驗(yàn)步驟206
本章小結(jié)211
第9章 CI/CD實(shí)踐212
9.1 基于JihuLab的CI/CD213
9.1.1 實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)環(huán)境214
9.1.2 實(shí)驗(yàn)步驟214
9.2 基于GitHub的CI/CD220
9.2.1 實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)環(huán)境222
9.2.2 實(shí)驗(yàn)步驟222
9.3 基于Jenkins的CI/CD231
9.3.1 實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)環(huán)境232
9.3.2 實(shí)驗(yàn)步驟232
9.4 基于JihuLab+Argo的CI/CD242
9.4.1 實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)環(huán)境243
9.4.2 實(shí)驗(yàn)步驟244
本章小結(jié)254
第10章 發(fā)布平臺(tái)監(jiān)控與日志實(shí)踐255
10.1 監(jiān)控系統(tǒng)實(shí)踐256
10.1.1 實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)環(huán)境256
10.1.2 實(shí)驗(yàn)步驟256
10.2 日志系統(tǒng)實(shí)踐268
10.2.1 實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)環(huán)境268
10.2.2 實(shí)驗(yàn)步驟268
本章小結(jié)270