readnotes/devops/googlesre/3.md

71 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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