1. 研发效能与 DEVOPS

业务应用的生命周期核心可分为 开发运行运维*运营四个大阶段。

开发阶段核心是实现业务需求,从早期的需求分析调研、方案架构设计到需求实现和测试,其目标都是实现业务需求。

运行阶段核心是将实现的业务需求即代码,部署运行起来提供服务,产生业务价值。

运维阶段核心是保障业务服务的稳定性和高可用性,使业务价值的产生具有持续性。

运营阶段的核心是让业务服务的价值最大化,提升或创造新的的业务价值。

1.1. 开发阶段需要高效生产

在开发阶段中快速交付与创新可以有多种方式,如传统的编码开发、新型的低代码开发,以及介于两者之间的编排组装式开发。对于编码开发,

在整体文章开始,先抛出我的理解,在一个限定的范围内描述本文核心内容,否则我觉得很难在这一篇文章中描述清楚中心观点。我的观点是:DEVOPS 概念不准确、定位不清晰,研发效能或持续交付更合适。在研发效能的主题下,本文侧重软件的生产和发布,不会过多的涉及软件架构设计、高可用、运维、运营等相关事项。

在企业生产经营过程中,软件是业务逻辑的数字化信息化,是业务价值的核心载体;而软件本身的开发与运行是企业成本和损耗,在企业总营收不变的情况下需要通过降低成本来提升利润,因此有了对 IT 建设提出降本增效的诉求。

DevOps 是 Development and Operations 的简称,即开发与运维,它是一种软件开发流程和文化的改进方法,旨在加强开发人员和运维人员之间的合作,以实现更快、更稳定的软件交付和更高效的运维管理。但是,企业真正需要的并不只是 Dev 和 Ops 两个角色的高效合作,而是整体价值需求的快速且高质量的交付;整体交付过程涉及企业 IT 团队的所有相关角色,包括架构、产品、设计、开发、测试、运维、运营以及项目管理等等,就不只是 Dev 和 Ops 这两个角色。当前行业背景对 DEVOPS 的概念理念更多的是侧重软件的高效生产,对于设计、测试、运维等相对轻描,因此我更倾向于使用“敏捷研发”、“持续交付”或“研发效能”来描述这种场景。

研发效能是企业提高研发能力和竞争力的重要指标,指在有限的时间、人力、资源等条件下,能够最大化地实现研发成果的质量和价值,提高团队的创新能力和竞争力。

研发效能主要分为以下五大阶段

研发效能相关的建设主要分为以下几个领域

  • 建设研发效能团队
  • 敏捷项目管理模式与工具
  • 持续集成的理念与平台
  • 效能度量

1.2. 研发效能团队

研发效能管理团队是为了提高研发工作效率和质量而专门建立的团队,具有制定企业研发规范标准的职权,是企业多团队间的横向服务型团队。一般由企业的高级技术人才组成,如CTO、架构师、敏捷教练、产品经理等组成。

研发效能管理团队通过制定流程规范、引入平台工具、培训分享传递经验等方法来支撑企业高效生产,同时监督各个团队的流程和规范执行状态。

1.2.1. 流程规范

研发流程优化是研发效能组织的重要工作之一,通过分析和优化研发流程,提高研发效率和质量。

以下是一些通用的流程规范参考,每一类规范中还可以细分多种具体场景的细化规范:

  • 《项目管理流程及规范》:主要服务于项目经理角色和产品经理角色,便于项目及需求的管理。
  • 《软件设计指导流程及规范》:主要服务于研发角色,可参考领域建模方法论(DDD)制定。
  • 《软件开发流程及规范》:主要服务于研发角色,描述软件从编码到发布涉及的相关动作的规范要求。
  • 《质量管理流程及规范》:主要服务测试角色,根据质量管理的最佳实践,制定的一系列规范和标准,用于确保产品或服务的质量,从而提高企业的竞争力和客户满意度。
  • 《运维流程规范》:主要服务于运维角色,保障软件上线及运行的稳定。
  • 《运营管理规范》:主要服务运营角色,规范公司的运营活动,提高效率和效益。
  • 《安全管理规范》:安全是企业稳定生产的基础,所有相关角色都需要遵从。

