落地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更好的落地。

相关文章
|
运维 Devops Java
阿里巴巴DevOps实践指南(十三)| 测试提效
分布式测试为测试速度插上了翅膀,精准测试有效的识别出了测试的范围,增量覆盖率又为测试的不断完备提供了有利的指引,线上覆盖率帮助我们有效的进行应用瘦身。充分利用好这些技术手段进行测试提效,可以让持续交付的过程更加的顺畅
阿里巴巴DevOps实践指南(十三)| 测试提效
|
运维 Devops jenkins
DevOps实践:自动化部署与持续集成的实现之旅
本文旨在通过一个实际案例,向读者展示如何将DevOps理念融入日常工作中,实现自动化部署和持续集成。我们将从DevOps的基础概念出发,逐步深入到工具的选择、环境的搭建,以及流程的优化,最终实现一个简单而高效的自动化部署流程。文章不仅提供代码示例,更注重于实践中的思考和问题解决,帮助团队提高软件开发和运维的效率。
|
10月前
|
人工智能 弹性计算 运维
操作系统智能助手OS Copilot新功能 评测
作为一名游戏开发工程师,我近期对阿里云Copilot进行了详细评测。Copilot支持多种Linux系统,具备完整的思维链推理能力,能处理复杂任务,大幅减轻运维工作量。它覆盖了大部分常用命令和参数,适合中高级运维工程师。虽然存在一些缺陷,但其在代码解读、错误分析等方面表现出色,极大提升了工作效率。强烈推荐有运维需求的用户使用Copilot,未来运维离不开它。 附上Copilot文档链接:[点击查看](https://help.aliyun.com/zh/alinux/user-guide/instructions-for-os-copilot)
271 26
|
运维 Prometheus 监控
从文化到实践:DevOps的基本概念与核心实践详解
从文化到实践:DevOps的基本概念与核心实践详解
442 5
|
运维 监控 Devops
DevOps实践:从理论到落地的旅程
在软件开发和运维日益融合的今天,DevOps已不仅仅是一个流行词汇。它代表了一种文化和实践的转变,旨在打破部门间的壁垒,加速产品从构思到市场的流程。本文将带你了解DevOps的核心理念,并通过实际案例展示如何将这些理念应用到日常工作中,实现高效协作和持续改进。无论你是DevOps新手还是资深专家,这篇文章都将为你提供新的视角和实用的技巧。
|
人工智能 运维 Kubernetes
深度 | 从DevOps到BizDevOps, 研发效能提升的系统方法
研发效能提升不知从何下手、一头雾水?阿里资深技术专家一文为你揭秘研发效能提升的系统方法
4941 1
深度 | 从DevOps到BizDevOps, 研发效能提升的系统方法
|
运维 Devops
全球与中国DevOps市场现状及未来发展趋势
本文研究全球及中国市场DevOps现状及未来发展趋势,侧重分析全球及中国市场的主要企业,同时对比北美、欧洲、中国、日本、东南亚和印度等地区的现状及未来发展趋势
全球与中国DevOps市场现状及未来发展趋势
|
数据采集 数据可视化
读软件研发效能度量规范总结
在工作中,作者探索了软件研发效能度量,参考了《软件研发效能度量规范》这一行业标准。该规范旨在帮助企业和团队通过定义指标来衡量和提升研发效率、效果和卓越能力。关键步骤包括理解指标(如效率、质量和成本),选择适用于团队的指标,以及按照适用性、系统性、可靠性和持续性的原则收集和分析数据。通过度量,团队可以识别问题,制定改进策略,并通过可视化工具进行汇报和决策。
718 0
|
数据格式
Element el-cascader 级联选择器详解
本文目录 1. 概述 2. 数据绑定 2.1 默认数据绑定 2.2 指定绑定数据格式 3. 常用功能 3.1 修改触发方式 3.2 增加清空按钮 3.3 可搜索 3.4 选中项只显示最后一级 3.5 可选中任意一级 3.6 面板样式 3.7 自定义节点内容 4. 动态加载下级 5. 小结
4066 0
|
运维 监控 容灾
建设强大系统:提升高可用、可靠性和稳定性的秘诀
建设强大系统:提升高可用、可靠性和稳定性的秘诀
1762 0