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