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