Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >《SRE实战手册》学习笔记之SRE落地实践

《SRE实战手册》学习笔记之SRE落地实践

作者头像
老_张
发布于 2022-04-01 13:25:31
发布于 2022-04-01 13:25:31
2.9K0
举报

前言

前面介绍了SRE的基础,包括SLI和SLO以及Error Budget(错误预算)。其中:

  • SLI是衡量系统稳定性的指标;
  • SLO是每个指标对应的衡量目标;
  • SLO转化为错误预算(更直观便于量化);

转化后做稳定性提升保障工作,就是想办法不要把错误预算消耗完,或不能把错误预算快速大量消耗掉。其实在SRE落地实践过程中,主要是解决如下两种情况的问题:

  1. 制定的错误预算在周期还没结束前就消耗完了,这意味着稳定性目标未达成;
  2. 另一种是错误预算在单次问题中被消耗过多,这时候要把这样的问题定性为故障;

这篇文章,主要说明如何通过应对故障来落地SRE。

故障发现:建设On-Call机制

1、MTTR-故障处理流程
2、MTTR各环节所占时长

绝大多数故障,只要能定位问题根因,往往就能快速解决。

故障处理的生命周期中,大部分时间耗费在寻找和定位问题上面。

分布式系统中,往往优先级最高的是线上业务止血(即Design for Failure策略)。通过服务限流、降级、熔断甚至主备切换等手段,来快速恢复线上业务的可用性。

故障处理的核心:提升MTTR每个环节的处理效率,缩短处理时间,这样才能缩短整个MTTR,减少对错误预算的消耗。

3、MTTI:从发现到响应故障

MTTI:故障的平均确认时间。即从故障实际发生的时间点,到出发采取行动去定位前的这段时间。这个环节,主要做两件事:

1)判断出现的问题是不是故障(主要依赖于监控和告警体系);

2)确定由谁来响应和召集人进行处理(需要一套明确清晰的决策及消息分发机制);

这两件事,其实就是SRE中的On-Call机制(一般有专门的NOC岗位来负责响应和召集)。

On-Call机制的核心,就是确保关键角色实时在线,随时应急响应

4、On-Call机制流程建设

1)确保关键角色在线(轮班的各岗位关键角色,需要有backup);

2)组织War Room应急组织(常见的有线上消防群&线上监控告警群);

3)建立合理的消息分发方式(谁值守谁负责,而不是谁最熟悉谁负责);

4)确保资源投入的升级机制(即值班相关SRE角色有权调动其他资源,甚至故障升级);

5)与云厂商联合On-Call机制(对于上云企业,和厂商共建故障信息对接群,定时故障演练);

6)终极方案:针对可能出现的故障,落地故障应急SOP,制定“故障应急处理手册”,这样人人都是SRE

5、On-Call机制的优势

1)最快最好的熟悉系统的方式;

2)培养和锻炼新人以及backup角色;

3)新人融入团队和承担责任的最佳方式;

故障处理:恢复业务为最高优先级

在MTTR环节中,MTTK、MTTF、MTTV分别对应故障诊断、故障修复与故障确认。

故障处理的最终目标:采取所有手段和行动,一切以恢复线上业务可用为最高优先级。

1、常见的故障蔓延原因

1)故障隔离手段缺失(限流、降级、熔断、弹性扩容);

2)关键角色和流程机制缺失(信息同步、方案决策、反馈机制);

3)线上故障灾备演练环节缺失(故障应急SOP、故障应急处理手册);

2、Google故障指挥体系
  • IC(Incident Commander):故障指挥官,这个角色是整个指挥体系的核心,最重要的职责是组织和协调,而非执行,下面所有角色都要接受他的指令并严格执行。
  • CL(Communication Lead):沟通引导,负责对内和对外的信息收集及通报,这个角色相对固定,由技术支持、QA或者是某个SRE来承担,要求沟通表达能力要比较好。
  • OL(Operations Lead)运维指挥,负责指挥或指导各种故障预案的执行和业务恢复。
  • IR(Incident Responders):即所有需要参与到故障处理中的各类人员,真正的故障定位和业务恢复都是他们来完成的,如具体执行的SRE、运维、业务开发、平台开发、DBA,甚至是QA 。
