HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

我们在实施 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:062276

评论

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

week12学习总结

burner

拥抱K8S系列-03-服务器部署应用和docker部署应用区别(MySQL篇)

张无忌

MySQL Docker 运维

滴滴Ceph分布式存储系统优化之锁优化

滴滴技术

云计算 分布式存储 Ceph 滴滴技术

自定义线程池来实现文档转码

架构师修行之路

c语言函数指针之回调函数

C语言与CPP编程

C语言 回调函数 函数 函数指针

数字货币钱包系统定制开发,区块链钱包源码

13530558032

物联网的银河,华为的桨,少年的歌

脑极体

Redis做消息队列全攻略

架构师修行之路

redis MQ 消息队列

滴滴云平台事业群——就是稳!

滴滴技术

招聘 滴滴技术 滴滴云平台事业群分享月

滴滴推理引擎IFX:千万规模设备下AI部署实践

滴滴技术

人工智能 学习 AI 滴滴技术 IFX

区块链技术成为金融业务应用热点

CECBC

区块链 人工智能 金融

可编程网卡芯片在滴滴云网络的应用实践

滴滴技术

云计算 芯片 滴滴技术

实时数仓在滴滴的实践和落地

滴滴技术

大数据 滴滴技术 数据通道服务

【Spring注解驱动开发】AOP核心类源码解析,这是最全的一篇了!!

冰河

spring aop ioc

第 0 期架构师训练营第 8 周作业 1

fujin

突破传统 区块链如何实现病历永存

CECBC

区块链 电子病历 信息共享

滴滴数据通道服务演进之路

滴滴技术

大数据 滴滴技术 数据服务通道

隐私计算会成为“金融”向“数科”转型的一剂猛药?

hellompc

GPU虚拟机创建时间深度优化

滴滴技术

云计算 虚拟化 滴滴技术

滴滴七层接入平台实践和探索

滴滴技术

微服务 运维 滴滴技术 七层接入

1.Flink检查点算法-15

小知识点

scala 大数据 flink

Zeppelin SDK :Flink 平台建设的基石

Apache Flink

flink

基于Prometheus的微服务应用监控

易观大数据

迭代技术方案设计文档规范

程序员架构进阶

技术方案

分布式QoS算法解析

焱融科技

分布式 算法 焱融科技 分布式文件存储 QoS

滴滴数据仓库指标体系建设实践

滴滴技术

大数据 数据仓库 滴滴技术

区块链支付系统源码开发,USDT承兑支付平台

13530558032

浅析LR.Net工作流引擎

Learun

.net 敏捷开发 工作流

第 0 期架构师训练营第 8 周作业2-总结

fujin

滴滴ElasticSearch千万级TPS写入性能翻倍技术剖析

滴滴技术

大数据 elasticsearch 滴滴技术

合约跟单系统开发,数字货币合约跟单软件搭建

13530558032

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