DevOps是踩过坑才懂的协作日常

上次在南京1024开发者节的场外茶歇区,碰到做制造业IT负责人的老周。他刚从一个DevOps主题的分论坛出来,手里攥着半杯凉掉的美式,第一句话就是”这概念被讲得太玄了”。

工具堆得再高也填不上协作的缝

他说之前公司为了赶数字化的进度,一口气买了市面上最贵的一整套CI/CD流水线工具,从代码提交、自动测试到生产部署的全链路节点都配齐了,光落地实施就花了小半年。结果跑了俩月,问题一点没少。开发说每次要改个线上的参数,得走三天的跨部门审批流程,等批下来,客户的投诉都攒了一摞;运维说开发扔过来的部署包连个版本说明都没有,半夜被告警喊起来排障,翻半小时日志才发现是开发偷偷把依赖的第三方组件升了大版本,连个招呼都没打。

企业CI/CD流水线配置界面截图
企业CI/CD流水线配置界面截图

这事没那么玄。说白了DevOps从来不是什么需要全员背诵的方法论条文。是之前墙两边的人,终于愿意坐下来,把互相甩锅的环节摊开了算跨部门协作的隐性成本。我真见过有公司对DevOps的理解停留在”让开发多干点运维的活”,美其名曰研发运维一体化,最后开发写业务代码的时间被挤掉三分之一,天天自己写脚本查日志,怨声载道,运维那边还是守着原来的审批流程一点没动,这哪是DevOps,纯纯找了个背锅的名头。

所有的流程卡顿最后都会变成线上的事故

去年在苏南一家做精密零部件的工厂采访,他们的IT团队之前的版本上线流程长到离谱。开发写完代码,先给部门经理审,经理签完字给测试团队,测试测完打回开发改bug,改完再走一遍全量测试,最后把安装包交到运维手里,运维还要提前一周申请生产环境的操作窗口。碰到业务旺季,窗口排到两周后是常事。有次核心的生产排程系统出了个计算bug,把当天的产能数算错了,从发现问题到上线修复,整整花了9天。中间业务部门打了三个电话催,最后算下来因为排程错配造成的原材料浪费,够他们把整个团队的DevOps落地培训做三轮。

DevOps全链路协作角色权责流程图
DevOps全链路协作角色权责流程图

很多人说DevOps的核心是快。这话只说对了一半。快的前提是权责清晰。之前碰到个互联网小团队,为了追求极致的上线速度,直接把生产环境的部署权限全放开了,开发提交完代码就能直接推到线上,一开始确实爽,一天能上八个版本。结果第三个月就出了个大事故——有人把测试库的连接串不小心推到了生产配置里,直接把大半个月的用户真实订单数据导进了测试环境。代价是什么?全团队停了两周做数据恢复,CTO在全员会上做公开检讨,之前省下来的那点上线时间,全变成了补窟窿的加班。

真正落地的DevOps从来不会搞一刀切

别信那些写在白皮书里的”通用最佳实践”。你做核心金融交易系统的,再追求快,涉及资金划转的版本上线,该有的双人复核、合规校验一个都不能少,不然省下来的那点上线时间,最后都要赔在合规罚款里。你做内部员工工具的,本来就没什么外部用户,非要搞跟核心交易系统一样的六级审批流程,那就是纯纯浪费所有人的时间。

说实话,DevOps最有意思的地方,根本不是那些写在营销手册里的漂亮指标。是你在自己的团队里,一点点试出来的最舒服的节奏。可能是开发和运维每周固定开半小时的同步会,把下周要上的版本列个公开的清单;可能是把之前需要走三天审批的配置修改,拆成低风险的部分自动放行,高风险的部分保留人工审核;可能是把之前散在五六个工作群里的告警信息,统一攒到一个公共看板上,谁有空谁先看,不用非等到值班的运维睡眼惺忪爬起来处理。

我真见过有公司为了凑DevOps的考核指标,硬把上线频率从一个月一次改成一天一次,根本不管业务有没有那么多需求要上线,最后流水线天天跑空,运维还要每天花半小时统计上线次数报给管理层,这不是纯纯折腾人吗?

上次跟老周在茶歇区聊到最后,他说他们团队跑了一年落地的DevOps,最直观的变化根本不是对外宣传的”交付效率提升多少倍”,是半夜被告警电话吵醒的次数,从之前的一周三次,变成了一个月一次。开发不用再因为运维卡上线跟人拍桌子吵架,运维也不用天天给开发的粗制滥造擦屁股。当你把跨部门沟通的墙拆了,平均故障修复时间自然会降下来,根本不需要你硬定指标去要求所有人。

就这点变化,就够了。

当然做这些事是有成本的。团队要花时间把之前散碎的流程一点点理顺,要有人专门盯着流水线的稳定性,要有人定期把各个环节的卡点找出来优化,这些事都没有直接写业务代码那么有成就感,但做了之后,所有身处其中的人都会觉得轻松。很多人一开始觉得DevOps是技术团队自嗨的事,其实根本不是。技术团队跑顺了,业务部门提的需求能更快看到效果,出了问题能更快修复,最后受益的是整个公司的运转。

免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。如有侵权请联系删除。
文章名称:DevOps是踩过坑才懂的协作日常
文章链接:https://www.itcdj.com/it/242.html