大促备战中稳定性建设策略与总结
文章目录
- 接口流量评估、上下游依赖梳理
- 降级能力建设
- 应急响应预案建设
- 压力测试
- 监控报警建设
- 容灾演练
之前也专门写过日常稳定性建设的一些策略,传送门 -> 日常稳定性建设策略与总结,本文想专门聊聊大促期间做的一些稳定性保障,顺便记录自己之前实习期间在阿里备战双 11 的一些工作与思考。
接口流量评估、上下游依赖梳理
- 梳理系统中暴露出去的各个接口,以及每个接口关联的上下游依赖,并且标注各个接口负责人 POC,方便出问题时能够第一时间找到人。
- 进行整体流量评估,区分会员与非会员用户,流量评估中注意流量扩散,大流量风险的接口需要配置限流策略,同时要注意对下游依赖的压力,下游是否吃得住,自身服务的 DB、Redis 等基建承载能力也要合理评估。
降级能力建设
依赖上面的核心接口梳理、上下游依赖梳理
- 针对核心依赖,大流量场景下出现风险时,可以降级采用备用数据兜底的方案,场景:省钱卡 feeds 展示固定的兜底数据,不用每次都去拉取算法推荐接口实现“千人千面”,这样也不会让用户感知到服务异常
- 针对非核心依赖,可以提前开启降级开关(前提是每个依赖都配置了 switch 开关),由上游展示约定好的兜底文案,避免影响主流程,场景:省钱卡入口营销文案降级展示为“欢迎开通省钱卡~”
应急响应预案建设
配合 QA 同学完成各种典型场景的预案降级方案
- 针对常见下游异常,建设分场景的降级预案,降低故障时的操作成本,缩短故障恢复时间
- 引入 Failure Analysis Model 预案来自动触发线上的应急响应,提升故障响应的时效性
压力测试
会有专门质量保障的同学整理汇总压测异常点,包括接口中的大日志治理,同时也需要压测参与方提前配置降级方案,配置限流策略等
- 对整体服务进行全链路压测,明确链路中的性能瓶颈,针对性能瓶颈建设整体流量协调方案
- 针对多机房集群进行降级压测,明确降级服务性能情况,保障降级方案可靠
监控报警建设
优化报警监控,甚至针对响应错误码进行报警区分,并加入定期巡航机器人,会针对天纬度的报警进行汇总整理,同时提供出各种核心依赖的 SLA 大盘
- 针对报警重点从核心场景的报警覆盖度、误报警及报警速度三个维度去进行了相关的建设
- 针对监控补齐了核心场景的API层空推监控,进行容灾大盘的建设
容灾演练
分批进行容灾演练,针对不同接口回放线上流量,进行故障注入 mock,观察监控报警变化
- 针对建设的预案进行演练,保障预案效果符合预期
- 双 11 前值班同学使用预演模式进行演练,保障对预案的熟悉程度