一线踩坑总结:可落地的DevOps实践,根本不是砸钱买工具
别把DevOps做成了工具采购项目
很多公司现在的误区出奇一致:觉得搭了Jenkins、部署了K8s、买了商业APM监控,就是搞定DevOps了。说实话,我见过50人不到的团队,光维护DevOps工具链就养了三个人的,最后整体交付产出还不如原来小团队手工跑的快。
去年有个做垂直电商的朋友跟我吐槽,老板听了一场大厂峰会,回来就拍板要搞DevOps,一口气花了近百万买了全套商业工具,结果开发嫌流程太卡,天天绕开工具走,上线还是靠运维半夜爬服务器发包,钱打了水漂不说,团队怨气还特别大。
传统企业错误DevOps工具链部署架构图
为什么会变成这样?从根上说,DevOps是组织和文化的协同问题,不是工具堆砌的问题。工具是手,不是脑子啊。很多人搞反了顺序,先买工具,再硬改流程逼大家适应工具,这不扯吗?
正确的顺序应该是先找痛点,再补工具。比如你团队最大的问题是开发甩锅运维:“我本地跑的好好的,上线出问题凭什么算我的锅”,运维吐槽开发:“你写的什么垃圾代码,服务器崩了全我擦屁股”。那你第一步根本不是买工具,是把交付责任拉通,让开发跟着自己的代码上线,出问题一起修。工具只是帮你把这个流程固化下来而已,不是反过来帮你划清边界。
DevOps的核心是“合”,不是“分”。把开发和运维的墙拆掉,工具才有用。墙没拆,摆一堆工具只是在墙外面又多围了一层篱笆,更难走。
小团队的DevOps实践,能用就好,别追完美
现在网上一搜DevOps实践,全是大厂的万人工厂方案,什么多层门禁、全链路静态检测、AI智能化运维,看得人眼花缭乱。很多小创业公司一上来就照着抄,结果把自己玩死了。
10个人以下的技术团队,你搞什么三层合并门禁,每次提交全量跑静态检测,等半小时才能合并代码,开发的生产力直接砍半,图啥呢?大家本来坐一个屋子,喊一声就能对清楚的事,非要搞十层审批,纯纯的本末倒置。
10人以下创业团队极简DevOps交付流程图
我见过最棒的小团队DevOps实践,是一个做SaaS的5人创业组,他们就用了GitHub Action加简单的容器镜像托管,需求合完主干,五分钟就能上线,有问题一键回滚。他们没有复杂的权限系统,没有花里胡哨的可用性报表,核心就抓两点:
- 交付链路所有环节,尽量砍掉人工操作,能自动化就自动化,能省一秒是一秒
- 不管出什么问题,能快速回滚,把故障影响压到最小
就这两点,人家上线一年,没出过一次超过十分钟的线上故障,交付速度比同阶段的创业公司快三倍,拿到融资的时候,投资人专门夸了他们的交付效率。
不过话说回来,也不是说全流程自动化不对,只是你得匹配自己的团队规模。百人以上的团队,沟通成本上去了,肯定得做门禁,得做权限分割,不然乱改代码直接上线,出问题就是影响几十万用户的大事故。但十个人的小团队,本来沟通就没成本,搞那么复杂干嘛?耽误时间不说,还把大家的积极性磨没了。
太多团队落地DevOps,陷进了完美主义陷阱,要把所有环节都优化到极致,结果优化了大半年,还没出一个能用的流程,钱花了不少,市场窗口都错过了。
DevOps落地最容易忽略:度量要对准业务,不是对准KPI
DevOps落地最容易忽略:度量要对准业务,不是对准KPI
很多公司落地DevOps,最后变成为了度量而度量,天天盯着DORA四维度冲KPI,部署频率上去了,变更成功率好看了,结果业务交付反而慢了。
我之前听一个朋友说过一件真事,某金融公司落地DevOps,定的KPI是每个月部署次数要到100次,结果团队为了完成KPI,把配置修改、活动Banner文案调整都单独拿出来部署,看起来每个月一百多次很漂亮,实际上核心业务需求的上线时间反而从21天变成了28天——大家都把精力花在凑部署次数上了,没人关心真正的业务交付。
DevOps的最终目的,从来都是更快把价值交付给用户,不是给老板做好看的报表。我之前跟DevOps Research and Assessment团队的人交流,人家也说,DORA的四个指标是过程指标,不是结果指标,别搞反了。
你要盯着的结果,是这些:是不是核心业务需求从评审到上线的时间变短了?是不是线上重大故障的恢复时间变快了?是不是开发和运维吵架变少了?这些才是实打实的效果,那些数字再好看,都是虚的。
刚才说的那家金融公司,后来把KPI改了,只留两个核心度量:核心需求从评审到上线的平均时长,P1故障的平均恢复时间。不到半年,核心需求上线时间就降到了7天,故障恢复时间从2小时降到了15分钟,业务部门终于不用天天催技术交付了。
踩过这么多坑,最大的感受就是,DevOps从来不是什么高大上的玄学,也不是大厂专属的玩法。不管你是几个人的小团队,还是几千人的大团队,核心就是解决那点老矛盾:开发想快速推新,运维想稳定不出事,把对立变成合力而已。
别瞎抄作业。人家一万人的团队,流程复杂是应该的,你十个人跟着学,那不叫接轨国际,那叫东施效颦。适合自己的痛点,能解决自己问题的DevOps实践,才是好实践。