写点什么

我们在实施 DevOps 时遇到的挑战之一 —— 敏捷文化

  • 2020-04-17
  • 本文字数:2183 字

    阅读完需:约 7 分钟

我们在实施DevOps时遇到的挑战之一 —— 敏捷文化

现在只要搞开发的人,都在谈微服务,只要搞运维的人,都在谈 DevOps,但对于大部小伙伴来说几乎没什么经验,对于大部分企业来说也只处于尝试阶段,虽说如此,可感觉大家在制定目标时,都不太喜欢给自己留余地,把规划写得很大,功能很全,甚至恨不得一夜之间所有问题都会通过微服务与 DevOps 的设想凭空消失。


早在上半年,我曾通过 「GTLC - Open Space」资产配置时代来临,平台化演进中的问题与挑战 向大家介绍过好买在这几年中实施 DevOps 的一些经验与教训,但绝大多数内容偏向于技术,对于其他方面说的太少,从本文起,我将通过一个系列向与大家聊一聊 “我们在实施 DevOps 时遇到的挑战”


切换敏捷之前的过渡区


对于许多草根程序员来说,提到敏捷所能带来的收益,条件反射的会说 “能快呀”、“不用写文档啦”


不能说这种说法有问题,只是不够专业,在实际的工作中,我们是否经常会听到这样的对话?


行,就按照你说的做,我写个需求规格说明书给你


好的,写完别忘记给领导审批,然后我按照需求做个设计给你看下


……


开发结束啦,已经提测了,你问问测试吧


……


问问测试吧,什么时候可以发布仿真环境


……


又改需求了?别忘记先改需求规格说明书,要不然代码和文档对不上了,改完我再开发


……


对于长期适应于「需求 -> 设计 -> 开发 -> 测试 -> 运维」的企业来说,直接切换至敏捷模式,无论对业务、技术及架构都是非常具有挑战的,这种挑战多半来自于业务场景与公司文化的限制,甚至是组织结构的局限性,不但不能快起来,甚至会带来一些意想不到的灾难



(图文:职能化筒仓式组织结构)


先用迭代让业务快起来,敏不敏捷不着急


对于金融类企业来说,多半是业务驱动模式,业务关心的是 “快上线” 、 “别出事”,至于技术是用什么实现,敏捷也好,糊上墙也罢,他们其实并不关心


为了快速让业务获得收益,在采用敏捷之前我们选择迭代进行过度


举例说明下迭代给业务带来的价值:要计划制造一辆汽车,它最核心的功能是可以在路上跑,所以我们可以先制造一个踏板车,依次迭代为滑板车,自行车,摩托车,汽车



(图文:正确理解迭代的方式)


瀑布 - 迭代 - 敏捷,三者的差异是啥呢?



(图文:瀑布与迭代的区别)



(图文:瀑布的特点)



(图文:迭代的特点)



(图文:迭代与敏捷之间的区别)


大家都缺乏敏捷文化


从某种角度来讲,目前我们还是按照 「职能化筒仓式组织结构」进行分工协作的,开发和运维部门经常会坐在一起探讨,就运维流程如何改变、自动化能力如何建设等,然而自始至终无法突破的终极问题就是:无论我们如何改变,如果万一生产环境出了问题,谁承担责任?因为 DevOps 能力的建设需要一个过程,开发团队不敢承诺完全承担责任;而运维因为弱化审批和控制力,也认为不该为其承担责任。最终不了了之。


其实,使用迭代过度也只是权宜之计,真正的问题出在文化上,旧有的组织治理模式产生了各扫门前雪的官僚文化,没有责任共担,以及出现问题必然问责的文化。这种文化可能源自惯性的职能化思维,可能源自组织的绩效考评和激励制度。



(图文:跨职能产品化的组织结构)


现代关于“系统论”的研究已经在很多著作中强调,一个组织就是一个由人构成的复杂系统,组织中每一个人所能获得的信息是有限的(包括最高管理者也是),每个人或团队都只能基于自己有限的经验、有限的信息做出决策和行动。如果系统发生失败,例如生产环境出现问题,这必然是由于系统各个部分相互作用(从想法提出到软件投产各个环节的相互作用、系统与其它系统间的相互作用)产生的结果,对其中任何局部进行惩罚无非是寻找替罪羊,有害而无益。这时候组织真正应该做的,是相信每一个人都已经做出了最大努力,将相关干系人拉到一起对问题的根因进行分析,找到能够有效避免类似问题再次出现的解决方案,并确保该方案得到实施,对其效果进行验证。


这是 ThoughtWorks 在一篇 DevOps 文章中所提到的,我觉得一针见血,不过对于大部分企业,尤其是金融类企业,实践落地所付出的周期与成本可能会更大一些。


