踩坑总结的DevOps实践:别硬套大厂模板
别迷信“标准DevOps流程”,适合你的才对
现在网上到处都是大厂放出来的DevOps干货,从工具链选型到流程设计,写得一清二楚,很多人一看就觉得,这就是标准答案,抄就完了。
说实话,大厂的流程是适配它几千几万人的规模来的,你一个十个人不到的小团队,套人家的流程,跟穿三尺宽的袍子走路一样,能不绊倒吗?
创业团队错误DevOps流程示意图
DevOps的核心是什么?是打破开发和运维之间的壁垒,让价值流动得更快。你就三五个开发,人人都能登服务器改配置,本身就没什么壁垒,你非要给自己建一道墙,图什么呢?
当时给那个创业团队改方案,我直接砍了三道审批,撤了三个没用的工具,就留了GitHub Actions做自动构建,加阿里云的一键发布,两步搞定。改完之后,发版从原来的两个多小时,变成不到十分钟,开发不用天天等审批,运维不用天天背锅,一下子就安静了。
很多人搞错了主次,流程是为业务服务的,不是业务为流程服务。
最容易踩的坑:权限把流程活活卡死
我见过不下十家公司,搞DevOps第一步就是拆分细粒度权限,开发不能碰生产配置,运维不能看代码提交,美其名曰“权责清晰”,“符合安全规范”。
大公司要合规,要满足监管要求,这么做没问题。小公司,十几个人,也非要这么搞,结果就是线上出了个小问题,开发要改配置,找运维审批,运维刚好出差,整个团队干等几个小时,看着用户投诉刷爆客服。
之前我待过的一家三十多人的公司,原来上线要过四道审批:产品确认、开发负责人签字、运维审批、安全扫描审核。有次情人节前,支付链路出了个小漏洞,要紧急修复,审批走了一个半小时,少赚了快十万,老板当时脸都绿了。
后来我们改了分级发布权限机制,把发布分成三类:紧急热修复、普通小版本、重大版本,紧急修复只要开发负责人确认就能上线,事后补审批就行,普通小版本开发+运维确认,重大版本才走全流程。
改完之后,出问题的响应速度快了十倍,乱发版本的情况反而没增加多少——毕竟自己发的自己扛,没人敢乱开玩笑。
DevOps分级发布权限架构图
不过话说回来,不是说权限不要管,该有的安全底线肯定要有,生产数据不能随便乱改,核心系统的权限肯定要收。但别为了凑所谓的“标准DevOps”,把自己的手脚绑住,DevOps是来帮你提速的,不是来当路障的。
工具选型:够用就好,别堆没用的玩具
工具选型:够用就好,别堆没用的玩具
现在DevOps圈子里的风气真的有点怪,好像工具凑不齐全套,就不算会做DevOps。CI要用Jenkins,监控要上Prometheus+Grafana,日志要搭ELK,还要搞服务网格,上可观测性平台,少一样都觉得自己落后了。
我见过一个团队,为了凑齐“完整DevOps工具链”,前后换了三批CI工具,从Jenkins换到GitLab CI,又换到自建的CI平台,折腾了三个多月,钱花了十几万,至今CI/CD都没跑顺,更别说落地提效了。
还有更夸张的,十个人的团队,花二十万采购商业DevOps平台,结果80%的功能从来没用过,每年还要交六万服务费,老板提起来就心疼。
你搞DevOps是为了解决自己的痛点,不是为了给别人参观的对不对?你现在的痛点是发版太慢,那就先把CI/CD搭好,别一开始就想着上可观测性。你的痛点是线上出问题找不到原因,那就先补监控,工具一个一个加,够用就好。
十个人以下的团队,用免费的Saas工具完全够,GitHub Actions跑CI,云厂商的监控直接用,干嘛非要自己搭服务器折腾?省下来的时间和钱,给团队发奖金、改产品不好吗?
最近跟几个从大厂出来的朋友聊天,都说到一件事,现在大厂都在剪流程,砍冗余的工具,把没必要的审批都撤了,就是为了降本增效,结果一堆小公司还在捡大厂淘汰下来的复杂流程往身上套,这不就是拿错了药方吗?
DevOps实践,说穿了根本不是什么高大上的东西,核心就是两件事:能自动化的别手动,别让开发天天干打包传文件的破活;谁写的代码谁负责维护,别写完了扔给运维擦屁股。剩下的,都是跟着你的团队规模、业务需求慢慢调的。
反正坑我踩过不少,说这些,就是帮你少绕点路而已。