定义
系统可用性定义:MTBF / (MTBF + MTTR)
MTBF:mean time before failure
MTTR:mean time to recovery
常用要求,一年:99.9%(8.76h) ~ 99.99%(5.26min)
坐标图
笔者将稳定性保障精简成2个方向:纵向(空间维度)和横向(时间维度),基于这2个维度由线到面,可梳理出各个稳定性保障的各个点。
鉴于网上稳定性保障的文章很多,加之如今大模型如此发达,读者看到下面的精简关键词,有不理解的,直接大模型中询问即可,本篇作为提纲帮大家梳理。
1. 纵向:空间维度
按照一次用户请求,从产品层面到数据库层面经历的纵向链路,看空间维度的稳定性注意点。
1.1 产品
兜底策略
1.2 服务/容量
- 负载均衡
- 弹性扩缩容
- 故障容错(降级、兜底、超时重试)
- 过载保护(限流、熔断)
- 异步解耦
1.3 存储
- 冗余备份(热备、冷备)
- 故障转移(确认、转移、恢复)
2. 横向:时间维度
按照一次需求从产出到上线,以及出现故障前后,看时间维度的稳定性注意点
2.1 变更机制
- 需求评审
- 技术Review
- 代码规范CR
- 开发自测
- 质量测试
- 验收
- 变更红线(可灰度、可监控、可回滚)
- 小流量验证
- 线上回归
2.2 运行保障
- 监控(系统、业务、客诉)
- 风险巡检(配置类、状态类开关、容量类、系统错误、强弱依赖)
- 压测
- 预案
- 演练
- 值班
2.3 故障应急
- 目标:1-5-10,1min响应、5min定位、10min恢复
- 角色:应急处理人、技术指挥、安全生产、客服前线
- 处理优先级:发现、定位、拉群、快恢(全量)、止血(增量)、回滚、一般恢复(编码、重启等)
- 故障复盘