上周在成贤街那家开了快十五年的皮肚面店,坐我对面的是之前在某头部厂做了六年SRE的老陈。他刚陪完客户的技术团队复盘完大促的故障,筷子戳着碗里的皮肚半天没动。
被误解的岗位定位
很多公司招SRE的逻辑,说穿了就是给运维岗换个名头涨点工资。
原来运维要扛的服务器巡检、发布值守、半夜接告警的活全扔过去,甚至还要兼着写自动化脚本的KPI,工资比原来的运维岗高个两三千,就拍着胸脯说自己公司落地了谷歌同款SRE体系。
老陈说这话的时候蒜汁溅到了眼镜片上。他上次对接的客户技术总监跟他拍桌子,说你们SRE不就是高级运维,为啥还要扯什么错误预算?
错得离谱。
很多人对SRE的认知还停在最早公开文档的表层,只看到它要管稳定性、要写自动化代码,却没摸到核心的逻辑——SRE的本质是用工程化的方法把稳定性的成本算清楚,而不是让一帮工程师24小时绷着神经扛所有线上风险。
这里的错误预算从来不是给运维团队定的扣钱KPI。比如公司的核心交易链路定了全年99.95%的可用性,算下来全年允许的故障停机时间大概是4个多小时,这部分时间就是整个技术团队可以自由支配的“容错额度”。如果这季度赶进度上新功能,把容错额度花超了,全团队就得停下来先把稳定性的窟窿补上;要是额度没花完,想怎么快速试错都没人拦着。
他见过最离谱的团队,把错误预算的考核算成了运维团队的专属指标,故障超了就扣运维的绩效,完全忘了这个工具本来是拉着产品、开发、运维坐下来算总账的纽带。

落地时最容易踩的坑
刚接触SRE的团队,十个有八个会先掉进监控的坑里。
上来就把全套开源监控栈搭完,Prometheus、Grafana、ELK铺得满满当当,告警规则写了上千条,结果每天团队要接几百条毫无价值的告警。半夜被磁盘使用率80%的提示吵醒,转头一看是早就下线的测试环境机器。
告警比故障多。
很多团队总觉得监控的指标越多越好,恨不得把服务器上每个进程的内存占用都扒出来做个精美的曲线图,却从来没坐下来梳理过:哪些告警是真的会影响用户实际使用的,哪些是只要不触发连续三个周期的阈值,就根本不需要人半夜爬起来处理的。
另一个更常见的坑,是把SRE团队和开发团队完全割裂开。开发只管把功能写完扔到线上,稳定性的事全甩给SRE,出了故障第一反应是找SRE背锅——你们怎么没把监控做好,没把扩容提前准备好?
老陈说上次碰到个开发团队,为了赶双11的上线进度,直接把数据库的慢查询日志全关了。结果上线半小时就把核心库打满,用户付款直接报错。复盘会上开发居然说SRE没提前做数据库的性能基线检查,他当时差点把手里的皮肚面扣对方脸上。

真的落地要走的第一步

别上来就买几十万的稳定性平台,别上来就定什么全年可用性的宏大目标。
先把过去三个月所有的线上故障列个表。每个故障花了多久定位、多久恢复、处理的时候卡在哪、当时到底是谁在负责,全部摊在白板上列清楚。
这是老陈现在给所有客户做落地的第一步。他见过太多团队花了大价钱搭完全套体系,结果每次故障发生的时候,大家还是在微信群里@来@去找负责人,连哪个接口的流量突增会影响核心功能都没摸明白。
比如你们之前每次大促都会因为网关流量突增打挂服务,那就先针对这个场景,把从流量入口到后端服务的全链路指标拆出来,算清楚之前每次故障到底是哪个节点扛不住,需要多大的扩容阈值,告警触发了之后谁第一时间来处理,处理的操作手册写得明明白白,连点哪个按钮能快速扩容都标注清楚,别等故障发生了大家手忙脚乱。
很多人觉得SRE必须是会写代码、懂运维、还能扛住全年无休接告警的全栈大神。其实根本不是。
小团队根本不需要招什么专职的SRE。只要把稳定性的账算清楚,让开发团队在写功能的时候就考虑到故障的兜底方案,把之前全靠人扛的重复值守活,换成自动化脚本去处理,慢慢就摸到SRE的门道了。
别搞虚的。
稳定性从来不是靠某一个团队硬扛出来的。是每一个参与写代码、改需求、做运营的人,都知道自己的操作可能会影响到真实用户的使用体验,愿意为这份结果担起对应的责任。