3、建立有效的应急响应机制

3.1流程机制

1)故障发生后,On-Call的SRE最开始是IC,有权召集相关角色和资源,快速组织线上消防;

2)如果问题和恢复过程非常明确,IC仍是SRE不做转移,由他指挥每个人要做的事情,优先恢复业务优先;

3)如果问题疑难或影响范围大,SRE可以要求更高级别的角色介入如 SRE主管或总监。一般原则是谁业务受影响最大谁牵头组织。这时IC的职责转移给更高级别的主管。如果是全站范围的影响,必要时技术VP或CTO也可以承担IC职责,或授权给某位总监承担;

4)SRE回归到OL的职责上,负责组织和协调具体的执行恢复操作的动作。

3.2反馈机制

1)定时反馈(10-15分钟),没有进展也要及时反馈;

2)执行操作或变更事先通报,说明变更操作重点和影响范围;

3)尽量减少对执行者的干扰,让执行者能够聚焦;

4)信息要及时同步给客服、PR及商家和其他各类合作方;

5)团队leader收集反馈并传递IC的指令,CL收集信息并在更大范围内同步汇总后的信息,同时传递给外部联系人;

6)除了快速恢复业务,保持信息及时同步和透明也非常关键(便于对用户和其他平台的安抚措施能够快速执行到位)!

注意:信息同步尽量不要用技术术语,尽量以业务化的语言描述,并给到对方大致的预期

故障复盘:黄金三问与判定三原则

故障复盘的核心:从故障中学习和提升!

故障复盘的教训:故障根因往往不止一个,聚焦引起故障原因都是哪些,是否都有改进空间。

故障复盘的心得:解决问题,而不是不断提出新的问题!

1、故障复盘黄金三问

1)第一问:故障原因有哪些?

2)第二问:我们做什么,怎么做才能确保下次不会出现类似故障?

3)第三问:当时如果我们做了什么,可以用更短的时间恢复业务?

注意事项对事不对人,不允许出现互相指责和埋怨甩锅。故障复盘的核心是找到原因并加以改进,落地优化

2、故障判定的三原则

1)健壮性原则:每个组件自身要具备一定自愈和高可用能力,而非全部由下游依赖放兜底;

2)三方默认无责:对内谁受影响谁改进,对外推进第三方改进(稳定性要做到相对自我可控,而不是完全依赖外部);

3)分段判定原则:对于原因较复杂或链路较长的故障,建议分阶段评估,不同阶段有不同的措施。这一原则的出发点是要摒弃“故障根因只有一个”的观点。

典型案例:互联网的SRE组织架构

在SRE体系中,高效的故障应对和管理工作,需要整个技术团队共同参与和投入。

1、互联网典型技术架构

参考:SRE组织架构的构建原则

  • 组织架构要与技术架构相匹配(两者是互相补充和促进的作用);
  • SRE是微服务和分布式架构的产物(微服务和分布式技术复杂性对传统的运维模式和理念产生了冲击和变革);
2、系统架构的演变历程

要引入SRE体系,并做对应的组织架构调整,首先要看技术架构是否朝着服务化和分布式方向演进。要想在组织内引入并落地SRE体系,原有技术团队的组织架构或协作模式必须要做出一些变革。

3、互联网组织架构示意图

基础设施:传统运维这个角色所具备的能力。

平台服务:包括常见的技术中台(有状态的数据产品研发团队)和业务中台(无状态的具有业务共性的业务研发团队)以及业务前台(H5&前端&移动端产品研发团队)。

技术保障平台:微服务和分布式架构下的运维能力,是整个技术架构能力的体现,而不是单纯的运维能力体现。

工程效能平台:负责效能工具的研发,比如实现 CMDB、运维自动化、持续交付流水线以及部分技术运营报表的实现,为基础运维和应用运维提供效率平台支持(对业务理解及系统集成能力要比较强,但是技术能力要求相对就没那么高)。

稳定性保障平台:负责稳定性保障相关的标准和平台,比如监控、服务治理相关的限流降级、全链路跟踪、容量压测和规划(技术要求和团队建设复杂度较高,需要很多不同领域的专业人员)。

