【摘要】 在参考业界方法并总结客户成功故事的基础上,本文提出了“七步法”路线图,希望能帮助更多的企业顺利进行DevOps转型。

从2009年诞生,DevOps已经悄然走过了10多个年头。Gartner在技术热门度曲线报告“Hype Cycle for I&O Automation, 2019”中指出,DevOps处于爬升期(Slope of Enlightenment)。越来越多的国内企业关注DevOps,大有掀起一番大干快上热潮的架势。然而,在这种情形下,企业还是应该理性看待DevOps,将DevOps视为50多年来软件工程方法的扬弃,正如瀑布、敏捷一样,DevOps是软件工程特定的时代标签。

如何避免DevOps变革的六大“焦油坑”一文指出了企业践行DevOps转型面临的许多挑战及应对方法。那么企业应该采用怎样的路线图(Roadmap)来具体实施DevOps转型呢?

在总结客户成功故事的基础上,我们提出了“七步法”路线图(如下图所示),希望能帮助更多的企业顺利进行DevOps转型。

理论上,DevOps是软件工程方法的进一步发展,然而对于企业,DevOps转型并不是轻而易举的。企业需要达到引爆点,即企业在此时将变革作为首要任务。通常来讲,引爆点无外乎2类:生死关头(Burning Platform)与愿景领导(Visionary Leadership)。对于大多数的企业,DevOps转型的最大动力往往来自于“火烧屁股”,主动转型多数时候是奢谈。企业通过引爆点的理解对DevOps变革形成清晰的愿景并确立驱动因素。

第一步:选择合适的价值流

对于企业来讲,希冀全面的DevOps转型往往是不现实的。因此,通常情况下,企业可以选择1-2个价值流(或者产品)来进行尝试。这一步工作可以从以下方面进行考虑:

(1)选择新产品(绿地项目)还是现有产品(棕地项目);

(2)选择记录型型产品还是交互型产品;

(3)选择创新型团队还是保守型团队。

管理学大师彼得·德鲁克曾说过:“小鱼在小池塘里成为大鱼”。选择合适的价值流是DevOps转型的非常关键的一步。

第二步:识别支撑价值流的团队

在选择好试点的价值流后,必须确定价值流的所有成员,来共同为客户创造价值。价值流团队应该为跨职能融合团队,至少包括业务人员、产品负责人、开发团队、QA团队、运维团队、信息安全团队等等。

第三步:绘制价值流图并确定改进目标

价值流团队深入需要深入理解工作方式,可以使用价值流图(Value Stream Mapping)进行记录,通过工作坊的方式确定价值流关键环节的Lead Time、Value Added以及%C/A,来充分识别出阻碍价值流快速流动的环节,并将其作为改进目标。

第四步:组建专门的团队并培养能力

DevOps转型面临的最大挑战是与公司当前业务与交付模式的冲突。因此尽量将转型团队从诸多现有的规则和规定中解放出来。企业可以参考康威定律、Kotter的Dual Operating System等来设计团队结构。关于Kotter的Dual Operating System的阐述可以参考SAFe的“Business Agility”。在组建团队后,企业应该对团队进行体系化培训。然而不少企业往往因为投入成本问题,忽视了培训,结果可想而知。

第五步:应用方法和最佳实践进行转型

转型团队在理解业界DevOps方法与实践的基础上,结合人员技能水平、工具平台以及业务场景等,针对第三步确定的改进目标,循序渐进地进行转型。DevOps方法与实践涉及面非常广,从我们的服务企业的经验来看,企业应该聚焦2+1。所谓的2指的是敏捷项目管理、代码版本控制,1指的是持续交付流水线。其中的2是基础,很多企业在这2点没有做好的情况,就追求1,很多时候是缘木求鱼。

第六步:使用工具平台以强化预期行为

DevOps转型,首当其冲的是文化与思维的转变。文化与思维通过行为进行体现。如果方法与实践等只是纸质规章制度,那么是难以规范并强化预期行为的,文化与思维的转变也就勉为其难。因此企业组织应该使用工具平台(例如华为云DevCloud)来提升交付效率与质量,更为重要的是强化预期行为。如何在华为云DevCloud上玩转DevOps,可以百度搜索查阅。

第七步:扩展到组织的其它价值流

正如前面提到,企业可以选择1-2价值流进行试点,有条件的企业,建议采用2个,形成对照组。在DevOps转型符合预期效果,并且试点价值流良好运转后,可以扩展到组织的其它价值流,实现规模化(Scaled Size)。当然企业应该注意的是规模化有它固有的挑战,并不能看做是价值流的线性规模化,特别是当价值流之间耦合度较高时。

在组织内全面实施DevOps绝非易事,转型可能会给个人、团队、部门以及整个组织带来风险。变革需要勇气,同时也需要合理的路线图,做到风险可控。既然DevOps转型已经势在必行,企业按照七步法路线图有序实施,凤凰涅槃可期。

华为云DevCloud作为一站式云端DevOps平台,集成华为近30年研发实践和前沿理念,面向开发者提供研发工具服务,让软件开发简单高效。百度搜索“DevCloud”可以预约免费的产品演示和技术交流,详情查看华为云官网。

点击关注,第一时间了解华为云新鲜技术~

