前言与概述
伴随着企业业务的快速发展,为了支撑业务发展,提高 IT 对业务的支撑能力建设。在研发工程协同方面,希望加强代码管理,实现持续构建、自动化测试、自动化部署、自动化运维,同时加强产品的安全和质量管理;在研发管理协同方面,希望实现从需求提出、需求规划、需求设计需求设计、需求开发、需求测试、需求上线的端到端的管理,并支持瀑布模型和敏捷模型的项目开发。
研发运营一体化(devops) 能力成熟度模型
- DevOps 国内翻译为开发运维一体化,但目前人们更多关注的是在开发与测试域,运维域仅有自动化发布归属 DevOps。DevOps 作为最佳实践,旨在提高软件交付速度和质量,打通部门间壁垒,促进协同,做到了从需求到运维,端到端的流程打通和可视化。
- DevOps 平台基础版包括代码配置管理、自动化编译打包、自动化部署 / 发布;高级版除基础版模块外,还包括需求管理、项目管理、开发管理、测试管理等协同功能。
- 经过多年的发展和演进,DevOps 已经形成了较为完备的知识体系,那就是以精益管理为基础,敏捷管理、持续交付、IT 服务管理为支柱的知识体系。
下图为研发运营一体化能力成熟度模型图,旨在帮助企业更好地理解和规范 DevOps 的落地实施与应用。
研发运营面临的 “四大” 挑战
- 业务压力:激烈的市场竞争对业务提出更高的要求,数字化转型成为产业升级的重要抓手,快速、高效、高质量的交付业务价值。
- 技术压力:云原生等新技术在带来便捷的同时,也增加了交付与维护的复杂度,对技术人员提出了更高的要求。
- 效能压力:随着组织规模越来越大,多团队、多项目、多产品协作成本越来越高,单人效率日渐下降。
- 成本压力:研发运营成本日益高企;复合型人才稀缺。
信息化程度走高后,暴露的研发运营问题
-
团队之间、不同角色之间协同效率低(信息离散难回溯,沟通成本高、效率低)
- 任务的分配、状态追踪需要人工 (当面 / 邮件 / 会议等) 反馈、跟踪;
- 线下沟通,参与人员多,邮件多,会议多,沟通成本高;
- 风险 (比如延迟开发、SIT、UAT) 的反馈慢。
-
研发过程割裂,缺乏研发运营一体化平台(IT 资源管理成本高、无法做过程优化)
- 多个团队都有自己的研发工具,重复造轮子;
- 交付件、发布内容缺乏统一管理,没有版本规范,流程管理规范;
- 工具互不关联,数据无法集成,任务协调进度无法集成。
-
IT 侧的响应跟不上市场竞争节奏(市场商机稍纵即逝、IT 成本越堆越高)
- 业务迭代频率越来越高,现在的交付模式已经成为瓶颈;
- 发布过程复杂及人工操作时间久,发布涉及不同系统或数据库之间的前后发布依赖、部分复杂的应用;
- 前无法实现自动化发布,手工发布的系统比例较大。
-
系统可用性无法保障(用户流失、业务流程阻塞)
- 发布完成后,仅能做简单验证服务启动成功,对业务功能验证,并无好的方法;
- 线上服务没有故障快速发现,缺少自动化运维能力 (健康检查、弹性伸缩、 故障自恢复等)。