本书主要介绍了SLO的基本概念、设计过程、实施方法及相关案例研究。作者不仅解释了SLO的重要性,以及为什么在现代IT环境中需要它们,详细阐述了SLO的定义、类型和级别,以及如何将它们与业务目标相结合,而且详细介绍了设计SLO的过程,包括需求收集、目标设定、指标选择、约束条件设定等步骤,旨在确保SLO既符合业务需求,又具有可度量性和可操作性,同时提供了一些实用的方法和工具,帮助读者有效地实施和管理SLO,包括使用监控工具、定期审查和调整SLO等。此外,书中还包含了一系列实际案例研究,展示了如何将SLO应用于不同的场景和环境。
适读人群 :站点可靠性工程、SLO相关领域的人员、科技公司高管、软件服务方面的从业人员
尽管SLO(服务等级目标)的重要性不断增长,但是明显缺乏关于如何实现它们的信息。已有的建议通常假设团队已经具备相关的基础设施、工具和文化。在本书中,公认的SLO专家Alex Hidalgo解释了如何从头开始创建SLO文化。
本书提供了对高级SLO和SLI(服务等级指标)技术的详细分析,对任何想要创建基于SLO的可靠性方法所需的文化和工具的人而言,这是一本理想的入门和日常参考书。本书将帮助你利用数学模型和统计知识,从基于SLO的方法中获得收益。你将学会如何构建能够度量有意义的SLI的系统,并得到组织中所有部门的认可。
通过学习本书,你将能够:
? 定义从用户的角度有意义地度量服务可靠性的SLI。
? 选择合适的SLO,例如进行统计和概率分析。
? 使用错误预算,以便更好地进行团队讨论和做出数据驱动的决策。
? 为基于SLO的方法构建支持性工具和资源。
Alex Hidalgo是一名站点可靠性工程师,也是SLO相关领域的专家。他先后担任过网络工程师、安全工程师和系统管理员等多个职务,并在IT支持领域积累了丰富的经验。在Google工作期间,Alex在SRE(站点可靠性工程)方面表现出色,之后他加入了Squarespace,致力于在公司内部和整个行业推广基于SLO的服务可靠性方法的理念。他是 Coursera Google IT Professional Certification的主要开发人员之一,还是教育家、作家和演讲者。
目录
序1
前言3
第一部分 SLO开发11
第1章 可靠性栈13
1.1 服务的真理14
1.2 可靠性栈概述14
1.3 什么是服务19
1.4 要记住的事情22
1.5 总结23
第2章 如何看待可靠性25
2.1 可靠性工程25
2.2 过去的性能和你的用户26
2.3 服务应该有多可靠29
2.4 总结33
第3章 制定有意义的SLI35
3.1 有意义的SLI能提供什么36
3.2 很多事情需要关心38
3.3 更复杂的东西41
3.4 总结46
第4章 选择好的SLO47
4.1 可靠性目标47
4.2 服务依赖项和组件51
4.3 你依赖的服务的可靠性55
4.4 选择目标57
4.5 总结65
第5章 如何使用错误预算66
5.1 错误预算实践66
5.2 错误预算的度量74
5.3 总结86
第二部分 SLO实现87
第6章 获得认同89
6.1 工程不只是代码89
6.2 主要利益相关者90
6.3 行动起来94
6.4 惨痛的教训100
6.5 总结101
第7章 度量SLI和SLO 102
7.1 设计目标102
7.2 通用结构104
7.3 常见案例111
7.4 一般案例114
7.5 其他注意事项115
7.6 总结116
第8章 SLO监控和告警117
8.1 动机:SLO告警是什么,为什么要这样做117
8.2 如何进行SLO告警125
8.3 剥离建议134
8.4 总结135
第9章 用于SLI和SLO的概率论与统计学136
9.1 概率论137
9.2 统计学154
9.3 SLI示例:持久性179
9.4 延伸阅读182
9.5 总结183
第10章 可靠性架构184
10.1 示例系统:图像服务186
10.2 架构考虑:重新审视硬件196
10.3 SLO作为系统SLI的结果 196
10.4 识别和理解依赖项的重要性 197
10.5 总结198
第11章 数据可靠性199
11.1 数据服务199
11.2数据服务的用户201
11.3 设定可度量的数据目标 201
11.4 系统设计关注点219
11.5 数据沿袭221
11.6 总结221
第12章 有效案例223
12.1 给小狗穿衣服223
12.2 将SLI 和SLO 作为用户旅程226
12.3 总结238
第三部分 SLO文化239
第13章 打造SLO文化241
13.1 没有SLO的文化241
13.2 文化转变策略242
13.3 通往SLO文化的路径243
13.4 总结252
第14章 SLO演进253
14.1 SLO起始254
14.2 使用方式的变化255
14.3 依赖项的变化258
14.4 故障引起的变化260
14.5 用户期望和需求的变化261
14.6 工具的变化262
14.7 基于直觉的变化263
14.8 制定理想的SLO264
14.9 识别不正确的SLO264
14.10 如何改变SLO265
14.11 总结266
第15章 可发现和可理解的SLO267
15.1 可理解性267
15.2 可发现性273
15.3 总结277
第16章 SLO倡导278
16.1 起步阶段280
16.2 推广阶段286
16.3 扩张阶段289
16.4 总结291
第17章 可靠性报告292
17.1 基本报告292
17.2 高级报告302
17.3 总结304
附录A SLO定义模板305
附录B 第9章的证明308