落地DevOps的路线图

简介: 以上这些都是在打破技术团队内部的协作隔阂,但在实际工作中,业务团队和技术团队之间的理解和沟通障碍更加严重。如果业务需求方不能认同devops的实践理念,双方对于快速交付对业务价值的提升没有统一的认知,那devops的落地只能是镜中花水中月。

这是devops系列的第二篇文章。


上篇文章发布后,有同学私信问我,企业如何落地devops?


老实说,这是一个很大的命题,而且也并没有标准答案。一个软件工程实践理念能否在企业内落地并达到一定效果,取决于很多因素,比如是否有上层领导支持,是否有足够的资源投入,是否采取了正确且适合自己的方法,团队是否认可这项实践带来的价值等很多因素。


在聊企业如何落地devops之前,我想结合最近学习的devops相关知识,以我的理解,聊聊落地devops的路线图(指引人正确达成目标的路径)。


落地DevOps的源动力


我在上篇文章聊过软件工程中关于开发模型的演变。


最开始,瀑布模型过程中研发、测试、运维三种角色的工作是上一环节完成后,才能流转到下一阶段。


敏捷研发阶段,提倡是把大的目标拆解为小目标,小步快跑,快速迭代快速验证,测试左移的概念也是如此。


而devops的理念和实践,就是打破技术人员之间协作的那堵墙,通过高效的协作沟通,使软件交付形成自动化交付流水线,更快的响应和支撑业务需求,从而创造更大的业务价值。


以上这些都是在打破技术团队内部的协作隔阂,但在实际工作中,业务团队和技术团队之间的理解和沟通障碍更加严重。如果业务需求方不能认同devops的实践理念,双方对于快速交付对业务价值的提升没有统一的认知,那devops的落地只能是镜中花水中月。


devops的目标是通过构建自动化交付流水线来提升交付能力,交付能力的提升可以帮助业务更快的小成本试错。同时,用户和市场的情况如果能够快速地反馈给业务方,也可以帮助业务快速调整。要达到这些,需要业务敏捷起来,对需求的设计和把控灵活调整,做有价值的事情,否则会拖累交付能力,整体效率也会下降。


因此在实际的devops落地实践中,业务敏捷,做有价值的事才是落地devops的源动力

技术团队除了按照业务需求快速交付功能,还应该更快的为业务提供客观有效的数据反馈,辅助业务决策。同时,交付能力的提升也进一步降低了业务的试错成本,而业务的敏捷性也决定了研发交付的需求价值和交付节奏。


这其实就是BizDevOps的理念,也是devops发展的一种潮流。BizDevOps意为:Business + Dev + Ops。BizDevOps的核心理念如下:


  • 对齐业务和技术团队的目标及评估指标;
  • 在安全合规的基础上开展协作,落地devops;
  • 及时对齐需求,抹平信息差,减少无用开发,避免返工;
  • 让技术团队主动接触业务,调动积极性,体现devops的价值;


落地DevOps的切入点


devops的目标是通过构建自动化交付流水线来提升交付能力,这种持续交付能力是devops的核心能力之一。但持续交付只是手段,而不是目的。目的是通过devops的持续交付能力来为团队为企业带来业务价值的提升


Jenkins 的主要维护者 CloudBees 公司推出的 DevOptics 产品就主打 VSM 功能,而持续交付产品 GoCD 的 VSM 视图也一直为人所称道,他们的核心都不是持续交付产品,而是VSM。


VSM(Value Stream Mapping) 就是我们常说的价值流图。它起源于传统制造业的精益思想,用于分析和管理一个产品交付给用户所经历的业务流、信息流,以及各个阶段的移交过程。从软件工程的角度来理解就是从需求到研发到测试再到上线交付给用户使用的过程。通过观察流程中各个环节的交付效率和交付质量,识别低效环节并进行优化,从而实现整体效率的提升。