总结SRE = PE + 工具平台开发 + 稳定性平台开发

业内经验:高效的SRE组织协作机制

SRE落地经验:以赛带练。

1、什么是以赛带练?

“以赛带练”这个术语最早出自体育赛事中,即通过比赛带动训练(如足球、篮球或田径比赛)。目的是在真实的高强度竞争态势和压力下,充分暴露出个人和团队的不足及薄弱点,然后在后续的训练中有针对性地改进,这样对于比赛成绩的提升有很大帮助,而不是循规蹈矩地做机械性训练。

2、SRE落地如何以赛带练?

以赛带练的策略放在系统稳定性建设中非常适用。

通过选择类似的真实且具备高压效果的场景,来充分暴露稳定性存在哪些问题和薄弱点,然后有针对性地进行改进。类似的场景,如电商类产品的双十一大促、社交类产品在春晚的抢红包,以及媒体类产品的突发热点新闻等,对于系统的稳定性冲击和挑战非常大。

再或者是极端故障场景,如机房断电、存储故障或核心部件失效。稳定性建设,一定也是针对极端场景下的稳定性建设。

“以赛带练”的目的就是要检验系统稳定性状况到底如何,系统稳定性还有哪些薄弱点。

3、SRE各个角色如何协作?

案例:双十一大促保障!

1)大促项目kickoff(项目启动会)

2)核心链路技术指标拆解及模型评审(用户模型、流量模型、压测模型)

3)稳定性预案评审(前置预案、主动预案、紧急预案、恢复预案)

4)全链路压测及复盘会议(每轮压测结束都需要进行复盘总结和落地TODO项)

通过上述每个环节的工作细节,让不同角色都参与进来!

4、哪些事项可以做到日常化?

除了大促或极端场景之外,将一些案例落地到日常工作中,是提升稳定性的进阶。场景如下:

1)核心应用变更及新应用上线评审;

2)周期性的技术运营以及汇报工作场景;

概括总结:实践是检验SRE的唯一标准

落地实践,小步快跑胜过考虑太多!

实践需要落实到具体的真实的场景和细节问题上,而不是凭空虚构!

落地SRE要尽可能早的参与到项目中,而非等到线上出问题才考虑引入SRE机制!

SRE 更多的要成为稳定性的监督者和推进者,而不是各种问题的救火队员!

相关书籍

《The Site Reliability Workbook》:兼具普适性和参考性;

《Building Secure&Reliable Systems》:适合进阶阶段阅读;

