网新恒天资深项目经理 / 敏捷专家 CODING 特邀讲师
有很多传统 IT 企业有强烈的 DevOps 转型意愿,但是由于各种原因,推进很难,有些甚至于推进了一半成了烂尾工程。 本文试图从软件研发标准化出发,以相对较小的成本,而效果相对明显的方式,引导企业走上 DevOps 转型之路。
- DevOps 带来了什么
- 企业转型 DevOps 的难点
- 标准化的范围与作用
- 标准化过程中的注意点
- 标准化后的转型之路
讲义 DevOps涉猎的范围非常的广泛,包括软件研发全生命周期的方方面面,对于刚开始涉及DevOps的人来说会有种盲人摸象的感觉,这正是DevOps转型的一个难点。在DevOps转型过程中,标准化是重要手段。那么,标准化关注的具体是什么内容呢?
DevOps的转型目标在于缩短前置时间,加快部署频率,提高系统的可用性,减少服务恢复时间,降低变更失败率。这就要求我们在设计运行平台的时候,除了具备自动恢复功能的以外,还要提供丰富的运维监控数据以及强大的数据分析能力,这样能够帮助运维人员在极短的时间之内恢复服务。变更失败的原因主要有2个,一是功能质量没有达标,二是需求理解不到位。
图片中是我们整理的一些标准化的关注点。作为产品经理或业务分析的人员,需要关注需求如何顺利到达研发团队,并能够适应他们进行敏捷的开发。作为研发人员需要关注的点相对比较多,尤其是要关注配置信息标准化管理。
标准化的目的是为了实现自动化,包括集成的自动化、部署的自动化、测试的自动化和运维的自动化。下图是一个典型的DevOps循环图。我们认为业务敏捷是前提,DevOps流程是从敏捷型需求为起点,经过了运维监控这个最后的节点回到计划,实现闭环。
编码过程标准化的重点在于测试驱动的开发,这也是敏捷要求的一个标准,但是实际上能做到这个标准的团队并不是很多。测试驱动开发首先要面向接口做一些测试和开发,面向接口做测试的时候需要关注接口名称、接口协议、接口参数名称和类型、接受条件。其次我们需要关注数据,包括每个接口输入的数据以及其得出的结果。针对引用的相对复杂业务逻辑的其他服务,需使用mock工具来减少依赖。每个测试用例的测试场景需要完整注释。 最后我们总结一下前面的内容:
一、需求敏捷化是起点。
二、TDD开发模式是快速迭代开发时代保障软件质量基线的有效手段。
三、注重环境配置文件的标准化,保证程序的可测试性。
四、研发流程的标准化是建立自动化CI、CD流程的前提,而CI、CD流程的自动化是实现DevOps的关键点。
五、Jenkins是实现CI、CD流程的有效工具,但是在处理复杂业务场景时还需要有其他合适工具的帮衬。
六、服务器运行环境的标准化,可以促进流程脚本的标准化。