再举个例子,在 「讲个‘理论型’高可用架构的故事给你听」我曾经说过,我们的架构部模仿饿了么的 “随机故障测试系统(Kennel)” 自研了一套 “混世魔王”,英文名叫“ChaosDevil”,这个 “魔王” 会根据策略每隔一段时间随机将生产环境服务器关闭,以此来测试生产环境的快速恢复能力,促使各团队提升系统的稳定性;


有趣的是被指定优先使用的团队口头全力支持,但实践起来却迟迟延误,当然大家都比较忙,这也是可以理解的。不过我们可以设想下,如果没有这个“魔王”,大家可以给领导讲自己的系统很稳定(只要没出问题);


然而这个 “魔王” 可能会随时暴露出自己的系统并不像自己所宣称的那样稳定,会降低自己在上级心目中的“有能力”印象,随之而来的可能就是问责、惩罚;


这样的文化下,大家真正关心的是如何给领导“表现”,而不是在真正的系统稳定性上追求卓越。


所谓敏捷文化是个啥?


抄袭一张图吧,简单点



(图文:敏捷,乃至 DevOps 所需要的文化)


本文转载自头哥侃码公众号。


原文链接:https://mp.weixin.qq.com/s/Oy_bb3B8pAhIkjvCQOJWjw


2020-04-17 15:062442

评论

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

循环数组,一个可以释放无锁队列的力量

华为云开发者联盟

后端 开发 华为云 华为云开发者联盟

DApp钱包OP链智能合约质押挖矿系统开发源码丨案例丨演示

l8l259l3365

Redis魔法:点燃分布式锁的奇妙实现

互联网工科生

分布式锁 redis 底层原理

AI & Web3 盛会「EDGE」在港闭幕,融云国际影响力持续提升

融云 RongCloud

AI 技术 edge 峰会 web3

软件测试/测试开发丨基于人工智能的代码分析与 Bug 检测实战

测试人

人工智能 程序员 软件测试 自动化测试 测试开发

【论文解读】人工智能时代的科学发现

合合技术团队

人工智能 数据 科学

基于 ACK Fluid 的混合云优化数据访问(四):将第三方存储目录挂载到 Kubernetes,提升效率和标准化

阿里巴巴云原生

阿里云 Kubernetes 容器 云原生 ACK

WorkPlus安全专属的企业IM助力政企高效协作

BeeWorks

9月活动回顾(免费领取PPT)|火山引擎DataLeap、ByteHouse多位专家带来DataOps、实时计算等前沿技术分享!

字节跳动数据平台

数据库 大数据 火山引擎 DataLeap 企业号10月PK榜

软件测试/测试开发/校招推荐 |中科创达软件股份有限公司岗位开放

测试人

程序员 软件测试 招聘 测试开发 内推

再创新高!深开鸿OpenHarmony社区代码贡献量超过200万行!

极客天地

CogVLM:智谱AI 新一代多模态大模型

极客天地

出海方案全线升级!融云「爱嗨游」线上发布会定档

融云 RongCloud

互联网 全球化 融云 出海 GenAI

产品经理的API文档阅读指南

Noah

产品经理 API接口文档

天谋科技时序数据库 IoTDB 与 openEuler 操作系统完成兼容性互认证

Apache IoTDB

白皮书商业计划书编写 了解白皮书在区块链稳定币开发中的作用

区块链软件开发推广运营

数字藏品开发 dapp开发 区块链开发 链游开发 NFT开发

深度学习之目标定位

矩视智能

机器视觉 深度学习、

自动化模式下,企业全面预算管理的提升

智达方通

自动化 全面预算管理 预测分析

营销黑科技再升级:百度营销擎舵数字人4.0 带来哪些惊喜?

极客天地

@Scope 注解失效了?咋回事

江南一点雨

Java spring

云起无垠参编中国信通院《软件供应链安全能力中心建设指南》正式发布

云起无垠

低代码平台技术分享官丨工作流应用场景之任务交接

inBuilder低代码平台

工作流 低代码

提升代码重用性:模板设计模式在实际项目中的应用

树上有只程序猿

模板模式

实现即时沟通与协作的全功能IM即时通讯系统

BeeWorks

FISCO BCOS | 构建第一个区块链应用程序

BSN研习社

区块链 FISCO BCOS 区块链开发

GLB/GLTF在线纹理编辑

3D建模设计

GLTF glb 材质 纹理 贴图

大咖汇聚,KaiwuDB 邀您共话 AI+ DB 发展新趋势

KaiwuDB

KaiwuDB AIDB

我们在实施DevOps时遇到的挑战之一 —— 敏捷文化_DevOps & 平台工程_头哥侃码_InfoQ精选文章