《Site Reliability Engineering》:SRE落地取得一定成效后阅读;

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老张的求知思考世界 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
五一假期学习总结:从DevOps到SRE
五一假期,没出远门,带娃露营玩水玩沙骑平衡车,累的不亦乐乎。同时,也刷了一门极客时间的课程《SRE实战总结》,给我带来了一些新的认知,我将这些认知整理了以下,特此总结分享与你,强烈建议已经实践了DevOps的童鞋了解一下SRE。
Edison Zhou
2024/05/07
2920
五一假期学习总结:从DevOps到SRE
《SRE实战手册》学习笔记之认识SRE
措施:积极采用微服务、容器及其他分布式技术产品,并积极引入DevOps之类的先进理念;
老_张
2022/04/01
1.5K0
《SRE实战手册》学习笔记之认识SRE
运维规范:线上故障处理的流程模板
建立专门的应急群,将这些事故产品的关键角色纳入其中,当有故障发生时会第一时间在群通报。
星哥玩云
2022/06/21
3.3K0
运维规范:线上故障处理的流程模板
我所理解的SRE、PE和应用运维(下)
上篇介绍了关于SRE、PE和应用运维的一些理解和业界部分公司的玩法,这一篇写一下应用运维在具体做的一些事情和组织方式,看看为什么这个岗位越来越受到重要,越来越受到重视,他的价值到底体现在哪里。然后分析下应用运维这个职业方向的发展趋势,希望对于当前正置身于这个行当的同学能有一些帮助和启发。
赵成
2018/08/09
8.1K0
3.3.1 构建持续提升的故障管理能力
随着系统架构不断升级,功能持续迭代,系统运行复杂性越来越高,故障的发生不可避免,且发生场景愈发无法预测。从企业角度看,系统故障影响客户体验,降低访问流量,带来交易损失,引发监管问责等;从系统架构角度看,系统故障反映的问题代表系统未来扩展性与局限性;从IT资源角度看,故障(尤其是重复性故障)将占用大量IT人力资源,影响IT价值创造能力;从运维角度看,故障是一个常态化的存在,故障既是业务连续性大敌,也是推动组织架构、人员能力、协同机制、工具平台持续优化的驱动力,对待好故障管理有助于建立学习型的运维组织。本文要解释的故障管理,除了指尽快恢复正常的服务以降低故障影响的相关措施,还尝试探索建立一个闭环的故障管理能力的模式。
彭华盛
2021/03/03
1.5K0
3.3.1 构建持续提升的故障管理能力
腾讯搜索的系统架构是如何达到99.994%高可用的?
本文主要是搜索在稳定性治理实践的经验总结,讲述了搜狗搜索在技术债治理基础上如何将可用性提升一个量级,事故级 MTTD(平均故障检测时间)、MTTR(平均响应时间)优化一个量级,尤其在重大事故层次形成一个较强控制力。内容全面且实践性较强,团队的每项能力定位也比较清晰,除了核心的容灾、发现、应急建设,还在前置拦截、自动防御,风险扫盲等维度进行全方位治理。欢迎阅读~
腾讯云开发者
2023/06/13
1.9K0
腾讯搜索的系统架构是如何达到99.994%高可用的?
SRE转型:银行 SRE 转型与 SLO 管理的深度融合
摘要:本文探讨了银行在SRE转型中如何通过SLO管理提升系统可靠性与业务连续性。随着金融行业数字化转型,传统运维模式已无法满足高可用性需求,SLO管理成为提高服务稳定性和优化运维效率的核心实践。文章比较了SLO管理与传统业务连续性管理的差异,详细阐述了SLO定义、监控、故障响应和持续改进的实施步骤,并分析了银行在落实SLO管理过程中面临的挑战及应对策略。最终,文章总结了SLO管理对提升银行系统稳定性、资源优化和跨部门协作的积极作用。
嘉为蓝鲸
2025/02/13
1530
SRE转型:银行 SRE 转型与 SLO 管理的深度融合
【深度好文】如何基于谷歌SRE理论,建设企业IT应用系统稳定性能力?
在当今数字化转型步伐不断加快的时代,IT应用系统的稳定运行成为了企业的业务正常运转的重要基础,因此,运维管理体系的构建也从围绕着数据中心转向围绕着应用系统方向,首个专门面向应用运维的理论体系——SRE,由Google发布后,受到了越来越多的企业的青睐,很多国内企业已经纷纷效仿Google建立SRE团队,旨在为各个业务应用系统提供更好的稳定性保障能力,为业务保驾护航。
嘉为蓝鲸
2021/09/06
1.9K0
【深度好文】如何基于谷歌SRE理论,建设企业IT应用系统稳定性能力?
得物容器SRE探索与实践
关于什么是SRE,以及在业务上有哪些具体的输出,网上资料众多但都只是对基本概念做描述。那容器SRE究竟要怎么结合业务,得物容器SRE又有哪些最佳实践,本文就得物容器SRE的一些事情向大家做介绍。
得物技术
2023/03/22
6960
得物容器SRE探索与实践
2.2.1 以业务为中心重塑运维岗位能力
本篇是第二章“组织”中“2.2 个体岗位能力”第1节,主要聊聊运维适应性系统建设中,人员岗位能力这个组件要求。
彭华盛
2021/01/05
1.5K0
《SRE实战手册》学习笔记之切入SRE
SRE强调稳定性,一般是看整体的系统情况,也就是常说的"3个9"、"4个9"这样可量化的数字。这个“确定成功请求条件,设定达成占比目标”的过程,在SRE中就是设定稳定性衡量标准的SLI和SLO的过程。
老_张
2022/04/01
1.7K0
《SRE实战手册》学习笔记之切入SRE
【稳定性】关于缩短MTTR的探索
Tech 导读 当系统出现故障时,需要通过一些指标来衡量故障的严重程度和影响范围,其中MTTR(Mean Time To Repair 名为平均修复时间)是一个非常重要的指标。本文将从监控报警识别、如何快速发现问题、快速止血缓解系统线上问题、利用现有工具智能分析、快速定位解决问题等维度来降低MTTR,最后编写了团队快速缩短MTTR三字经,提升系统稳定性。
京东技术
2023/11/13
6770
【稳定性】关于缩短MTTR的探索
How Google SRE and developers work together
最近看到一个关于SRE与Dev如何协作的PPT,而且还是新鲜出炉的,这里分享给大家。对里面几页我觉得比较有启发性的内容做一下注解,或者说分享下我的理解。(分享部分在每张截图上面)
赵成
2021/10/28
5420
How Google SRE and developers work together
关于SRE方法论的一些笔记
「 傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来,这是比死亡更可怕的事。--------王小波」
山河已无恙
2023/01/30
5290
SRE-面试问答模拟-开放问答话题
SRE(Site Reliability Engineering)和可观测性是运维工作中的关键理念,这些问题涵盖了不同层次的运维实践和理念。以下是对部分问题的简要回答:
行者深蓝
2024/09/07
2910
我所理解的SRE、PE和应用运维(上)
SRE这个概念我个人印象中应该14年下半年左右听到的,当时只知道是Google对运维岗位定义,巨牛逼的一个岗位,在网上查到SRE是叫网站稳定工程师,只要是保障稳定为主,其他就没有更深的意识了。15年开始逐渐有更多在Google工作或接触过这个岗位的专家在介绍这个概念,大家有了更进一步的认识,但是很多的细节,大家仍然是不了解的。今年年初,Google SRE这本书的英文电子版引入到了国内,再后来9月份有了中文版译本,SRE在今年彻底火爆。
赵成
2018/08/09
4.3K1
银行运维SRE转型:挑战与应对策略
摘要:本文探讨了银行运维团队实施SRE(站点可靠性工程)转型的路径,涵盖了从组织架构、制度流程到工具的全面实施方案。银行面临着由传统单体架构向分布式架构转型的挑战,SRE通过引入自动化、可观测性和持续改进机制,帮助银行提升系统可靠性、稳定性以及业务连续性。文章还探讨了实施过程中可能面临的文化、技术和人才挑战,并提出了具体的应对策略。
嘉为蓝鲸
2025/02/08
2990
云原生背景运维转型之 SRE 实践
作者:yorkoliu,腾讯 IEG 业务运维专家 一、前言 上一篇文章《云原生背景下的运维价值思考与实践(上)》 重点介绍了云原生背景下运维转型的思考,围绕着整个 DevOps 交付链,贴近业务不断输出运维的能力与价值。这篇内容我想谈谈 DevOps 的下半段,通过我们的构建服务稳定性保障实践,利用 SRE 的思想与方法,不断去冲刺稳定性的终极目标:“提升 MTBF(平均故障时间间隔)、降低 MTTR(故障平均修复时间)”,很多小伙伴会有疑问,DevOps 与 SRE 到底是什么样的关系?在 Google
腾讯技术工程官方号
2022/01/17
2.8K0
《进化运维技术变革与实践探索》要点总结
很好的一本书,读完大受启发。没有讲具体的技术,就像武功秘籍,提升的是认识和见识。1-4章讲运维的基础,5-7章讲效率和稳定性方面的实践,8-9章讲云计算方面的思考和实践,10章讲个人成长与趋势热点分析。最后拓展讲了一下个人成长和趋势热点的关系。
IT不难
2022/03/24
5180
《进化运维技术变革与实践探索》要点总结
银行SRE转型:如何突破传统运维困境,打造高效团队
摘要:银行SRE团队的建设是应对数字化转型挑战的关键策略。本篇文章详细分析了传统运维与SRE的差异,并通过分阶段的转型路径说明了如何从规划到核心能力建设,再到全覆盖推广,逐步构建高效的SRE团队。在这一过程中,SRE团队不仅是技术升级的执行者,更是组织变革的推动者,为银行的长期可靠性和创新能力提供保障。
嘉为蓝鲸
2025/02/08
2000
推荐阅读
相关推荐
五一假期学习总结:从DevOps到SRE
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档