
《5G 时代的 DevOps 理论与实践》是亚信科技结合二十多年的大型软件研发管理经验和
DevOps理论,总结成的一套体系化、标准化的实践手册。全书共18章,分为四个部分:第一部分(第
1 章和第 2 章)探讨 DevOps 的基础与总体框架;第二部分(第 3~7 章)介绍与 DevOps 紧密相
关的敏捷的基础知识和理论;第三部分(第 8~11 章)详细介绍 DevOps 在不同领域的平台和工
具;第四部分(第 12~18 章)介绍多个行业的大型项目的落地实践案例,并在最后的第 18 章对
DevOps 的未来进行展望。
本书适合运营商、金融、能源等大型企业的研发效能相关人员,以及IT从业者(包括产品经理、
研发、测试、运维、敏捷教练等)阅读。
丛书序
2019 年 6 月 6 日,工信部正式向中国电信、中国移动、中国联通和中国广电四家企业发放了 5G 牌照,这意味着中国正式按下了 5G 商用的启动键。
两年多来,中国的 5G 基站装机量占据了世界总量的 2/3,地级以上城市已实现 5G 全覆盖;近 4 亿个 5G 终端连接,是全世界总量的 8 成;中国的 5G 专利数超过美日两国的总和,在全球遥遥领先;5G 在工业、经济等社会领域的应用示范项目数以万计……
两年多来,万众瞩目的 5G 与人工智能、云计算、大数据、物联网等新技术一起,改变个人生活,催生行业变革,加速经济转型,推动社会发展,正在打造一个“万物智联”的多维世界。
5G 带来个人生活方式的迭代。更加畅快的通信体验、无处不在的沉浸式AR/VR、智能安全的自动驾驶……这些都会因 5G 的到来而变成现实,给人类带来更加自由、丰富、健康的生活体验。
5G 带来行业的革新。受益于速率的提升、时延的改善、接入设备容量的增加,5G 触发的革新将从通信行业溢出,数字化改造得以加速,新技术的加持日趋显著,新的商业模式不断涌现,产业的升级将让千行百业脱胎换骨。
5G 带来多维的跨越。C 端消费与 B 端产业转型共振共生。“4G 改变生活,5G 改变社会”,5G 时代,普通消费者会因信息技术再一次升级而享受更多便捷,千行百业的数字化、智能化转型也会真正实现,两者互为表里,互相助推,把整个社会的变革提升到新高度。
近两年是 5G 在中国突飞猛进的两年,也是亚信科技战略转型升级取得突破性成果的两年。作为国内领先的软件与服务提供商、云网一体管理服务提供商,亚信科技紧扣时代发展节拍,积极拥抱 5G、云计算、大数据、人工智能、物联网等先进技术,积极开展创造性的技术产品研发演进,与业界客户、合作伙伴共同建设 5G+X 的生态体系,为 5G 赋能千行百业、企业数智化转型、产业可持续发展积极做出贡献。
在过去的两年中,亚信科技继续深耕通信业务支撑系统(Business Supporting System,BSS)的优势领域,为运营商的 5G 业务在中华大地全面商用持续提供强有力的支撑。
亚信科技抓住 5G 带来的 B & O 融合的机遇,将能力延展到 5G 网络运营支撑系统(Operation Supporting System,OSS)领域,公司打造的 5G 网络智能化产品在运营商中取得了多个商用局点的突破与落地实践,在帮助运营商优化 5G网络环境、提升 5G 服务体验的同时,公司也迈出了拓展 OSS 领域的坚实一步。
亚信科技在数字化运营—数据驱动软件即服务(Data-Driven Software as a Service,DSaaS)这一创新业务板块也取得了规模化突破。在金融、交通、能源、政府等多个领域,帮助行业客户打造“数智”能力,用大数据和人工智能技术,协助其获客、活客、留客,改善服务质量,实现行业运营数智化转型。
亚信科技在垂直行业市场服务领域进一步拓展,行业大客户版图进一步扩大,公司与云计算的各头部企业达成云 MSP 合作,持续提升云集成、云SaaS、云运营能力,并与其一起,帮助邮政、能源、政务、交通、金融、零售等数十个大型行业客户上云、用云,降低信息化支出,提升数字化效率,提高城市数智化水平,用数智化手段为政企带来实实在在的价值提升。
亚信科技同时积极强化、完善了技术创新与研发的体系和机制。在过去的两年中,多项关键技术与产品获得了国际和国家级奖项,诸多技术组合形成了国际与国家标准。5G+ABCDT 的灵动组合,重塑了包括亚信科技自身在内的行业技术生态体系。“5G 与 AI 技术大系”丛书是亚信科技在过去几年中,以匠心精神打造我国 5G 软件技术体系的创新成果与科研经验的总结。我们非常高兴能将这些阶段性成果以丛书的形式与行业伙伴们分享与交流。
我国经历了从2G落后、3G追随、4G同步,到5G领先的历程。在这个过程中,亚信科技从未缺席。在未来的 5G 时代,我们将继续坚持以技术创新为引领,与业界合作伙伴们共同努力,为提升我国 5G 科技和应用水平、为提高全行业的数智化水准、为国家新基建贡献力量。
高念书
2021 年 10 月于北京
在 5G“超高速率、超大连接、超低时延”三大特性的加持下,5G 正在成为全社会数字化转型的关键基础设施,推动各行各业的新应用、新业务和新模式不断涌现,并将催生大规模的新软件开发运维需求。传统软件开发交付的方式,以及与之相应的文化已经很难应对这样的变化。
站立 5G 时代的潮头,我们应该积极选择拥抱变化。笔者所在公司亚信科技的价值观是“关注客户、结果导向、开放协作、追求效能、拥抱变化”。
拥抱变化是亚信科技一直追寻的一个极其重要的方向。拥抱变化,开放协作,才能更好地面对挑战。DevOps 提出将开发(Development)和运维(Operation)相结合,提倡打破各部门之间的壁垒,端到端打通产品、设计、开发、测试、交付、运维、运营各方,组建起一个开放、包容、积极、协作的学习型组织,建立统一的团队目标和一致的认识,不断反馈和优化。
本书从 DevOps 释义概述开始,介绍当前与 DevOps 相关的各种热词,并尽量用相对通俗易懂的语言和简单的关系图进行阐述。通过对 DevOps 相关基础理论的详细解读,介绍敏捷开发的起源、敏捷宣言和敏捷十二原则,以及敏捷开发常用方法论和框架。在此基础上,对企业级的 DevOps 实践框架、知识框架、流水线概念、实践原则和模式等进行详细阐述。之后重点介绍企业级 DevOps 平台及工具,参照中国信息通信研究院 DevOps 通用框架,从项目管理域、应用开发域、测试域、运营运维域四个领域,进行业界通用工具的介绍,以及亚信科技企业级解决方案的综合阐述。通过电信行业、金融行业、能源行业三个典型 DevOps 应用实践的案例介绍,解读亚信科技是如何从敏捷文化、工具平台支撑、敏捷团队赋能等多个角度,帮助客户构建全面的 DevOps 体系的。DevOps 的落地是一个持续改进、不断提升的过程,通过对企业级 DevOps 文化实践的介绍,帮助读者更好地理解 DevOps 文化建设的核心及方法。最后对 DevOps 未来 10 年的发展进行展望。
本书由亚信科技研发中心编写,陆由负责内容的整体架构,编写组成员包括欧阳晔博士、薛浩、王林皓、肖国栋、蒋勇、殷利平、易宝红、黄元初、陈雅楠、张立颖、雷泽等。感谢朱军博士、张峰、英林海、王淑玲和齐宇的审阅工作。
由于编者水平和精力有限,不足之处在所难免,若读者不吝告知,我们将不胜感激。
编者
2021 年 10 月
目? 录
第一部分? DevOps 概述与总体架构
第 1 章 DevOps 概述 ·······································································2
1.1 DevOps 的音、形、义 ··································································· 2
1.2 瀑布、敏捷、精益和 DevOps ·························································· 3
1.3 Docker、Kubernetes、PaaS、微服务、云原生和 DevOps ······················· 6
1.4 ITOM、ITSM、SRE 和 DevOps ······················································10
第 2 章 企业级 DevOps 实践框架 ····················································· 13
2.1 DevOps 实践框架概述 ··································································13
2.2 DevOps 实践步骤详解 ··································································14
2.3 DevOps 实践底座 ········································································16
第二部分? DevOps 之敏捷开发
第 3 章 敏捷开发基础概念 ······························································ 21
3.1 敏捷开发起源·············································································21
3.1.1 敏捷思想的涌现 ···········································································21
3.1.2 敏捷宣言的诞生 ···········································································22
3.2 敏捷宣言解读·············································································22
3.3 敏捷十二原则解读·······································································25
3.4 敏捷开发常用方法论及框架···························································29
3.4.1 极限编程 ····················································································29
3.4.2 Scrum 框架 ··················································································30
3.4.3 特性驱动开发 ··············································································30
3.4.4 看板 ··························································································31
3.4.5 验收测试驱动开发 ········································································31
3.5 敏捷方法与 DevOps 体系的关系 ·····················································32
3.5.1 敏捷管理与 DevOps ·······································································32
3.5.2 Scrum、XP 与 DevOps ···································································33
第 4 章 Scrum 框架 ······································································· 34
4.1 Scrum 框架三大支柱 ····································································34
4.2 Scrum 价值观 ·············································································36
4.3 Scrum 框架中的角色 ····································································39
4.4 Scrum 框架中的工件 ····································································41
4.5 敏捷迭代与敏捷活动····································································43
4.6 Scrum 敏捷团队 ··········································································45
4.6.1 团队成员及职责 ···········································································46
4.6.2 团队构建要求 ··············································································53
第 5 章 敏捷需求形式与场景应用 ····················································· 57
5.1 软件需求···················································································57
5.1.1 软件需求的形式 ···········································································57
5.1.2 软件需求的管理 ···········································································59
5.2 用户故事···················································································60
5.2.1 编写原则 ····················································································61
5.2.2 故事点估算 ·················································································63
5.2.3 验收标准 ····················································································64
第 6 章 敏捷需求应用案例 ······························································ 66
6.1 案例背景···················································································66
6.2 沟通过程···················································································67
6.3 案例分析···················································································67
第 7 章 敏捷项目管理 ···································································· 69
7.1 软件项目特点·············································································69
7.1.1 不确定因素多 ··············································································69
7.1.2 研发过程监管难 ···········································································70
7.2 敏捷项目管理特点·······································································71
7.2.1 项目范围可调整 ···········································································71
7.2.2 组建固定的跨职能团队 ··································································71
7.2.3 给团队适当授权 ···········································································72
7.2.4 迭代式研发 ·················································································73
7.2.5 小批量多批次的交付 ·····································································74
7.3 Scrum 框架下项目管理实践 ··························································74
7.3.1 Scrum 框架内容与项目管理知识体系对应关系 ·····································74
7.3.2 Scrum 框架项目管理活动实践 ··························································75
第三部分? DevOps 平台及工具
第 8 章 DevOps 之项目管理 ···························································· 81
8.1 项目管理域概述··········································································81
8.2 项目管理域通用工具····································································81
8.3 项目管理域企业级解决方案···························································89
8.3.1 核心能力 ····················································································89
8.3.2 技术应用 ····················································································99
8.4 项目管理域场景应用·································································· 103
第 9 章 DevOps 之应用开发 ·························································· 105
9.1 应用开发域概述········································································ 105
9.2 应用开发域通用工具 ································································· 106
9.2.1 集成开发环境工具 ······································································ 106
9.2.2 代码托管工具 ············································································ 107
9.2.3 编译构建工具 ············································································ 108
9.2.4 流水线工具 ··············································································· 109
9.2.5 制品管理工具 ············································································ 110
9.3 应用开发域企业级解决方案························································· 112
9.3.1 核心能力 ·················································································· 113
9.3.2 技术应用 ·················································································· 129
9.4 应用开发域场景应用·································································· 131
9.4.1 开发环节 ·················································································· 132
9.4.2 测试环节 ·················································································· 133
9.4.3 预演环节 ·················································································· 134
9.4.4 生产交付环节 ············································································ 135
第 10 章 DevOps 之测试 ······························································ 137
10.1 测试域概述 ············································································ 137
10.1.1 测试原则 ················································································· 137
10.1.2 测试目标和对象 ········································································ 138
10.1.3 测试内容 ················································································· 138
10.2 测试域通用工具 ······································································ 138
10.2.1 接口测试 Postman ······································································ 139
10.2.2 UI(界面)测试 Selenium ···························································· 141
10.2.3 单元测试 JUnit ·········································································· 142
10.2.4 移动端测试 Appium ··································································· 144
10.2.5 性能测试 JMeter ······································································· 145
10.3 测试域企业级解决方案 ····························································· 146
10.3.1 核心能力 ················································································· 148
10.3.2 技术应用 ················································································· 176
10.4 测试域场景应用 ······································································ 177
第 11 章 DevOps 之运营运维 ························································ 179
11.1 运营运维域概述 ······································································ 179
11.1.1 资源管理 ················································································· 179
11.1.2 监控管理 ················································································· 180
11.1.3 变更管理 ················································································· 181
11.1.4 日志管理 ················································································· 182
11.1.5 CMDB ···················································································· 183
11.1.6 故障管理 ················································································· 183
11.2 运营运维域通用工具 ································································ 184
11.2.1 资源管理 ················································································· 184
11.2.2 监控管理 ················································································· 186
11.2.3 变更管理 ················································································· 188
11.2.4 日志管理 ················································································· 188
11.2.5 CMDB ···················································································· 189
11.2.6 故障管理 ················································································· 191
11.3 运营运维域企业级解决方案 ······················································· 192
11.3.1 核心能力 ················································································· 193
11.3.2 技术应用 ················································································· 205
11.4 运营运维域场景应用 ································································ 209
第四部分? DevOps 平台行业落地实践和未来展望
第 12 章 电信行业 DevOps 落地实践 ·············································· 216
12.1 某运营商集团公司 DevOps 落地实践 ············································ 216
12.1.1 背景介绍 ················································································· 216
12.1.2 落地方案 ················································································· 216
12.1.3 能力要求 ················································································· 217
12.1.4 对标梳理 ················································································· 217
12.1.5 亮点能力 ················································································· 219
12.1.6 实施策略 ················································································· 221
12.1.7 落地意义 ················································································· 221
12.2 某电信运营商省份公司 DevOps 落地实践 ······································ 222
12.2.1 背景与挑战 ·············································································· 222
12.2.2 问题分析与规划 ········································································ 222
12.2.3 DevOps 落地步骤 ······································································ 223
12.2.4 总结 ······················································································· 224
第 13 章 金融行业 DevOps 落地实践 ·············································· 226
13.1 某股份制商业银行 DevOps 落地实践 ············································ 226
13.1.1 工程实践 ················································································· 226
13.1.2 敏捷实践 ················································································· 237
13.2 某成熟金融科技公司 DevOps 落地实践 ········································· 262
13.2.1 确定目标 ················································································· 262
13.2.2 选好姿势 ················································································· 263
13.2.3 梳理全流程 ·············································································· 265
13.2.4 制定规范 ················································································· 266
13.2.5 分步实施 ················································································· 267
13.2.6 落地方案 ················································································· 267
13.3 某初创金融科技公司 DevOps 落地实践 ········································· 270
13.3.1 项目背景 ················································································· 270
13.3.2 组织架构制定 ··········································································· 270
13.3.3 外围系统关系梳理 ····································································· 271
13.3.4 项目现状调研 ··········································································· 271
13.3.5 流程梳理优化 ··········································································· 275
13.3.6 总结和回顾 ·············································································· 276
第 14 章 能源行业 DevOps 落地实践 ·············································· 277
14.1 项目背景 ··············································································· 277
14.2 倾听客户诉求 ········································································· 278
14.3 研发现状分析 ········································································· 279
14.4 制订实施计划 ········································································· 282
14.5 推动敏捷落地 ········································································· 283
14.6 整体回顾与总结 ······································································ 287
14.6.1 敏捷方法带动 DevOps 落地 ·························································· 287
14.6.2 敏捷改进逐步提升 ····································································· 288
14.6.3 敏捷教练的持久性问题 ······························································· 288
第 15 章 某 IT 科技公司 DevOps 落地实践 ······································· 289
15.1 项目背景 ··············································································· 289
15.2 代码统一管理 ········································································· 289
15.3 代码归档备份 ········································································· 293
15.4 版本及发布管理 ······································································ 299
15.5 代码安全管理 ········································································· 303
第 16 章 混沌工程实践 ································································· 305
16.1 混沌工程建设目标 ··································································· 305
16.2 混沌工程原则及项目落地设计 ···················································· 305
16.2.1 建立稳定状态的假设 ·································································· 306
16.2.2 多样化现实世界事件 ·································································· 306
16.2.3 在生产环境运行实验 ·································································· 307
16.2.4 持续自动化运行实验 ·································································· 307
16.3 工程实践遇到问题及方案 ·························································· 309
16.3.1 文化和观念的改变 ····································································· 309
16.3.2 权限授权和第三方对接 ······························································· 310
16.3.3 各地差异化故障服务需求 ···························································· 310
16.4 工程故障演练简单流程介绍 ······················································· 311
第 17 章 企业级 DevOps 文化建设实践 ··········································· 312
17.1 文化建设,宣贯先行 ································································ 312
17.1.1 敏捷开发文章专栏 ····································································· 313
17.1.2 敏捷开发知识可视化 ·································································· 313
17.1.3 案例专题演讲 ··········································································· 314
17.1.4 敏捷开发工作坊 ········································································ 314
17.2 敏捷教练人才培养是文化建设核心行动之一 ·································· 315
17.2.1 企业公开课 ·············································································· 315
17.2.2 敏捷训练营 ·············································································· 316
17.2.3 敏捷人才进阶实训 ····································································· 318
17.2.4 黑带大师竞赛 ··········································································· 319
17.3 为更多的团队进行敏捷开发能力评估和认证 ·································· 320
17.3.1 敏捷资质认证 ··········································································· 320
17.3.2 团队敏捷成熟度评估 ·································································· 321
17.3.3 企业内训敏捷认证 ····································································· 322
第 18 章 DevOps 未来展望 ··························································· 323
18.1 不再低调的 “低代码” ···························································· 324
18.1.1 低代码解决的问题 ····································································· 324
18.1.2 低代码的通用功能架构 ······························································· 324
18.1.3 低代码平台的核心技术 ······························································· 325
18.2 云原生中的原生 CI/CD ····························································· 328
18.3 “无处不在”的数字体验监控 ···················································· 330
缩略语与术语解释········································································· 332
全面翔实地阐述DevOps相关的基础理论知识;覆盖通信、金融、能源等多个行业的DevOps实例;分享企业级DevOps平台功能及设计架构;解析DevOps在云原生技术生态的定位
亚信科技(中国)有限公司(简称亚信科技,股票代码01675.HK)创建于1993年,是国内领先的软件产品、解决方案和服务提供商,致力于成为5G时代大型企业数字化转型的使能者。
公司积极拥抱5G、云计算、大数据、AI、物联网等先进的技术,依据“一巩固、三发展”的战略决策,依托产品、服务、运营和集成的能力,在传统业务方面,以5G为契机,全面布局,提升效能,巩固BSS市场的领导地位;在新兴业务方面,5G OSS网络智能化、DSaaS数字化运营服务、企业上云及垂直行业领域快速规模化发展。同时,公司将与业界伙伴共同建设生态体系,持续推动商业模式转型,为企业数字化转型和产业可持续发展贡献力量。
亚信科技拥有行业领先的研发能力和丰富的电信级软件产品,包括客户关系管理、计费账 务、大数据、物联网及5G网络智能化产品。大型企业客户来自金融、交通、邮政、能源、广电、零售、政务等行业。