上个月在南京1024的开发者沙龙角落,碰到个穿着格子衫的运维工程师,蹲在地上啃肉夹馍吐槽。他们公司去年砸了小几十万上了全套DevOps工具链,结果上线频率还是跟三年前一样,每周二凌晨发版,搞不好还要回滚。
他说这话的时候,肉夹馍里的油滴到了键盘上。
你说这钱花得冤不冤?
流水线跑起来不等于DevOps
很多人对DevOps的第一个误解,就是把工具链等同于DevOps本身。
说白了,他们眼里的DevOps,就是装个Jenkins,配好GitLab的webhook,代码一推自动跑单测、打包、部署到测试环境。至于测试要不要手动点,提bug要不要走OA审批,改完代码要不要等运维排期才能上预发——这些跟流水线没关系,自然不算在DevOps的范畴里。
就像那哥们的公司,流水线确实跑起来了,从代码提交到部署测试环境只需要12分钟。但从测试环境到线上,还是要走整整三天的流程:测试提bug要走工单,开发改完要等运维排发布窗口,安全扫描出的问题要跨三个部门签字确认。中间卡壳的地方,全是看不见的部门墙。

我当时跟他说,你这不是DevOps,是把原来的人工流水线,换成了自动流水线而已。本质上的堵点,半分没动。
他愣了愣,说那我们买的那套几十万的工具算啥?
算个高级点的代码打包器呗。
最容易被忽略的成本是上下文同步
上次在杭州的一个创业团队交流,他们的DevOps落地没花多少钱,就用了开源的工具链,上线频率做到了每天十几次,线上故障的恢复时间比之前缩了70%。
我问他们做对了啥。
他们说,没搞啥复杂的,就是把开发和运维的群打通了,线上出问题不用走层层审批,直接拉相关的人进群处理。还有,每个月让开发轮值一周的运维岗,碰到线上问题自己处理。
就这么简单?
就这么简单。
真正的DevOps落地,第一步永远是拆墙,不是装工具。很多团队砸钱买最贵的监控、最智能的告警,却从来没想过,开发不知道运维要管什么指标,运维不知道开发写的代码有什么坑,两边的上下文完全是断的。
比如开发为了赶进度,在代码里加了个新的第三方依赖,没跟运维说。运维那边的镜像源没配这个依赖的权限,半夜线上服务起不来,找了俩小时才发现问题出在这。
你说这是工具的问题?
是人的问题。

不过话说回来,上下文同步这事确实麻烦。你不能要求开发每次提交代码都给运维发个微信说我加了啥依赖,也不能要求运维每次改配置都给开发发个邮件说我动了啥参数。
那怎么办?
他们团队的做法是,在共享看板上列了三个核心字段:每次代码提交的依赖变更、每次部署的配置调整、每次线上故障的根因分析。所有人都能看,不用审批,不用走流程。
谁踩坑谁就会主动往上填。
别为了流程把人逼成工具的奴隶
我见过太多团队搞DevOps搞到走火入魔。
要求开发每次提交代码必须写满100字的commit message,必须填完所有的工单字段才能触发流水线,甚至要求每次部署必须生成一份20页的合规报告,哪怕只是改了个按钮的颜色。
结果呢?
开发为了省事,随便凑字数填commit message,工单里的字段全选默认选项,合规报告直接复制上一次的模板改个日期。
你说这是DevOps要的效果?
这是把人逼成了给工具填数据的奴隶。
DevOps的本质是把“谁的事谁负责”的模糊边界,变成所有人对线上结果负责。不是为了搞一堆流程把人管得死死的,是为了让大家不用被流程卡着,能快速把事做成。
比如那个杭州的创业团队,一开始也定了一堆规则,后来发现大家都抵触,干脆砍了一半。只留了三个要求:代码提交必须关联线上问题单,流水线失败必须2小时内有人跟进,线上出问题必须24小时内写完根因分析。
就这三条,够了。
真的。
谁踩坑谁知道。
他们说,之前为了凑流程花的时间,现在全用来改bug和优化代码了。反正线上出了问题,所有人都要担责,没人会甩锅说这是开发的问题还是运维的问题。
说实话,DevOps这事没那么玄。
不是要你上多贵的工具,不是要你搞多复杂的流程。
是要你把挡在人和人之间的墙拆了,把卡着事的流程砍了,让大家能痛痛快快把代码写好,把线上服务跑稳。
就这么简单。