1、 ICS 35.020 CCS YD 中华人民共和国通信行业标准 YD/T 1755T2018 代替 YD/T 研发运营一体化( DevOps)能力成熟度 模型 第 3 部分:持续交付 The capability maturity model of DevOps Part 3: Continuous Delivery (报批稿) (本稿完成日期: 2018.12.18) -发布 -实施 中 华 人 民 共 和 国 工 业 和 信 息 化 部 发 布 YD/T 1755T2018 I 目 次 前 言 .IV 1 范围 .1 2 规范性引用文件 .1 3 术语和定义 .1 3.1 配置项 con
2、figuration item .1 3.2 制品 artifact .1 3.3 代码复杂度 code complexity .1 3.4 部署流水线 deployment pipeline .1 4 缩略语 .1 5 持续交付 .2 5.1 配置管理 .2 5.1.1 版本控制 .2 5.1.1.1 版本控制系统 .2 5.1.1.2 分支管理 .2 5.1.1.3 制品管理 .3 5.1.1.4 单一可信数据源 .3 5.1.2 变更管理 .4 5.1.2.1 变更过程 .4 5.1.2.2 变更追溯 .4 5.1.2.3 变更回滚 .4 5.2 构建与持续集成 .5 5.2.1 构建实
3、践 .5 5.2.1.1 构建方式 .5 5.2.1.2 构建环境 .5 5.2.1.3 构建计划 .5 5.2.1.4 构建职责 .5 5.2.2 持续集成 .6 5.2.2.1 集成服务 .6 5.2.2.2 集成频率 .6 5.2.2.3 集成方式 .6 5.2.2.4 反馈周期 .6 5.3 测试管理 .7 5.3.1 测试分层策略 .7 5.3.1.1 分层方法 .7 5.3.1.2 分层策略 .7 5.3.1.3 测试时机 .7 5.3.2 代码质量管理 .8 YD/T 1755T2018 II 5.3.2.1 质量规约 .8 5.3.2.2 检查方式 .8 5.3.2.3 反馈处
4、理 .8 5.3.3 自动化测试 .9 5.3.3.1 自动化设计 .9 5.3.3.2 自动化开发 .10 5.3.3.3 自动化执行 .10 5.3.3.4 自动化分析 .10 5.4 部署与发布管理 .11 5.4.1 部署与发布模式 .11 5.4.1.1 部署方式 .11 5.4.1.2 部署过程 .11 5.4.1.3 部署策略 .11 5.4.1.4 部署质量 .11 5.4.2 部署流水线 .12 5.4.2.1 协作模式 .12 5.4.2.2 流水线过程 .12 5.4.2.3 过程可视化 .12 5.5 环境管理 .13 5.5.1 环境类型 .13 5.5.2 环境构建
5、 .13 5.5.3 环境依赖与配置管理 .13 5.6 数据管理 .14 5.6.1 测试数据管理 .14 5.6.1.1 数据来源 .14 5.6.1.2 数据覆盖 .14 5.6.1.3 数据独立性 .14 5.6.2 数据变更管理 .15 5.6.2.1 变更过程 .15 5.6.2.2 兼容回滚 .15 5.6.2.3 数据监控 .15 5.7 度量与反馈 .16 5.7.1 度量指标 .16 5.7.1.1 度量指标定义 .16 5.7.1.2 度量指标类型 .16 5.7.1.3 度量数据管理 .16 5.7.1.4 度量指标更新 .16 5.7.2 度量驱动改进 .18 5.7
6、.2.1 内容和生成方式 .18 5.7.2.2 数据时效性 .18 5.7.2.3 覆盖范围 .18 5.7.2.4 反馈改进 .18 YD/T 1755T2018 III 前 言 研发运营一体化是指在 IT软件及相关服务的研发及交付过程中,将应用的需求、开发、测试、部 署和运营统一起来,基于整个组织的协作和应用架构的优化,实现敏捷开发、持续交付和应用运营的 无缝集成。帮助企业提升 IT效能,在保证稳定的同时,快速交付高质量的软件及服务,灵活应对快速 变化的业务需求和市场环境。 本标准是“研发运营一体化( DevOps)能力成熟度模型”系列标准的第 3 部分:持续交付,该系 列标准的结构和名
7、称如下 : 第 1部分:总体架构 第 2部分:敏捷开发管理 第 3部分:持续交付 第 4部分:技术运营 第 5部分:应用设计 第 6部分:安全及风险管理 第 7部分:评估方法 第 8部分:系统和工具技术要求 本标准 /本部分按照 GB/T 1.12009给出的规则起草。 请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别这些专利的责任。 本标准 /本部分由中国通信标准化协会提出并归口。 本标准 /本部分起草单位: 中国信息通信研究院、北京华佑科技有限公司、北京京东尚科信息技术 有限公司、北京百度网讯科技有限公司、中国移动通信集团有限公司、中兴通讯股份有限公司、阿里 巴巴(中国)有限
8、公司、深圳市腾讯计算机系统有限公司、华为技术有限公司 、中国联合网络通信集 团有限公司。 本标准 /本部分主要起草人: 石雪峰、景韵、栗蔚、萧田国、雷涛、顾宇、牛晓玲、陈镔、张新、 鞠炜刚、陈喻、黎嘉豪、毛茂德、李海传、徐奇琛、段新、孙辰星、程颖。 YD/T 1755T2018 1 1 范围 本标准规定了研发运营一体化( DevOps)能力成熟度模型下持续交付过程的能力成熟度要求和评 价方法。 本标准适用于具备 IT软件研发交付运营能力的组织实施 IT软件开发和服务过程的能力进行评价和 指导;可供其他相关行业或组织进行参考;也可作为第三方权威评估机构衡量软件开发交付成熟的标 准依据。 2 规范
9、性引用文件 下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅所注日期的版本适用于本 文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。 1 GB/T 32400-2015 信息技术 云计算 概览与词汇 2 GB/T 32399-2016 信息技术 云计算 参考架构 3 YD/2441-2013 互联网数据中心技术及分级分类标准 4 GB/T 33136-2016 信息技术服务数据中心服务能力成熟度模型 3 术语 和定义 下列术语和定义适用于本标准。 3.1 配置项 configuration item 即纳入配置管理范畴的工作成果,是保存系统和项目的相关配
10、置。 3.2 制品 artifact 即 构建过程的输出物,包括软件包,测试报告,应用配置文件等。 3.3 代码复杂度 code complexity 主要 度量指标为圈复杂度,即代码中线性独立路径的数量。 3.4 部署流水线 deployment pipeline 指软件从版本控制库到用户手中这一过程的自动化表现形式。 4 缩略语 研发运营一体化( DevOps)能力成熟度模型 第 3 部分:持续交付 YD/T 1755T2018 2 下列缩略语适用于本文件。 CI Continuous Integration 持续集成 CD Continuous Delivery 持续交付 UI User
11、 Interface 用户界面 API Application Programming Interface 应用程序编程接口 SMART Specific Measurable Attainable Relevant Time 具体的、可度量度、可实现的、 相关性和时效性原则 5 持续交付 持续交付是指持续的将各类变更(包括新功能、缺陷修复、配置变化、实验等)安全、快速、高 质量地落实到生产环境或用户手中的能力。 持续交付的分级技术要求包括:配置管理、构建与持续集成、测试管理、部署与发布管理、环境 管理、数据管理、度量与反馈等,如表 1所示。 表 1 持续交付分级技术要求 持续交付 配置管理
12、构建与持续 集成 测试管理 部署与发布 管理 环境管理 数据管理 度量与反馈 版本控制 构建实践 测试分层策 略 部署与发布 模式 环境管理 测试数据管 理 度量指标 变更管理 持续集成 代码质量管 理 部署流水线 数据变更管 理 度量驱动改 进 自动化测试 5.1 配置管理 配置管理是指所有与项目相关的产物,以及它们之间的关系都被唯一定义、修改、存储和检索的 过程,保证了软件版本交付生命周期过程中所有交付产物的完整性,一致性和可追溯性。 配置管理是持续交付的基础,是保障持续交付正确性的前提,良好设计的配置管理策略,可提高 组织协作的效率,改善产品价值交付流程。 配置管理可以分为版本控制和变更
13、管理两个维度表述。 5.1.1 版本控制 版本控制 是指通过记录软件开发过程中的源代码、配置、工具、环境、数据等的历史信息,快速 重现和访问任意一个修订版本。 版本控制是团队协作交付软件的基础,应支持所有变更历史的详细信息查询及共享,包括修改人 员、修改时间、文件内容以及注释信息等,通过有效信息共享,加快问题定位速度和沟通协作效率, 主要包括版本控制系统、分支管理、制品管理和单一可信数据源,如表 2 所示。 5.1.1.1 版本控制系统 版本控制系统是指通过记录一个或若干文件内容变化 ,能够查阅特定版本修订情况的系统 。 5.1.1.2 分支管理 分支管理是对软件研发过程中的分支和集成策略的管
14、理,分支策略代表了研发协作方式。 YD/T 1755T2018 3 5.1.1.3 制品管理 制品管理是对软件研发过程中生成的产物的管理,一般作为最终交付物完成发布和交付。 5.1.1.4 单一可信数据源 单一可信数据源是一种信息数据模型和关联模式,保证每个数据元素只存储一份,确保数据的一 致性。 表 2 版本控制 级别 版本控制系统 分支管理 制品管理 单一可信数据源 1 源代码分散在研发本地自行管理 无 构建产物分散在研发本地自行管理 无 2 1) 使用统一的版 本控制系统 2) 将全部源代码 纳入版本控制 系统管理 多条分支长期并行存 在且分支合并到主干 的周期长 1) 使用统一的制品库 管理构建产物 2) 有清晰的存储结构 3) 有唯一的版本号 4) 通过统一的制品库 地址进行构建产物 分发 开发测试部署环节所用 到的源代码来源于统一 版本控制系统 3 1) 将配置文件、 构建和部署等 自动化脚本纳 入版本控制系 统