71 lines
2.2 KiB
Markdown
71 lines
2.2 KiB
Markdown
# 第三章 拥抱风险
|
||
|
||
不必追求100%的服务可靠性,过分追求服务的可靠性会带来成本的巨大提升,同时减少了新功能的数量及更新频率。
|
||
|
||
用户本身设备就有可靠性损失,99.99%与99.999%在用户体验上并无太大区别。
|
||
|
||
## 服务可靠性成本
|
||
|
||
高昂的成本主要存在以下两个维度:
|
||
|
||
- 冗余服务器/计算资源成本。
|
||
- 机会成本。 构建减少风险的系统或功能,而非用户直接可用的功能的工程资源成本。
|
||
|
||
## 度量服务的风险
|
||
|
||
度量服务的风险从两个维度,基于时间和基于请求成功率。
|
||
|
||
### 基于时间的可用性公式
|
||
|
||
可用性=系统正常时间/(系统正常运行时间+停机时间)
|
||
|
||
### 基于请求成功率的可用性公式
|
||
|
||
**此公式对于分布式服务或定时任务更有意义**
|
||
|
||
可用性=成功请求数/总请求数
|
||
|
||
## 服务的风险容忍度
|
||
|
||
服务的风险容忍度通常是直接根据基本产品或服务的定义建立的。
|
||
|
||
### 消费者服务
|
||
|
||
评价服务风险容忍度时,有以下几个因素:
|
||
|
||
- 可用性目标
|
||
根据功能及市场定位来制定,快速发展的服务较低而企业服务较高。
|
||
|
||
- 故障类型
|
||
不同故障对服务的影响不同
|
||
|
||
- 成本
|
||
提升可靠性会带来一定收益并投入成本,当收益高于成本就是合理投资
|
||
|
||
- 其他服务指标
|
||
比如服务延迟
|
||
|
||
### 基础设施服务
|
||
|
||
基础设施服务与消费者服务的一个根本区别是,基础设施组件有多个用户,而他们通常有很多不同的需求。
|
||
|
||
评价服务风险容忍度时,有以下几个因素:
|
||
|
||
- 可用性目标水平
|
||
需要分析每个用户的不同需求来划分服务水平
|
||
|
||
- 故障类型
|
||
|
||
- 成本
|
||
依据不同的服务水平分割成多个基础设施服务,在多个独立的服务水平上提供该服务,是一种在符合成本效益条件下满足这些竞争性约束的方式。
|
||
|
||
## 使用错误预算
|
||
|
||
使用错误预算的好处是能够激励产品研发和SRE一起找出创新和可靠性之间合理的平衡点。
|
||
|
||
1. 定义一个服务水平目标(SLO), 确定正常服务时间
|
||
|
||
2. 通过监控系统测算实际在线时间
|
||
3. 正常服务目标时间-实际在线时间=不可靠预算
|
||
4. 只要正常在线时间高于SLO,就可以发布新版本
|