VSM的几个关键要素和核心思想如下:


  1. 前置时间:即Lead Time。它指的是一个需求从提出到最终上线交付的时间周期,这部分时间体现了研发团队的交付速率,可用来计算交付吞吐量。DevOps 的核心使命之一就是优化这段时长。
  2. 增值活动时间和不增值活动时间(Value Added Time/Non-Value Added Time,简称 VAT/NVAT)。在软件研发交付过程中,不增值活动很多,比如无意义的会议、频繁的需求变更、不断reopen的bug等。VSM中很重要的一点就是消除浪费,降低不增值的活动。
  3. 完成度和准确度(% Complete/Accurate,简称 %C/A)。这个指标用来表明工作质量,即有多少工作因为质量不符合要求而被打回。这里面蕴含了大量的沟通和返工成本,从精益视角来看,也是一种浪费。


640.png

                                                                   ps:此图来源于网络,侵删


VSM是devops在企业内落地的切入点,它最重要的价值体现在如下几个方面:


  1. 全局视角:单点突破很容易陷入局部优化的陷阱,devops追求的是通过持续交付推动流动,使价值最大化。而要构建企业级的devops持续交付流水线,需要全局视角。
  2. 识别问题:从VSM的几个关键指标来看,都是客观可量化改进的指标。从全局视角识别出低效和不增值的活动,可以更好的针对问题进行改进。
  3. 促进协作:识别出问题后,需要主动沟通才能保证信息的一致。而梳理VSM的过程,就是让参与其中的人员从全局视角理解devops的最佳机会。只有在梳理过程中,团队才能真正了解整个流程的上下游,通过沟通来促进协作。
  4. 驱动度量:不能被度量的工作都无法证明其价值,构建企业级的devops持续交付流水线需要对整个过程进行明确客观的度量,才能识别其中的低效和不增值环节,度量也可以帮助我们判断改进措施是否有效。度量数据的采集,需要各个团队和平台间打通,做到数据共享,这也是devops落地需要解决的一大难题。
  5. 体现价值:要落地devops,需要企业高层的认可甚至大力推动。而梳理VSM价值流的梳理过程,本身就可以让高层理解持续交付效率的提升对企业带来的价值。这其实也是devops证明自身价值的一个过程。


落地DevOps的路径和挑战


在《DevOps实践指南》这本书中提出了“DevOps 三步工作法”,概括了 DevOps 的通用实施路径。


第一步-流动:通过工作可视化,限制在制品数量,并注入一系列的工程实践,加速从开发到运营的流动过程,实现低风险的发布;


第二步-反馈:建立快速反馈能力,使问题第一时间暴露,用户和运营数据第一时间展示,从而提升组织的响应能力;


第三步-持续学习和试验:通过团队激励学习分享,将持续改进注入日常工作,使组织不断进步。


具体来说,在devops落地实践过程中,可以将其拆分为以下4个步骤:


1.寻找合适的试点项目:和混沌工程中所提倡的最小爆炸半径概念很类似。即在最开始实施时,选择合适的对象进行快速落地验证,很类似我们做技术调研对比汇报时的demo。合适的试点项目应满足如下几个特征:

a.贴近核心业务(重视程度高,资源投入足够);

b.业务相对敏捷(业务不敏捷会拖累交付能力);

c.项目对应团队有改进意愿(毕竟强扭的瓜不甜);

2.寻找团队痛点:有工作经验的同学应该都明白的一点,就是谁最痛谁才关心怎么解决问题。识别出项目所在团队当前最影响交付效率的点,这样更容易开展工作,也更方便看到投入产生的效益。

3.快速拿到结果:即采用mvp方案,快速的解决最痛的也是最容易看到收益的难点,用数据证明工程实践改进是切实有效的。

4.持续改进汇报:拿到好结果要快速让领导层知道当前的进度和结果,这样才能在后续的持续改进过程中获取更多的支持和资源倾斜。多沟通常汇报,永远是职场生存的不二法门


当然,devops落地过程中会遇到各种问题,最典型的问题就是 J型曲线,来源于2018年devops状态报告,见下图:


640.png


