# Summary Site Reliability Engineering SRE 团队:会设定网站必须 $99.9\%$ 可用(SLO),当流量激增时自动扩容,出问题时快速回滚;同时写工具让运维自动化。 # Cues [[SLO]] # Notes 你问的这个其实是一个经典缩写问题(术语辨析类)的变体——很多人第一次听到 SRE 时会混淆它到底指的是职位、团队,还是一种工作方法。 --- 什么是 SRE? SRE = Site Reliability Engineering(站点可靠性工程)。 它最早由 Google 提出,本质上是一种把软件工程方法应用到运维/系统可靠性上的理念与实践。 * 定位:介于开发(Dev)和运维(Ops)之间的角色 * 目标:让系统在规模化运行时依然保持高可用性(高可靠、低延迟、可扩展) * 方法:用工程化手段(自动化、监控、故障预案、容量规划等)替代传统“人肉运维” --- SRE 的核心思想 1. 错误预算(Error Budget) * 不是追求 $100\%$ 可用,而是根据 SLA/SLI/SLO 定义“可接受的错误范围”。 * 在错误预算内可以大胆发布新功能,超出预算则必须优先修复可靠性问题。 2. 自动化 * 尽量减少手工操作,所有重复性、容易出错的工作都自动化(CI/CD、监控报警、扩缩容等)。 3. 监控 & 可观测性 * 关注指标:延迟、流量、错误率、资源使用。 * SRE 团队常会搭建完善的监控系统(如 Prometheus、Grafana)。 4. 事故响应与复盘 * 出现故障时,强调快速响应(On-call 轮值)。 * 事后复盘(Postmortem)不追责,而是找出系统性改进方法。 --- 举个例子 假设你有一个电商网站: * 开发团队:负责写新功能,比如优惠券系统。 * 传统运维:负责上线部署、服务器维护。 * SRE 团队:会设定网站必须 $99.9\%$ 可用(SLO),当流量激增时自动扩容,出问题时快速回滚;同时写工具让运维自动化。 --- 要不要我再帮你对比一下 SRE 和传统运维/DevOps 的区别,用一个表格总结?