SRE 可靠性工程师成长路径
路径二:SRE 可靠性工程师#
目标受众:有一定运维基础,希望专注于系统稳定性、故障处理和可靠性工程。
核心目标:建立系统化的可靠性思维——能设计 SLO 体系、主导故障排查、推动混沌工程落地,让稳定性成为可度量、可驱动的工程目标。
阶段一:可靠性思维基础(1–3 个月)#
先建立 SRE 认知框架,再学可观测性工具。顺序很重要:概念 → 监控 → 性能调优。
SRE 核心理念#
是什么:Google 提出的站点可靠性工程方法论,核心是用软件工程的方法解决运维问题。
为什么学:SRE 提供了一套让"稳定性"可量化、可驱动的方法论,是告别救火模式的认知基础。
掌握标准:
- 能解释 SLI(指标)、SLO(目标)、SLA(协议)三者的关系和区别
- 能解释 Error Budget 的概念:可用性 = 1 - Error Budget 消耗速率
- 能区分 Toil(重复手工工作)和工程工作,并给出降低 Toil 的具体方案
- 能描述 Google SRE 的"错误预算策略":Error Budget 耗尽时冻结功能发布
- 能解释为什么 SRE 不追求 100% 可用性,以及 99.9% vs 99.99% 的实际代价差异
📖 深入阅读:SRE 概念与原则:从 Google SRE 到工程实践
可观测性三支柱#
是什么:Metrics(指标)、Logs(日志)、Traces(链路追踪)三种数据类型的综合运用。
为什么学:只有监控指标,你知道服务慢了,但不知道哪里慢。三支柱联动才能快速定位根因。
掌握标准:
- 能描述三种数据类型各自擅长回答的问题(What/Why/Where)
- 能用 Exemplar 将 Metrics 异常点关联到具体的 Trace ID
- 能设计告警策略:Metrics 触发告警 → Traces 定位调用链 → Logs 查详细上下文
- 能评估现有系统的可观测性成熟度,识别盲区(什么情况下三支柱都无法定位问题)
Prometheus 监控实战#
是什么:时序指标采集和告警系统,Pull 模型,强大的 PromQL 查询语言。
为什么学:Prometheus 是 K8s 生态的监控事实标准,SRE 必须精通。
掌握标准:
- 能写 PromQL 计算服务 P50/P99 延迟、错误率、吞吐量(SLI 核心指标)
- 能用
histogram_quantile正确计算分位数,理解其精度限制- 能设计 Error Budget 燃烧率告警(
burn rate > 14.4触发紧急告警)- 能配置 Alertmanager 路由树:按 severity 分级,按团队路由,避免告警风暴
- 能评估 Prometheus vs VictoriaMetrics 的适用场景(数据量、查询复杂度、高可用要求)
📖 深入阅读:
Linux 性能调优#
是什么:系统层面的性能诊断能力,覆盖 CPU、内存、IO、网络四个维度。
为什么学:应用层问题经常根因在系统层。不会性能分析,你只能治标不治本。
掌握标准:
- 能用
perf top/record/report定位 CPU 热点,理解火焰图的读法- 能区分 Minor Page Fault 和 Major Page Fault,判断是否存在内存换页压力
- 能用
iostat -x分析磁盘瓶颈(%util、await、r/s、w/s)- 能用
ss -s分析 TCP 连接状态分布,判断是否存在连接池耗尽- 能用
strace/ltrace追踪系统调用,定位 "D state" 进程卡在哪里📖 深入阅读:Linux 性能调优实战:CPU、内存、IO、网络
阶段一完成检验#
场景题:你的服务 SLO 是 99.9% 可用性(每月 Error Budget = 43.8 分钟)。本月已消耗 38 分钟。产品经理要求这周发布一个高风险功能变更。你作为 SRE 如何决策?请给出具体的决策框架和沟通方案。
阶段二:故障排查与告警体系(3–6 个月)#
先掌握方法论再学工具,否则容易陷入"会用工具但不知道什么时候用"的困境。
故障排查方法论#
是什么:系统化的故障定位框架,包括 USE Method、RED Method、5 Whys、故障树分析。
为什么学:凭直觉排查容易走弯路,方法论让你在压力下也能有条不紊地定位根因。
掌握标准:
- 能用 USE Method(Utilization/Saturation/Errors)对系统资源做全面体检
- 能用 RED Method(Rate/Errors/Duration)诊断微服务的外部可见性能
- 能主持故障复盘(Post-Mortem),写出包含时间线、根因、预防措施的 RCA 文档
- 能区分"症状"和"根因",避免只处理表象的错误倾向
- 能在 15 分钟内完成初步定界(网络/应用/数据库/基础设施)
📖 深入阅读:
告警体系设计#
是什么:从告警规则设计、分级路由、降噪策略到 on-call 轮班的完整告警体系。
为什么学:告警太多 = 告警疲劳 = 真正的故障被淹没。好的告警体系让工程师只被值得起床的事叫醒。
掌握标准:
- 能设计三级告警体系(P1 紧急/P2 重要/P3 提醒)并定义各级响应 SLA
- 能用告警分组、路由树、抑制规则减少告警风暴
- 能区分"症状告警"(用户可感知)和"原因告警"(内部指标),解释为什么症状告警优先
- 能设计 on-call 轮班制度,包括 escalation policy 和 runbook 链接
- 能量化告警质量:Alert Fatigue Rate、MTTA(Mean Time to Acknowledge)
📖 深入阅读:
SLO 落地实践#
是什么:将抽象的"可靠性目标"转化为具体的 SLI 指标、SLO 数值、Error Budget 告警规则。
为什么学:没有 SLO,稳定性改进是无法驱动的。SLO 把"服务要稳定"变成"Error Budget 消耗 < X%"的可量化目标。
掌握标准:
- 能为不同类型服务(HTTP API / 消息队列 / 批处理任务)选择合适的 SLI 定义方式
- 能配置基于 Error Budget 燃烧率的多窗口告警(1h/6h/24h/3d)
- 能用 PromQL 计算 Error Budget 剩余百分比并在 Grafana 上可视化
- 能在 Error Budget 耗尽时启动 Freeze(冻结发布)流程并与产品团队沟通
混沌工程#
是什么:通过主动注入故障(网络延迟、节点宕机、CPU 压力)验证系统韧性,在真实故障前发现薄弱点。
为什么学:只有测试过,你才知道系统真的能抗住故障。等真实故障来测试代价太高。
掌握标准:
- 能描述混沌工程的四个原则(稳态假设、实验最小爆炸半径、生产环境验证、自动化)
- 能用 Chaos Mesh 设计 PodChaos/NetworkChaos/StressChaos 实验
- 能在实验前定义可观测的"爆炸半径"和回滚条件
- 能将混沌实验集成进 CI/CD 流水线做回归验证
- 能设计 GameDay 演练,让多团队参与故障响应演练
📖 深入阅读:Chaos Mesh 混沌工程实战:系统韧性验证
阶段二完成检验#
场景题:凌晨 2 点,你收到告警:某核心支付接口错误率从 0.1% 突增到 8%,已持续 5 分钟。你没有收到任何代码变更通知。请描述接下来 30 分钟内的完整响应动作,包括你会看哪些指标、执行哪些命令、如何判断是否需要回滚。
阶段三:大规模可靠性治理(6–12 个月)#
从单集群排障走向多集群体系化治理,建立可扩展的可靠性工程能力。
多集群运维#
是什么:多个 K8s 集群的统一管理、统一监控、统一发布协调。
为什么学:单集群是不够的:跨区高可用、环境隔离、合规要求都需要多集群。但多集群带来了新的运维复杂性。
掌握标准:
- 能设计多集群监控聚合方案(Thanos/VictoriaMetrics 联邦查询)
- 能用 ArgoCD ApplicationSet 统一管理跨集群应用部署
- 能设计跨集群服务发现和流量路由(Submariner、Istio 多集群)
- 能制定多集群 Kubernetes 升级策略(滚动升级、金丝雀节点升级)
- 能设计跨集群 Backup/Restore 方案(Velero)
📖 深入阅读:多集群 K8s 管理:联邦、统一观测与运维实践
高级可观测性:ELK 与链路追踪#
是什么:日志管道(Filebeat → Logstash → Elasticsearch → Kibana)与分布式追踪(OpenTelemetry)的深度实践。
为什么学:Metrics 告诉你系统状态,Logs 告诉你发生了什么,Traces 告诉你为什么慢。三者缺一不可。
掌握标准:
- 能设计高吞吐日志管道(10 万 EPS),合理设置 Logstash 线程和 Batch Size
- 能写 Elasticsearch DSL 查询(Bool/Range/Aggregation),用 Kibana 构建运维 Dashboard
- 能用 OpenTelemetry SDK 给应用插桩,实现跨服务链路追踪
- 能根据 Trace 火焰图定位具体的慢函数调用
📖 深入阅读:
K8s 安全加固#
是什么:RBAC 权限体系、网络策略、Pod 安全标准、零信任网络的综合安全实践。
为什么学:K8s 默认配置不安全。权限过松会导致横向移动攻击,网络不隔离会导致东西向渗透。
掌握标准:
- 能设计最小权限 RBAC 体系:按角色定义 ClusterRole,用 RoleBinding 限制命名空间
- 能配置 NetworkPolicy 实现命名空间隔离和服务间白名单
- 能用
kubectl auth can-i验证权限,用rakkess可视化权限矩阵- 能解释 Pod Security Standards(Privileged/Baseline/Restricted)三级区别
📖 深入阅读:
阶段三完成检验#
场景题:你负责 6 个 K8s 集群(2 个区域 × 3 环境)的 SRE 工作,团队 3 人。现在要建立一套从"发现故障"到"修复故障"的完整流程,要求:MTTA < 5 分钟,MTTR < 30 分钟,每季度至少做一次 GameDay 演练。请设计整套 SRE 工程体系。
预计总时间:10–18 个月