面对这些问题,常见的解决思路有:


  1. 通过团队内部复盘总结,识别问题,快速改进;
  2. 引入一些外部优秀实践和工具,快速提升团队能力;
  3. 成立专门的devops落地团队,由各团队和领域的资深成员参与,负责落地计划制定、目标和风险识别、技术方案设计以及在关键节点推动项目的进度。


当然,最重要的,一定要争取到管理层的认同和支持。devops是对软件工程和研发交付流程的改革,改革势必会动到既得利益者的蛋糕,有了高层支持,才可以自上而下的推动。借助大势的同时,快速的自下而上的改进,多沟通常汇报,才能让devops更好的落地。

相关文章
|
3月前
|
运维 监控 Devops
构建协同创新的未来:DevOps文化与实践
在当今快节奏的技术世界中,DevOps文化和实践成为了企业实现卓越软件交付和持续创新的关键。本文将探讨DevOps的核心原则、实施步骤以及它如何促进团队协作、提高效率,并引领着未来协同创新的道路。
28 2
|
7月前
|
运维 Cloud Native 数据可视化
阿里云云原生 DevOps - 企业开发过程的困境
阿里云云原生 DevOps - 企业开发过程的困境
143 0
阿里云云原生 DevOps - 企业开发过程的困境
|
运维 Cloud Native 安全
为什么一定要从DevOps走向BizDevOps?
数字经济时代,数字化转型成为社会的普遍共识和行动。越来越多的业务运行在数字化基座之上,软件系统正成为业务创新的价值核心和创新引擎。在这一趋势下,软件产业面临着许多新挑战和新机遇。
818 0
为什么一定要从DevOps走向BizDevOps?
|
云安全 弹性计算 运维
DevOps落地思考
为什么团队开发运维方式备受诟病?说到底还是一个效率问题,因为研发和运维之间的利益是不一致的,所以导致效率就很低下。其实DevOps目的最重要的理顺研发和运维之间的关系,能满足彼此之间的关系,调动大家积极性,从而提升效率。
198 0
DevOps落地思考
|
运维 安全 前端开发
阿里巴巴DevOps实践指南(三)| 阿里巴巴 DevOps 实施的价值主张
数字化转型是对互联网公司和产业内公司的共同挑战。产业公司要应用数字化能力,提升用户体验和运作效率;互联网公司要将数字化能力与具体的产业结合,带来更广更深的创新。共同点是,它们都需要升级 IT 的交付和运行模式,都离不开 DevOps 的能力。
阿里巴巴DevOps实践指南(三)| 阿里巴巴 DevOps 实施的价值主张
|
敏捷开发 开发框架 运维
阿里巴巴DevOps实践指南(一)| 为什么DevOps的必然趋势是BizDevOps
从精益思想出发,我们可以看到DevOps的必然发展方向,那就是向业务侧延伸。业务是产品开发和运维的源头,完整的价值流必须从源头开始。这不是预测,而是正在发生的事实
5104 1
阿里巴巴DevOps实践指南(一)| 为什么DevOps的必然趋势是BizDevOps
|
敏捷开发 Kubernetes Cloud Native
2020最强合集:阿里巴巴研发效能&DevOps干货都在这里啦!
1场峰会、2门课程、2个电子书,2020阿里巴巴研发效能干货合集,云效为你精心整理
10801 0
2020最强合集:阿里巴巴研发效能&DevOps干货都在这里啦!
|
运维 架构师 Devops
如何使IT服务管理融入Devops世界
尽管IT服务管理(ITSM)和IT基础设施库(ITIL)多年来一直都在发布更新,但它们如何与开发和运维(Devops)等Z代的方法相提并论?这是行业专家提出的问题。
|
敏捷开发 运维 监控
DevOps 在企业项目中的实践落地
“我们把DevOps和研发任务协同结合起来,打破了研发团队的最后一道隔阂。” 往往在产品开发过程中,研发人员需要掌控的最多的工具和平台。 代码,环境,部署,容器,服务器一大堆的工具和平台要使用,但是很多平台之间无法互通,导致了工作无法同步,反复的记录报告又增加了工作量。
775 0

热门文章

最新文章