写点什么

如何避免 DevOps 变革的六大“焦油坑”

  • 2020-03-25
  • 本文字数:3123 字

    阅读完需:约 10 分钟

如何避免DevOps变革的六大“焦油坑”

当今,DevOps 能显著提升企业的商业敏捷与能力,因此在企业中广受欢迎。然而,对于大多数企业来讲,DevOps 变革并非一帆风顺,此过程中会面临各种各样的挑战。为了提高 DevOps 变革成功的可能性,企业领导者亟需识别或者理解 DevOps 变革失败的常见原因,并采取一定的措施来避免。


经过不断发展,DevOps 逐渐演变为一种方法框架,使能企业综合运用人员(People)、流程(Processes)与技术(Technologies)等,从而将价值持续交付给最终客户与用户。基于 DevOps 的价值观(Value)、原则(Principles)与实践(Practices),华为云 DevCloud 分析了许多企业的 DevOps 落地案例,DevOps 变革会存在 6 大常见的主要原因,称之为六大“焦油坑”:


  • 无的放矢

  • 乌合之众

  • 各自为政

  • 一蹴而就

  • 好高骛远

  • 沙上建塔

无的放矢:未从客户价值出发

在 DevOps 热潮下,许多组织通常为了赶潮流而快速启动 DevOps 变革,常常为了 DevOps 而做 DevOps(Doing DevOps for DevOps),而没有充分考虑 DevOps 的真正目标或者目的。员工只会关注为组织带来的价值,而不会单纯与 DevOps 术语、方法以及支撑工具产生联系。因此对 DevOps 变革,无论变革启动时,还是变革过程中,都需要将为客户带来的商业价值作为目标,以便不断调整 DevOps 变革内容。这也与多数组织“以客户为中心”的理念相吻合,然而却经常被忽视甚至忘却,导致无的放矢或者向不正确的靶子放矢。


为了使 DevOps 变革立足于客户价值、充分识别谁是客户、他们需要的价值是什么,组织应该经常思考如下问题:


  • 现有或者潜在的客户是谁

  • 客户看重或想实现的商业价值是什么

  • 企业能提供哪些服务,仍有哪些差距

  • 客户期望的时间点

  • 企业能够多快进行发布

  • 客户前进的方向是什么,如何升级企业的服务

  • 如何让客户了解到企业提供了什么


企业组织在 DevOps 实施过程中,必须以客户为中心,持续地提高对客户商业价值的理解,来作出相应的改变,并提升自身能力。

乌合之众:未有效地管理组织变革

在 DevOps 变革中,企业组织应该认识到人或团队是 DevOps 变革的最大的挑战,因而应该充分重视组织变革的重要性,而不是将重心聚焦在工具上。企业应该从理解客户商业价值来发起组织变革,领导层必须清楚 DevOps 以及相应的组织变革是不可或缺的,员工必须认识到变革正在发生。在 DevOps 变革中,领导层应该理解,为了提升商业敏捷性,决策需要在信息产生的地方进行,并应该去身体力行此种决策理念。


因此,领导层需要组建团队,并让团队自己决策应该做什么以及如何做。这就要求在组织内识别潜在的候选人,且候选人应该具有以下价值观:


  • 团队合作:确保候选人乐于团队合作,并且在团队内工作效率高;

  • 值得信赖:信任是 DevOps 的 CAMLS 理念中文化的基本要素之一,因此候选人必须可靠、可信;

  • 干劲十足:候选人必须能主动积极地追求目标;

  • 有责任心:对工作过程、工作产出能负起责任,而不是推三阻四;

  • 足够聪明:能理解必须完成的工作,并可以决定如何开展;

  • 经验丰富:经验可以使团队成员成长,当然不一定对 DevOps 有经验;

  • 有效沟通:及时准确地口头或者书面传递信息与知识;

  • 风险管理:与团队其他成员(例如 PO)协同工作懂得如何管理风险;

  • 终身学习:DevOps 并非一成不变,因此更重要的是,发现有正确态度的人并培训技术技能,而不是过分强调技术技能而忽略错误的行为。


领导者应具备相应的技能与态度来激励员工,进行授权并提升他们的责任感。当然,对于拒不改变的员工,必须毫不迟疑地将他们安排到不会动摇变革的岗位上。

各自为政:未充分地合作

