如何做好一名稳定性SRE
2023-02-18 16:42:09 4 举报
AI智能生成
SRE业务稳定性保障
作者其他创作
大纲/内容
稳定性心态
疑惑1:做好了是应该的,出了问题就要负责任
及时、快速的响应:报警、工单、线上问题
把机制建立好,切实落地<br>(值班、报警响应、复盘、故障演练、故障奖惩、活动保障等)<br>
主动走到最前线
梳理
业务时序、核心链路流程、流量地图、依赖风险
治理
将梳理出来的风险,以专项的形式治理掉,防患于未然
演练
通过演练来提高大家响应的能力和对风险点的认知
值班
不止是解决问题,还要能够发现风险、问题之后,推动上下游解决
报警
除响应外,做报警保险和机制调整,保证报警的准确度和大家对报警的敏感度
疑惑2:稳定性总是做擦屁股的工作
不能只做当下,要看到未来的风险
在发生问题时快速解决问题
把风险归纳总结,推动解决
在系统健康的时候评估链路,发现隐藏的问题
自动化、系统化、数据化
自动化
自动:异常自动恢复、自动运维,一方面兜底、容灾,另一方面包括智能化、机器人和规则判断
自助:通过提供机器人、自动化方法,让业务自己动手处理
系统化
从监控、链路治理、演练入手,形成体系
数据化
数据驱动:对日志和错误码的情况进行量化
数据对账:包括上下游对账、业务对账
轨迹跟踪:包括变更轨迹和数据轨迹,目标是实现数据的可跟踪,和变更的可回溯、可回滚
数据化运营:主要是将稳定性的指标量化,比如工单解决时间、工单数、报警数、报警响应时间、<br> 故障风险数、代码CR量,变更灰度时长等,通过量化指标,驱动团队同学建立量化意识<br>
疑惑3:稳定性似乎总是新人的垃圾场<br>价值认可
心理建设
优先考虑如何响应问题
需要细心和耐心
团结团队内的同学,上下游的同学
能力建设
系统间依赖图,包括业务时序,熟悉业务流程
流量地图,了解上下游系统,系统的流量关系和水位,同时把控系统架构
系统保障图,知道稳定性保障的步骤和打法
机器资源表,了解资源情况,对资源进行管控
异常场景应急表,出问题时怎么应对,哪里容易出问题
业务单量表,知道哪些业务影响大,哪些业务是重点
监控体系<br>
监控的5个维度
系统自身
服务接口
业务特性
数据(数据偏差)
资金对账
监控大盘<br><br>
最核心业务入口的qps、rt、错误数、成功率
核心下游依赖接口的qps、rt、错误数、成功率
错误码top N(打通上下游错误码透传),系统运行过程中最核心的错误,快速直观定位问题
其他影响系统稳定性的核心指标
避免监控信息爆炸
谨慎使用电话报警
日常报警数量限制
业务正常情况下的报警优化
报警要能够互补
有效发现监控问题
故障应急体系
系统可用性的定义
场景梳理
故障场景梳理,要把可能出现故障的核心场景、表现、定位方法、应对策略梳理清楚
故障演练
结合场景进行演练
根据业务特点,定制演练
故障应急过程
快速响应流程
响应与同步
告知当前问题已经有人接手,是谁接手的,表明问题有人在处理了
通报要注意控制范围,优先同步给你的主管,避免范围过大引起恐
定位
组织人员,快速定位问题,告知问题初步定位原因
决策
初步影响范围是什么?给出大致数据
有哪些需要老板、产品、业务方决策的?
进展/恢复
当前进展如何,是否已经止损
与兄弟团队的关系
资源体系
资源表
明确有哪些资源,余量多少
明确资源的当前水位、压力
<b>大促活动保障</b><br>借大促,修系统,提升稳定性
大促保障的一般流程
<span style="font-size: inherit;">1、明确大促的作战地图,明确时间节点和步骤</span><br>
2、SRE产出备战报告<br>
3、绘制流量地图,明确接口流量,模块链路,关键风险
4、SRE和开发同学共同梳理上下游接口依赖流量和峰值,给出限流阈值并沟通上下游
5、链路梳理,产出:强弱依赖、风险点、限流、降级预案、新业务特征
6、风险点展开集中治理,大的风险点要开专项治理
7、治理完成后,开展监控走查,更新监控大盘
8、开始压测,分为专项重点压测,上下游压测,全链路压测
9、录入预案,并对预案进行测试和验证,拉上业务、产品、测试一起,组织预案演练,验证预案可行性
10、产出作战手册,包括值班表,工具清单,大促期间作战流程(精确到分钟级的操作时间点和人员)
11、大促开始前SRE要进行战前宣讲,一般包括发布流程、审批流程、白名单人员,工单汇报方法,大促交流群,大促期间的红线和注意事项
12、大促结束后要进行复盘,复盘内容包括:目标是否达到,工作汇总,亮点,后续action项,未来保障的思考和计划等
作战地图
容量评估和准备阶段
重在根据业务活动节点,输入流量和单量,梳理上下游流量压力
统计上下游接口压力,评估限流阈值和资源缺口,同时准备资源
<b><font face="黑体">系统健壮性提升阶段</font></b><br>重在链路梳理和风险发现,对发现的风险进行专项治理<br>
链路梳理&治理
强弱依赖
上下游间的强弱依赖,强依赖的要关联预案、限流、降级等<br>
风险点
限流
当前场景的限流评估<br>
降级预案
当前场景可能存在的降级预案<br>
新业务特性
当前场景从上次大促到现在的增量变更<br>
压测摸底、预案演练
压测
单点压测(单机、单接口)
用于发现单机或者单接口的性能水位和性能热点,为了计算限流阈值,评估集群规模做准备
单链路压测
考虑单链路多个应用间多级调用的性能,用于评估某个功能点的水位
整个链路的性能水位,是由最低的那个节点接口/应用 决定的
摸高,一直摸到其中一个节点达到瓶颈
全链路压测
全链路压测的目标是预演,摸高是预设目标的
将各个团队压测的结果进行汇总并验证
压测需关注的点
是否达到流量预期
哪些点是瓶颈点
瓶颈点如何解决,如何降级或限流
上下游在压测过程中有没有可能与自己域相互影响的地方
预案&演练
注重实效,不要走形式化
验证预案的可行性和可操作性
战前check和值班阶段
查缺补漏,要有checklist
有作战手册和红线,作战手册要精确到时间点和人,每个时间点由谁做什么要明确
明确报备方案、工单响应、各自分工
日常稳定性机制
黄金链路识别治理
建立数据分析系统,统计业务的量级和趋势
对业务和应用链路,按重要性进行划分
链路治理,要求核心链路上的系统不能依赖非核心的接口、db;非核心链路上的任何降级措施,不能影响核心链路的功能
核心链路和非核心链路,也不能依赖共同的基础组件
核心链路和非核心链路,要有2套发布等级,2种监控等级
值班机制
事前
参与故障演练(包括故障止血方法)以及熟练使用各种故障排查工具
明确值班的范围,包括预警群、工单群、线上问题反馈群、答疑群等
值班周期内,应该减少业务工作安排
事中
短时间无法定位原因的情况,立即联系相关人员协助
发现问题后,应该第一时间在群里反馈通知
事后
组织问题Review,对于常见问题的排查沉淀到一处,后续工具化和演练
报警响应机制
日常风险和问题报备机制
复盘机制
故障奖惩机制
日常演练机制
日常资源(机器、中间件)管控和记账机制
团队权限管控机制
稳定性意识
弹性建设
系统的健壮不是没有报警,也不是不出故障,服务、数据、体验都不受影响。一个系统想要健壮,应该具有一定的弹性
系统的弹性体现:<b>容灾的、可自愈的、一定程度上容错的、可运营的</b>
发现、恢复、预防、缓解
价值建设
考虑价值导向,如当前做的事情,有多少数据量,哪些是无用的长尾的,哪些是有巨大价值的等
做反向思维,通过价值来考量,通过价值反推意义,提效降本
0 条评论
下一页
为你推荐
查看更多