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