在 DevOps 变革过程中,比较现实的情况是单个职能领域(例如 IT 部门)来发起此变革,因此导致 DevOps 实施局限于单个职能领域,无形中增加了变革失败的可能性。


因此即使单个职能领域发起 DevOps 变革,组织必须意识到成功的 DevOps 实施需要所有干系人共同合作以更全面地理解并系统地解决问题。为了加快价值实现时间,DevOps 团队必须与其他团队及关系人合作。DevOps 需要人们共同工作实现解决方案,打破障碍,并能像小型团队一样运作。因此,合作是至上的,团队的大小并没有绝对的限制,虽然业界有所谓两个比萨(Two-pizza)团队的说法。


更为重要的是,企业级别的合作需要管理层的支持。在一开始,就应该获得管理层的支持与拥护。DevOps 的拥趸必须相信 DevOps 的价值,并平衡组织内不同团队的激励方式,例如开发团队被鼓励快速变更和开发新特性,而运维被鼓励维持可靠性和稳定性,这样就难以形成合作。

一蹴而就:未采用迭代方法

全面的一揽子的 DevOps 变革,对于大多数企业组织来说,是非常有诱惑力的。然而,历史经验却无情地告诉我们,这种传统变革失败率非常高。DevOps 要在一个大型 IT 组织中成功,涉及太多因素,并且组织越大越困难。


因此,增量迭代方法成为组织的必然选择,一方面此方法使组织聚焦于持续改进,另一方面避免了传统方法的巨大风险。在进行 DevOps 变革时,组织聚焦于单一价值流,通过迭代与持续学习来持续改进,来得到合适的因素维持可接受的变革。迭代增量节奏也使组织确保团队分享与合作,并建立实践社区。这样,在此价值流学到的知识可以传递到下一个价值流,逐渐在组织中规模化 DevOps。


组织在每个迭代中需要仔细识别目标机会,并确保每个迭代满足以下 3 个关键条件:


  • 政策友好性:干系人愿意给予 DevOps 公正的试验环境,在错误发生时,从中学习经验而不是责备;

  • 可接受的价值:每个迭代产生足够的客户价值,来建立信任与获取支持;

  • 可接受的风险:即使 DevOps 宣称具有显著降低风险的能力,然而人们更乐于看到实际效果,而不是简单听理论。

好高骛远:疏于管理期望值

俗话说,期望越高,失望越大。对于 DevOps,许多组织的期望与它能够交付的内容存在脱节。与其讲企业组织将更敏捷或者快速,不如明确组织现在在哪儿以及需要到哪儿,然后迭代地实现目标。DevOps 不是一次性投入,而是需要不断地尝试。因此组织需要达成一致的目标与度量指标来有效地管理期望。DevOps 的度量指标非常多,建议可以从以下 4 个角度建立进度平衡视图:


  • 市场目标:例如销售量、客户留存率等;

  • 交付周期:价值实现的平均时间;

  • 风险管理:宕机时间、业务恢复时间等;

  • 客户满意度:满意度水平等;


需要指出的是,并非所有的不切实际的期望都来自于商业客户。例如,IT 部门会认为工具链是免费的,实际上工具链需要持续的资源与投入。总体上,组织需要围绕客户价值、成本与风险来权衡建立合适的期望。

沙上建塔:未清晰地管理需求与代码

由于受到 DevOps 成功案例以及 CAMLS 理念中自动化的影响,企业通常寄希望于自动化等技术与工具手段来加速产品上市周期,然而经常因诸多基础性工作没有做扎实导致 DevOps 实施效果未达到预期。


在诸多基础性工作中,最为关键的两点是需求的探索分析与分解、源代码的版本与分支管理。从 DevOps 的发展历史来看,DevOps 继承了敏捷方法的诸多实践与理念,原则上默认 DevOps 团队较充分地掌握了敏捷方法与实践,也致 DevOps 组织忽略需求的重要性。因此无论如何强调需求的重要性都不为过。DevOps 团队必须清晰地管理需求,使需求以及 Story 满足 SMART 要求,在迭代周期内可以按时保质交付最小可行产品(MVP)。


代码版本管理的重要性是不言而喻的,更需要关注的是良好的分支管理模式是持续集成与持续部署的基础。企业可以使用华为云 DevCloud 进行需求与代码的管理。


