【读书活动感悟分享】《SRE Google运维解密》第十一章-on-call轮值_文章

【读书活动感悟分享】《SRE Google运维解密》第十一章-on-call轮值

张宁涛
发表于 2025-10-31 20:17:28

这部分内容系统拆解了Google如何通过科学的轮值制度保障全球顶级服务的可靠性,同时平衡团队压力与研发效率,对所有技术团队都有极强的借鉴意义。

一、为什么on-call轮值是SRE的“生命线”?

在IT行业,on-call轮值不是简单的“值班”,而是保障服务可用性的核心机制。Google SRE:Site Reliability Engineering站点可靠性工程,其轮值制度有两个核心目标:
1. 服务可靠性:通过分钟级响应生产事故,将系统不可用时间压缩到极致(例如99.99%可用性要求每季度仅13分钟不可用);
2. 团队可持续性:避免工程师因过度运维陷入“疲劳战”,确保50%时间投入研发(这也是SRE区别于传统运维的关键——用工程化手段解决运维问题)。

二、on-call工程师的“一天”:职责与响应机制

1、核心职责:“救火队员”+“守门人”
       1)紧急响应:处理生产环境中“即将或正在发生的事故”,例如服务器宕机、流量突增等,响应时间严格分级——面向用户的服务5分钟内响应,非敏感业务30分钟。
       2)变更评审:评估生产系统变更请求(如代码发布、配置修改),避免“好心办坏事”。

2、报警机制:多渠道“无死角”触达
      Google的报警系统会通过邮件、短信、电话、APP(钉钉)等多渠道同步推送,确保工程师不会遗漏关键报警。但这里有个重要原则:生产报警优先级高于一切,即使正在写代码、开会,放假等,也必须立即切换到事故处理。

三、如何做到“既可靠又轻松”?工作平衡的双重维度

Google SRE用“数量+质量”两把尺子衡量on-call合理性,避免“忙到崩溃”或“闲到退化”。
1、数量平衡:25%时间红线
     1) 时间分配铁律:SRE的纯运维时间不得超过25%,剩下25%处理协作事务,至少50%必须投入研发(例如开发自动化工具)。
     2)团队规模计算公式:若7×24轮值且每次需2人(主+副),则至少需要8名工程师(每人每月轮值1次);两地团队可优化至6人,但需权衡跨地域沟通成本。
     达到轻松的途径是:通过研发自动化工具,达到系统能够自动化处理,使得系统更可靠,形成一个良性循环
2、质量平衡:12小时最多处理2个紧急事件
      1) 紧急事件定义:同一根因引发的一系列报警(例如数据库故障导致的连锁反应),需在事后报告中统一分析。
      2) 处理标准:每个事件从根因分析到总结复盘至少需6小时,因此12小时轮值周期内最多允许2个事件,否则工程师将陷入“无休止的救火”。

四、压力管理:从“生理机制”到“文化保障”

1、压力如何摧毁决策力?
      当工程师处于高压状态时,身体会分泌皮质醇等荷尔蒙,导致两种危险倾向:
      1) 直觉依赖:遇到问题下意识“重启服务器”,而非理性分析;
      2)   过度联想:例如连续收到3次虚假报警后,误判第4次真实报警为“狼来了”。
      如果能保留现场,优先先保留,在处理,方便事后分析,提醒抓dump重启,符合此场景。
2、Google的“安全感三角”
     为避免上述问题,SRE构建了三重保障:
     1) 流程工具:标准化应急步骤+自动化协作平台(如一键交接、状态同步);
     2) 无指责文化:事后报告只分析系统问题,不追责个人,鼓励坦诚复盘;
     3) 跨团队支持:开发团队共同参与7×24轮值,SRE可随时升级问题,避免“孤军奋战”, Google的SRE团队分布在全球不同时区,可以做到日出而作,日入而息。

五、极端情况应对:从“压力过载”到“压力不足”

1、当运维压力爆表时(>50%纯运维时间)
     1)短期措施:抽调资深SRE支援,优化监控规则(例如合并重复报警);
     2) 长期协作:与研发团队约定“稳定性目标”,甚至临时将部分报警移交研发处理,直到系统达标。
2、当系统“过于稳定”时?
      这看似是好事,实则隐藏风险——工程师长期不操作生产环境,会导致经验退化。解决方案是:
     1) 控制团队规模,确保每人每季度至少on-call 1-2次;
     2) 定期开展“灾难级故障演习”,模拟极端故障场景,熟悉故障处理流程,防止退化。
    居安思危,技术上随时准备着。 

总结:SRE的on-call制度到底带来了什么?

Google SRE的on-call轮值制度,本质是用“工程化思维”解决“人的问题”:通过量化指标(时间分配、事件数量)、流程工具(自动化报警、应急平台)、文化建设(无指责复盘、跨团队协作),实现了“高可靠性”与“可持续运维”的双赢。
启示:好的运维不是“拼命救火”,而是通过制度设计将“被动响应”转化为“主动优化”,让团队在保障业务高效平稳运行服务的同时,有精力去做更有价值的技术创新。

67 0

评论


意见反馈