这些研发流程和规范可以帮助团队规范化、标准化,提高研发效率和质量。当然,具体的流程和规范还需要根据企业的实际情况和需要进行适当的调整和优化。

1.2.2. 技术工具

研发效能管理团队配合各团队的工作内容引入合适的工具来提高研发效率和质量,如项目管理工具、研发工具、测试工具等。

过程工具的引入在后续阶段中会关联介绍,但是在这之前有些工具属于前置的工具

脚手架

脚手架是为快速开发,或者开发框架,前端框架,后端框架

知识库

知识库

1.2.3. 经验传递

将专家经验和沉淀规范、以及工具的应用向各个相关团队培训分享,来传递这些知识内容。

1.3. 项目管理

1.3.1. 主要内容

需求管理 任务管理 缺陷管理 目标管理 版本管理 迭代管理 知识库

1.3.2. 技术推荐

这里主要以开源技术为主

禅道、gitee、gitlab、github

1.4. 持续集成

  • 开发
  • 测试部署
  • 测试

    1.4.1. 代码管理

    主要功能

版本控制工具是 DevOps 中的关键技术之一,它可以帮助开发人员和运维人员更好地协作,管理和维护代码库。Git 是目前最受欢迎的版本控制工具之一,它支持分布式版本控制,可以支持多个开发人员同时对同一个代码库进行修改,同时还可以对修改进行版本管理和合并。在 DevOps 中,使用 Git 可以帮助开发人员和运维人员协作,管理代码库,并实现快速的变更和部署。

技术推荐

  • gitlab

1.4.2. 编译构建

1.4.3. 测试

测试环境管理

三、容器化技术

容器化技术是 DevOps 中的重要技术之一,可以帮助开发人员和运维人员更快、更可靠地进行软件部署和管理。Docker 是目前最流行的容器化技术,它可以将应用程序及其依赖项打包成独立的容器,以便在任何环境中部署和运行。在 DevOps 中,使用 Docker 可以帮助开发人员和运维人员更快地创建和部署应用程序,同时还可以提高应用程序的可移植性和可靠性。

自动化测试工具是 DevOps 中的另一个重要的技术,它可以帮助开发人员和运维人员更快地检测和修复问题,提高软件质量和可靠性。自动化测试工具包括单元测试、集成测试、功能测试等,可以自动化执行测试用例,并生成测试报告。在 DevOps 中,使用自动化测试工具可以帮助开发人员和运维人员快速识别问题,并实现快速的变更和部署。

1.4.4. 版本发布

1.5. 持续交付

  • 发布
  • 测试

    1.6. 持续运营

  • 度量

devops

研发运营一体化(DevOps)能力成熟度模型覆盖端到端软件交付生命周期全流程,是一套体系化的方法论、实践和标准的集合。研发运营一体化总体架构可划分为三部分,即过程(敏捷开发管理、持续交付、技术运营)、应用架构和组织结构。研发运营一体化过程相关内容如下:

1)敏捷开发管理从需求管理、计划管理、过程管理、度量分析这四个维度,关注需求到开发阶段的有序迭代,灵活响应,以及价值的快速交付。

其中需求管理细分为需求收集、需求分析、需求与用例和需求验收四个细分维度。需求收集从单个需求点、需求全貌、需求的管理、人员机制以及工具能力五个维度进行评估;需求分析从需求内容和形式、需求协作、需求的管理、人员机制以及工具能力五个维度进行评估;需求与用例从需求与用例编写、需求用例验证、需求与用例的管理、人员机制以及工具能力五个维度进行评估;需求验收从需求验收频率、需求验收范围、需求验收反馈效率、人员机制以及工具能力五个维度进行评估。

其中计划管理细分为需求澄清与拆解、故事与任务排期、计划变更三个维度。需求澄清与拆解从需求澄清的时间、内容的完备性、协作、人员机制以及工具能力五个维度进行评估;故事与任务排期从排版要素、排版容量、排版管理、人员机制以及工具能力五个维度进行评估;计划变更从变更决策、应对变更、减少变更、人员机制以及工具能力五个维度进行评估。

