本书基于DevOps的文化和理念,介绍基于DevOps的研发流程一体化的过程。 本书分为理论篇和实践篇。理论篇包括5章:DevOps诞生与发展,DevOps标准与落地框架,软件交付,基础设施即代码,软件质量管理。实践篇包括5章:DevOps基础实践,DaseDevOps示例程序,DaseDevOps测试用例,CI/CD实践,发布平台监控与日志实践。 本书内容充实、结构清楚,理论与实践相结合,适合作为高校相关课程的教材,也适合DevOps初学者和从事该行业并需要提升DevOps技能的人员参考。
张琰彬,女,华东师范大学数据科学与工程学院教师,全民计算机科学教育研究中心,智能教育类产品负责人,CCF开源发展委员会执行委员,长期从事计算教育、开源教育、软件项目设计、研发周期管理与质量管理等领域工程和科研工作。在此之前先后就职于中兴通讯北京研究院、SonicWall上海研发中心、英特尔亚太研发有限公司,英特尔亚太研发中心工作十年,曾担任英特尔开源项目Open WebRTC Tooklit(OWT)测试架构师与总负责人。
目 录
理 论 篇
第1章 DevOps诞生与发展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的优势9
1.3 DevOps的现状和发展趋势10
1.3.1 DevOps的现状10
1.3.2 DevOps的发展趋势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 持续集成35
3.4 持续部署38
3.5 渐进式部署39
3.6 基于容器的交付40
本章小结45
参考文献45
习题346
第4章 基础设施即代码47
4.1 传统的基础设施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 测试数据构造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 客户端稳定性测试92
5.1.10 服务器稳定性测试94
5.2 线上监控体系97
5.2.1 接口自动化巡检97
5.2.2 UI自动化巡检99
5.2.3 用户反馈监控99
5.2.4 资源监控102
5.2.5 业务质量指标监控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 实验目的和实验环境136
6.1.2 实验步骤137
6.2 Git基础实践140
6.2.1 实验目的和实验环境140
6.2.2 实验步骤141
6.3 GitHub基础实践142
6.3.1 实验目的和实验环境143
6.3.2 实验步骤143
6.4 JihuLab基础实践149
6.4.1 实验目的和实验环境149
6.4.2 实验步骤149
6.5 Docker基础实践153
6.5.1 实验目的和实验环境153
6.5.2 实验步骤153
6.6 Python基础实践157
6.6.1 实验目的和实验环境157
6.6.2 实验步骤157
6.7 Java基础实践159
6.7.1 实验目的和实验环境159
6.7.2 实验步骤160
6.8 Node.js基础实践164
6.8.1 实验目的和实验环境164
6.8.2 实验步骤164
本章小结166
第7章 DaseDevOps示例程序167
7.1 Java微服务后端程序168
7.1.1 实验目的和实验环境168
7.1.2 实验步骤170
7.2 基于Vue的前端程序176
7.2.1 实验目的和实验环境176
7.2.2 实验步骤176
本章小结179
第8章 DaseDevOps测试用例180
8.1 静态代码扫描181
8.1.1 实验目的和实验环境181
8.2.2 实验步骤181
8.2 单元测试182
8.2.1 实验目的和实验环境183
8.2.2 实验步骤183
8.3 用户界面测试用例190
8.3.1 实验目的和实验环境191
8.3.2 实验步骤191
8.4 接口测试用例198
8.4.1 实验目的和实验环境198
8.4.2 实验步骤199
8.5 压力测试用例204
8.5.1 实验目的和实验环境206
8.5.2 实验步骤206
本章小结211
第9章 CI/CD实践212
9.1 基于JihuLab的CI/CD213
9.1.1 实验目的和实验环境214
9.1.2 实验步骤214
9.2 基于GitHub的CI/CD220
9.2.1 实验目的和实验环境222
9.2.2 实验步骤222
9.3 基于Jenkins的CI/CD231
9.3.1 实验目的和实验环境232
9.3.2 实验步骤232
9.4 基于JihuLab+Argo的CI/CD242
9.4.1 实验目的和实验环境243
9.4.2 实验步骤244
本章小结254
第10章 发布平台监控与日志实践255
10.1 监控系统实践256
10.1.1 实验目的和实验环境256
10.1.2 实验步骤256
10.2 日志系统实践268
10.2.1 实验目的和实验环境268
10.2.2 实验步骤268
本章小结270