DevOps 变革是一个系统工程,涉及到组织、文化、人员、流程、工具、方法等方方面面。对于企业来讲,应该从客户商业价值出发,选择合适的团队,合理地管理期望,并以增量迭代的方法,初始聚焦于单一价值流,夯实基础,逐渐扩展到其它价值,实现 DevOps 规模化,最终实现企业的商业敏捷。


本文转载自 华为云产品与解决方案 公众号。


原文链接:https://mp.weixin.qq.com/s/kaDz6SNk-DSTDaKmB5BofQ


2020-03-25 17:521812

评论

发布
暂无评论
发现更多内容

python 同时迭代多个序列,还没吃透内存缓存LruCache实现原理的看这篇文章

程序媛可鸥

Python 程序员 面试

Python 实现二叉树前序,中序,后序,零基础也能看得懂

程序媛可鸥

Python 程序员 面试

3个月夯实基建,鲜丰水果这样实现研发数字化

阿里云云效

云计算 阿里云 云原生 持续交付 研发运维

如何基于 OpenKruise 打破原生 Kubernetes 中的容器运行时操作局限?

阿里巴巴云原生

Python GUI编程:关于 tkinter 怎么才能写出更好看的界面,华为架构师深入讲解Python开发

程序媛可鸥

程序员

jQuery入门到精通学习教程,收藏我这篇就够了,Alibaba高并发业务实战文档

程序媛可鸥

Python 程序员 面试

nginx5种负载策略的设置方法,看完直接怼产品经理

程序媛可鸥

Python 程序员 面试

昇腾CANN论文上榜CVPR,全景图像生成算法交互性再增强!

Geek_32c4d0

昇腾

移动平台WorkPlus助力医院智慧信息化建设

WorkPlus

使用MASA.Blazor写一个标准的查询表格页

MASA技术团队

Kafka 常用命令总结,高级Python面试题

程序媛可鸥

Python 程序员 面试

python DataFrame数据合并 merge()、concat()方法,拿下我人生中第7个Offer

程序媛可鸥

Python 程序员 面试

Python 开发编码规范,阿里面试100%会问到的JVM

程序媛可鸥

Python 程序员 面试

Rust基本概念

Shine

读书笔记 rust

图数据库实操:用 Nebula Graph 破解成语版 Wordle 谜底

NebulaGraph

数据库 开源 图数据库 分布式图数据库

2021年【大学生Python学习】社区&&小博主,2021最新大厂高频微服务面试总结

程序媛可鸥

Python 程序员 面试

向工程腐化开炮|动态链接库so治理

阿里巴巴终端技术

android 动态链接库

2022年中小企业数据安全如何保障?对比华为云与其他云计算大厂,15分钟的字节跳动视频面试

程序媛可鸥

Python 程序员 面试

python3 基础小练习: 判断闰年,2021最新Python算法相关面试大

程序媛可鸥

Python 程序员 面试

CVE-2021-3129:Laravel远程代码漏洞复现分析

华为云开发者联盟

安全 漏洞 代码复现 CVE-2021-3129 base64 标准

常见问题(FAQ)页面的搭建步骤

小炮

社区活动 | Apache Pulsar SIG(特别兴趣小组开放)!欢迎大家加入

Apache Pulsar

开源 架构 云原生 Apache Pulsar pulsar 社区

Flutter 图片库高燃新登场

阿里巴巴终端技术

flutter

从硬件到软件,教你从零搭建智慧农业大脑

华为云开发者联盟

物联网 智慧农业 华为云IoT 小熊开发板 STM32L431芯片

大疆被制裁,请马上卸载postman!

Liam

程序员 Postman 开发工具 API swagger

龙蜥开发者说:从入坑到入门 | 第 2 期

OpenAnolis小助手

开源 龙蜥社区 开发者说 技术的力量

2022年中国在线音乐市场年度综合分析

易观分析

阿里巴巴副总裁陈丽娟:我对阿里云产品生态的思考 | 云原生加速器观点

阿里巴巴云原生

浅谈NIO和Epoll实现原理

Linux服务器开发

网络编程 epoll Linux服务器开发 Linux后台开发 网络io

云原生技术赋能ISV实现应用现代化

York

云原生

飞桨助力动车3C车载智能识别,为动车组运行保驾护航

百度大脑

如何避免DevOps变革的六大“焦油坑”_DevOps & 平台工程_华为云产品与解决方案_InfoQ精选文章