其中过程管理细分为迭代管理、迭代活动、过程可视化及流动、度量分析四个维度。迭代管理从迭代时间周期、迭代协作机制、迭代流程改进、人员机制以及工具能力五个维度进行评估;迭代活动从迭代活动约定、迭代活动时间约定、迭代活动范围、人员机制以及工具能力五个维度进行评估;过程可视化及流动从过程可视化、过程价值流动、迭代过程改进、人员机制以及工具能力五个维度进行评估;度量分析从度量粒度、度量范围、度量驱动持续改进、人员机制以及工具能力五个维度进行评估。

2)持续交付关注应用软件集成交付环节,通过配置管理、构建与持续集成、测试管理、部署与发布管理、环境管理、数据管理和度量管理领域的能力建设和工程实践保证软件持续顺畅高质量的对用户完成发布。

其中配置管理细分为版本控制、版本可追踪性两个维度。版本控制从版本控制系统、分支管理、构建产物管理、单一可信数据源四个维度进行评估;版本可追踪性从变更过程、变更追溯、变更回滚三个维度进行评估。

其中构建与持续集成分为构建实践、持续集成两个维度。构建实践从构建方式、构建环境、构建计划、构建职责四个维度进行评估;持续集成从集成服务、集成频率、集成方式、反馈周期四个维度进行评估。

其中测试管理分为测试分级策略、代码质量管理、测试自动化三个维度。测试分级策略从分层方法、分层策略、测试时机三个维度进行评估;代码质量管理从质量规约、检查策略、检查方式、反馈处理四个维度进行评估;测试自动化从自动化设计、自动化开发、自动化执行、自动化分析四个维度进行评估。

其中部署与发布管理分为部署与发布模式、持续部署流水线两个维度。部署与发布模式从部署方式、部署活动、部署策略、部署质量四个维度进行评估;持续部署流水线从协作模式、流水线过程、过程可视化三个维度进行评估。

其中环境管理分为环境类型、环境构建和环境依赖与配置管理。其中数据管理分为测试数据管理和数据变更管理两个维度。测试数据管理从数据来源、数据覆盖、数据独立性、数据安全四个维度进行评估;数据变更管理从变更过程、兼容回滚、版本控制、数据监控四个维度进行评估。

其中度量与反馈分为度量指标和度量驱动改进两个维度。度量指标从度量指标定义、度量指标类型、度量数据管理、度量指标更新四个维度进行评估;度量驱动改进从报告生成方式、报告有效性、报告覆盖范围、反馈改进四个维度进行评估。

3)技术运营环节关注应用系统服务发布后的环节,涉及运维成本服务、高可用架构服务、用户体验服务、客户服务、监控服务、产品运行服务和运营数据服务,保障良好的用户体验,打造持续的业务价值反馈流。

研发运营一体化(DevOps)同样关注应用架构、安全管理和组织文化方面的建设。良好设计的应用架构有助于系统解耦和灵活发布,也是高可用系统的核心能力;端到端的安全考量和全局规划,可以让安全发挥更大的价值,并真正助力全价值链。跨功能团队的组织架构和高度互信协同,责任共担的组织文化同样会对组织能力的提升带来正向作用。

1.7. 安全

2. 总结

研发效率的提升是企业生产效率提升的组成部分,完整的效率提升涉及软件全生命周期的各个阶段环节,需要系统性的建设才能更好的提效。这一系统性的方法论也是本系列文章描述的内容,命名目前是“云原生最佳七步实践”,但后续我想改名为“数字生产力解决方案”,它会是一个更大的概念范围,在提效的基础上创造新的价值。

其实关于需求交付还有其他模式可以引用,如低代码和编排组装,这会在后续其他维度的文章中进行详细介绍。

Copyright © 温玉 2021 | 浙ICP备2020032454号 all right reserved,powered by Gitbook该文件修订时间: 2025-01-03 22:56:11

results matching ""

    No results matching ""