SRE 和运维这俩词在国内经常混用。本文聊聊我的体会。

表面:title 区别

  • 运维(Ops):偏操作、值班、应急响应
  • SRE:偏工程化、自动化、可靠性指标

工作内容差异

维度 运维 SRE
主要产出 操作 / 维护文档 代码 / 平台
时间分配 70% 运行,30% 改进 50% 工程,50% 运营
故障态度 修好就行 必须复盘 + 写代码避免再发
工具 现成工具 + 脚本 自研平台 / Operator
KPI 系统可用性 SLO + Error Budget

SLO 是 SRE 的精髓

运维的 KPI 经常是"99.9% 可用"——但这只是个空口号。

SRE 把它做成可执行的:

SLO: 服务 X 的 99 分位延迟 < 200ms,月可用率 >= 99.9%

Error Budget:
- 30 天 99.9% = 允许 43 分钟不可用
- 已用:12 分钟(上周一次故障)
- 剩余:31 分钟

规则:
- Error Budget 充足 → 允许激进发布
- Error Budget 见底 → 冻结发布,专注稳定性

Toil 这个概念

SRE 把"重复、自动化、无长期价值"的工作叫 toil。SRE 的目标是 toil < 50% 工作时间

典型 toil:
- 每天看监控
- 手动重启挂掉的服务
- 手动扩容
- 收集故障数据

每出现一个 toil,要么自动化掉,要么消除。

实操差异举例

场景:某个服务凌晨经常 OOM

运维思路:
1. 加内存
2. 写脚本检测 OOM 自动重启
3. 加监控告警

SRE 思路:
1. 拉 OOM 时段的内存曲线 + GC 日志
2. 找开发改代码(内存泄漏)
3. 加 HPA 基于 memory 自动扩
4. 写 postmortem,更新 runbook
5. 把这类问题做成共性检查项加到 CI

国内现状

国内很多公司 title 叫 SRE 但实际干运维的活。原因:

  • 工程师文化没那么强
  • 老板觉得"维护好就行,写啥代码"
  • 业务变化快,工程化投入 ROI 看不出来

但好的公司在转:阿里、字节、美团内部都有真正意义的 SRE 团队。

想从运维转 SRE 怎么干

  1. 写代码:Python / Go,至少能写中等复杂度工具
  2. 学 SLO 设计:Google SRE 三本书必读
  3. 拥抱 IaC:手动操作的事都用 Terraform / Ansible 管起来
  4. 跟开发结对:参与 design review,把可观测性塞进去
  5. 量化一切:操作数、自动化率、故障数、MTTR

反过来呢?SRE 转运维有意义吗

有的。SRE 在大公司久了容易"工程化过度"——动不动写平台,但小公司根本承担不起。

转去做 ops 反而能保持"做对一件事"的能力——不是所有问题都要平台化。

我的观点

SRE 不是"运维 2.0",是不同的工种。但都要懂工程化思维。

最值钱的人是:能像运维一样灵活解决眼前问题,又能像 SRE 一样消除问题根源

教训:title 不重要,重要的是你解决的问题在系统里"消失"了,还是只是被你"压住"了。

标签: none

添加新评论