1. 为什么需要高可用建设
高可用是一种风险控制能力,使得系统具有更高的可用性。高可用的前提是:所有的事物都不是100%可靠的。在社会环境中,公司内部由员工、软件服务、硬件都组成,外部公司有客户、股东等,公司的目标是收益,创造并获取价值,需要良好的商誉。实际情况:
- 内因:人和物都不是100%可靠的。
- 外因:如果做不到高可用,公司和社会层面业务影响很大。
- 根因:从公司角度,要控制风险,保障公司价值,避免商机根本
2. 什么是高可用性
高可用性(High Availability)是指系统或服务能够持续提供高水平的可用性和可靠性,即在面对各种故障、错误和异常情况时,仍能保持持续运行和正常工作。可用性关注可访问性,可靠性关注功能正确性和时效性。
用计算公式:MTBF / ( MTBF + MTTR ),MTBF指平均无故障时间,MTTR指平均故障修复时间。
3. 如何建设高可用性
从可用性公式看到,可用性来源于增大平均无故障时间,以及减小故障修复时间。先介绍两个概念:
- 风险:未来发生危害的一种可能性,但实际未发生
- 故障:已发生或正在发生危害,是风险变成现实的结果。
风险概率P、故障范围R、故障时间T、故障影响面
最后风险期望公式有:
所以从公式可以得到控制风险的4大因素。
- 减少风险数量,比如重大活动封网
- 降低风险概率,比如代码CR,灰度切流
- 减小故障影响范围,比如以大拆小,每个个体之间相互隔离
- 缩短故障时间,比如快速止血
3.1 整体思路
按照故障的时间节点,分为事前、事中和事后,
- 事前:稳定性设计、异常监测、容量评估、预案演练等识别并控制风险;
- 事中:合理的决策和响应机制,快速发现、定位、止损和修复
- 事后:故障复盘,定期review,反馈闭环,持续优化