DevOps不是流水线魔法

上个月在南京1024的开发者沙龙角落,碰到个穿着格子衫的运维工程师,蹲在地上啃肉夹馍吐槽。他们公司去年砸了小几十万上了全套DevOps工具链,结果上线频率还是跟三年前一样,每周二凌晨发版,搞不好还要回滚。

他说这话的时候,肉夹馍里的油滴到了键盘上。

你说这钱花得冤不冤?

流水线跑起来不等于DevOps

很多人对DevOps的第一个误解,就是把工具链等同于DevOps本身。

说白了,他们眼里的DevOps,就是装个Jenkins,配好GitLab的webhook,代码一推自动跑单测、打包、部署到测试环境。至于测试要不要手动点,提bug要不要走OA审批,改完代码要不要等运维排期才能上预发——这些跟流水线没关系,自然不算在DevOps的范畴里。

就像那哥们的公司,流水线确实跑起来了,从代码提交到部署测试环境只需要12分钟。但从测试环境到线上,还是要走整整三天的流程:测试提bug要走工单,开发改完要等运维排发布窗口,安全扫描出的问题要跨三个部门签字确认。中间卡壳的地方,全是看不见的部门墙。

企业CI/CD流水线节点卡点示意图
企业CI/CD流水线节点卡点示意图

我当时跟他说,你这不是DevOps,是把原来的人工流水线,换成了自动流水线而已。本质上的堵点,半分没动。

他愣了愣,说那我们买的那套几十万的工具算啥?

算个高级点的代码打包器呗。

最容易被忽略的成本是上下文同步

上次在杭州的一个创业团队交流,他们的DevOps落地没花多少钱,就用了开源的工具链,上线频率做到了每天十几次,线上故障的恢复时间比之前缩了70%。

我问他们做对了啥。

他们说,没搞啥复杂的,就是把开发和运维的群打通了,线上出问题不用走层层审批,直接拉相关的人进群处理。还有,每个月让开发轮值一周的运维岗,碰到线上问题自己处理。

就这么简单?

就这么简单。

真正的DevOps落地,第一步永远是拆墙,不是装工具。很多团队砸钱买最贵的监控、最智能的告警,却从来没想过,开发不知道运维要管什么指标,运维不知道开发写的代码有什么坑,两边的上下文完全是断的。

比如开发为了赶进度,在代码里加了个新的第三方依赖,没跟运维说。运维那边的镜像源没配这个依赖的权限,半夜线上服务起不来,找了俩小时才发现问题出在这。

你说这是工具的问题?

是人的问题。

DevOps开发运维上下文同步看板截图
DevOps开发运维上下文同步看板截图

不过话说回来,上下文同步这事确实麻烦。你不能要求开发每次提交代码都给运维发个微信说我加了啥依赖,也不能要求运维每次改配置都给开发发个邮件说我动了啥参数。

那怎么办?

他们团队的做法是,在共享看板上列了三个核心字段:每次代码提交的依赖变更、每次部署的配置调整、每次线上故障的根因分析。所有人都能看,不用审批,不用走流程。

谁踩坑谁就会主动往上填。

别为了流程把人逼成工具的奴隶

我见过太多团队搞DevOps搞到走火入魔。

要求开发每次提交代码必须写满100字的commit message,必须填完所有的工单字段才能触发流水线,甚至要求每次部署必须生成一份20页的合规报告,哪怕只是改了个按钮的颜色。

结果呢?

开发为了省事,随便凑字数填commit message,工单里的字段全选默认选项,合规报告直接复制上一次的模板改个日期。

你说这是DevOps要的效果?

这是把人逼成了给工具填数据的奴隶。

DevOps的本质是把“谁的事谁负责”的模糊边界,变成所有人对线上结果负责。不是为了搞一堆流程把人管得死死的,是为了让大家不用被流程卡着,能快速把事做成。

比如那个杭州的创业团队,一开始也定了一堆规则,后来发现大家都抵触,干脆砍了一半。只留了三个要求:代码提交必须关联线上问题单,流水线失败必须2小时内有人跟进,线上出问题必须24小时内写完根因分析。

就这三条,够了。

真的。

谁踩坑谁知道。

他们说,之前为了凑流程花的时间,现在全用来改bug和优化代码了。反正线上出了问题,所有人都要担责,没人会甩锅说这是开发的问题还是运维的问题。

说实话,DevOps这事没那么玄。

不是要你上多贵的工具,不是要你搞多复杂的流程。

是要你把挡在人和人之间的墙拆了,把卡着事的流程砍了,让大家能痛痛快快把代码写好,把线上服务跑稳。

就这么简单。

免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。如有侵权请联系删除。
文章名称:DevOps不是流水线魔法
文章链接:https://m.itcdj.com/it/162.html