企业玩转DevOps转型:由弱到强,只需7步的更多相关文章

  1. 为什么学Python语言,只需四步全面了解Python语言

    为什么学Python语言,只需四步全面了解Python语言每个时代都会悄悄犒赏会选择的人,Python现在风口的语言Python--第三大主流编程语言Python , 是一种面向对象的解释型计算机程序 ...

  2. 只需一步,DLA开启TableStore多元索引查询加速!

    一.背景介绍 Data Lake Analytics(简称DLA)在构建第一天就是支持直接关联分析Table Store(简称OTS)里的数据,实现存储计算分离架构,满足用户基于SQL接口分析Tabl ...

  3. 安装go语言,配置环境及IDE,只需3步

    安装go语言,配置环境及IDE,只需3步 ( 欢迎加入go语言群: 218160862 , 群内有实践) 第1.下载 go压缩包,解压   ,如果你是window系统,请选择go1.5.windows ...

  4. PDF怎么旋转页面,只需几步轻松搞定!

    有时候我们下载一个PDF文件里面有页面是旋转的情况,用手机看的时候可以把手机旋转过来看,那么用电脑的时候总不可能也转过来看吧,笔记本是可以的台式的是不行的,这个时候我们就需要把PDF文件中旋转的页面转 ...

  5. vuex其实超简单,只需3步

    前言 之前几个项目中,都多多少少碰到一些组件之间需要通信的地方,而因为种种原因,event bus 的成本反而比vuex还高, 所以技术选型上选用了 vuex, 但是不知道为什么,团队里的一些新人一听 ...

  6. 如何把C++的源代码改写成C代码?而C改C++只需一步!

    ★ 如何把C++的源代码改写成C代码? C++解释器比C语言解释器占用的存储空间要大,想要在某些特定场合兼容C++代码,同时为了节省有限的存储空间,降低成本,也为了提高效率,将用C++语言写的源程序用 ...

  7. 一、JavaScript实现AJAX(只需四步)

    -----------------------------------------------一.JavaScript实现AJAX(只需四步)----------------------------- ...

  8. 只需3步,快来用AI预测你爱的球队下一场能赢吗?

    摘要:作为球迷,我们有时候希望自己拥有预测未来的能力. 本文分享自华为云社区<用 AI 预测球赛结果只需三步,看看你爱的球队下一场能赢吗?>,作者:HWCloudAI. 还记得今年夏天的欧 ...

  9. 【代码更新】单细胞分析实录(21): 非负矩阵分解(NMF)的R代码实现,只需两步,啥图都有

    1. 起因 之前的代码(单细胞分析实录(17): 非负矩阵分解(NMF)代码演示)没有涉及到python语法,只有4个python命令行,就跟Linux下面的ls grep一样的.然鹅,有几个小伙伴不 ...

随机推荐

  1. EOS基础全家桶(十五)智能合约进阶2

    简介 今天我们继续补充智能合约的进阶使用技巧,这次的主题是交易,合约内我们除了可以发起内联action的调用,很多使用还需要直接调用其他的合约action或者以交易的形式调用自身的action. 发起 ...

  2. 通过Windows Visual Studio远程调试WSL2中的.NET Core Linux应用程序

    最近两天在Linux中调试.NET Core应用程序,同时我发现在Linux中调试.NET Core应用程序并不容易.一直习惯在Visual Studio中进行编码和调试.现在我想的是可以简单快速的测 ...

  3. 如何让touchmove之后不触发touchend的事件

    手机扫码看效果 不多说,直接上代码 <ul id="Ul"> <li>111</li> <li>222</li> < ...

  4. python 面向对象专题(九):特殊方法 (二)__get__、__set__、__delete__ 描述符(二)覆盖型与非覆盖型描述符对比

    前言 根据是否定义__set__ 方法,描述符可分为两大类. 实现 __set__ 方法的描述符属于覆盖型描述符,因为虽然描述符是类属性,但是实现 __set__ 方法的话,会覆盖对实例属性的赋值操作 ...

  5. java中AQS源码分析

    AQS内部采用CLH队列.CLH队列是由节点组成.内部的Node节点包含的状态有 static final int CANCELLED =  1; static final int SIGNAL    ...

  6. Go Pentester - HTTP Servers(1)

    HTTP Server Basics Use net/http package and useful third-party packages by building simple servers. ...

  7. P5836 [USACO19DEC]Milk Visits S 从并查集到LCA(最近公共祖先) Tarjan算法 (初级)

    为什么以它为例,因为这个最水,LCA唯一黄题. 首先做两道并查集的练习(估计已经忘光了).简单来说并查集就是认爸爸找爸爸的算法.先根据线索理认爸爸,然后查询阶段如果发现他们的爸爸相同,那就是联通一家的 ...

  8. git分支间切换注意点和bug分支的处理

    目录 备注: 知识点 记一次分支合并问题状况 从分支点开始,不同分支修改工作区的内容(不添加到暂存区和提交),切换分支,工作区的内容是一样的. 必须在提交或者暂存当前暂存区的状态后,再切换或合并分支 ...

  9. MSSQL系列 (一):数据库的相关操作(增删改查)

    1.创建数据库 --创建数据库 create database stuDb on primary ( --表示属于primary文件组 name='stuDb', --逻辑名称 fileName='D ...

  10. 3.TCP协议

    一.TCP协议特点和报文段格式 面向连接的传输层协议 每一条TCP连接只能有两个端点 TCP提供可靠交付的服务,无差错,不丢失,不重复,按序到达 全双工通信 -> 发送缓冲:准备发送的数据&am ...