
# 可用度及SLO
可用性是衡量可靠性和韧性的综合性指标。
可用性目标用于衡量应用系统的运行时间和停机时间，其表现形式为应用系统正常运行的时间占总时间（通常是一个月或一年）的百分比（如99.9%），即：
可用度 = 可用时间 / 总时间 \* 100%
常见的简单表达方式用"9"的数量或"9"的数量加"5"表示，如"三个9"表示"99.9%"，而"三个9一个5"表示"99.95%"。
系统可用性目标通过服务等级目标（SLO）定义。不同的应用系统对可用性目标是不同的，明确应用系统的可用性目标，对于衡量应用系统的韧性至关重要。常见IT系统SLO示意如下：
| SLO     | 每年最大不可用时间 | 典型IT服务                  |
|:---|:---|:---|
| 99%     | 3.65天     | 批处理，后台任务，数据抽取           |
| 99.9%   | 8.76小时    | 内部知识管理系统，项目跟踪系统         |
| 99.95%  | 4.38小时    | 客户账户管理，信息管理             |
| 99.99%  | 52.56分钟   | 电商，B2B web服务，大流量媒体/内容网站 |
| 99.999% | 5.26分钟    | 银行，投资，金融，政府，电信，关键企业应用   |
   
系统的可用度依赖于系统内各业务单元的可用度。各业务单元之间典型的可靠性模型有两类：
- 串联模型：组成系统的所有单元中任一单元的故障都会导致整个系统故障的称为串联系统。 ![](https://support.huaweicloud.com/usermanual-architecture/zh-cn_image_0000001980283429.png)
  可靠性数学模型：![](https://support.huaweicloud.com/usermanual-architecture/zh-cn_image_0000001980204141.png)
  举例：假定系统存在2个串联单元，每个单元的可用度均为99.9%，则系统可用度为 Rs = 99.9% \* 99.9% = 99.8%。
  串联系统中系统可用度低于串联系统中任一单元的可用度。为提高系统可用度，设计时需考虑：
  - 尽可能减少串联单元数目
  
  - 提高单元可靠性，降低其故障率
   
- 并联模型：组成系统的所有单元都发生故障时，系统才发生故障的成为并联系统。
![](https://support.huaweicloud.com/usermanual-architecture/zh-cn_image_0000001980205133.png)
可靠性数学模型：![](https://support.huaweicloud.com/usermanual-architecture/zh-cn_image_0000001980206545.png)
举例：假定系统存在2个并联单元，每个单元的可用度均为99.9%，则系统可用度为 Rs = 1 - （1 - 99.9%） \* （1 - 99.9%） = 99.9999%。
并联可显著提高系统可用度，典型的并联技术有：主备、集群、双活或多活等。
应用系统要达到可用性目标，需对应用系统内组件及依赖组件进行可用性要求分解，包括：
- **对依赖组件的可用性要求：**通常关键依赖组件需要比其他服务提高一个9的SLO目标，如应用系统SLO目标为99.9%，则关键依赖组件SLO目标要求达到99.99%。
- **应用系统SLO分解：**综合系统SLO、故障频次、云服务SLA，分解得出应用组件的中断时长要求，进一步分解得出故障检测、人工介入、干预恢复的时长要求。
- **针对应用系统内薄弱环节进行增强：**
  - 当云服务SLA无法满足要求时，需要应用层进行额外的保护和增强。
  
  - 通过冗余提升可用度：包括组件冗余（负载均衡集群），故障回退冗余（fail-back，例如使用DMS访问失败时暂时切换到SMN）。
   
 
