第Ⅰ部分 可用性 2
第1章 什么是可用性 2
可用性与可靠性 3
什么导致了低可用性 4
第2章 提高应用程序可用性的五个要点 6
要点1:时刻考虑应对故障 7
要点2:时刻考虑如何伸缩 8
要点3:缓和风险 9
要点4:监控可用性 10
要点5:以预测和确定的方式来应对可用性问题 11
做好准备 12
第3章 测量可用性 13
N个9 14
什么样的可用性是合理的 14
不要上当 14
通过数字来体现可用性 15
第4章 提高下降的可用性 16
测试并跟踪当前的可用性 17
将手动流程自动化 17
自动化部署 18
配置管理 18
更改实验和高频次更改 19
自动化的变更完备性测试 20
改进你的系统 20
不断变化和发展中的应用程序 20
时刻关注可用性 21
第Ⅱ部分 风险管理 24
第5章 什么是风险管理 24
管理风险 25
识别风险 25
消除最严重的风险 26
风险缓和 26
定期检查 27
对风险管理的总结 27
第6章 可能性与严重性 28
10佳列表:低可能性,低严重性 29
订单数据库:低可能性,高严重性 29
自定义字体:高可能性,低严重性 30
T恤图片:高可能性,高严重性 31
第7章 风险模型 32
风险模型的作用域 34
创建风险模型 34
通过头脑风暴建立风险列表 35
填写可能性和严重性字段 36
风险项详情 37
缓和计划 37
触发计划 37
使用风险模型来制订计划 37
维护风险模型 38
第8章 风险缓和 40
恢复计划 41
容灾计划 42
改进我们的风险状况 43
第9章 比赛日 44
预发布环境和生产环境 44
在生产环境中举行比赛日的担心 46
比赛日测试 47
第10章 构建低风险系统 48
冗余 48
幂等接口示例 49
增加了复杂性的冗余改进 49
独立性 50
安全 51
简单性 51
自修复 52
运维流程 53
第Ⅲ部分 服务和微服务 56
第11章 为什么使用服务 56
单体应用程序 56
基于服务的应用程序 57
所有权收益 58
规模收益 60
第12章 使用微服务 62
如何定义服务 63
深入了解服务 63
指导原则1:特定的业务需求 63
指导原则2:清晰和独立的团队所有权 64
指导原则3:天然隔离的数据 65
指导原则4:共享的能力/数据 67
多种原因 67
过犹不及 68
适当的平衡 69
第13章 处理服务故障 70
级联式的服务故障 70
如何响应服务故障 71
可预测的响应 72
可理解的响应 73
合理的响应 73
如何确定故障 74
适当的行为 76
优雅降级 76
优雅补偿 77
尽早失败 77
用户导致的问题 78
第Ⅳ部分 如何让应用程序具有伸缩性 82
第14章 两次失误的高度 82
什么是“两次失误的高度” 83
实践中的“两次失误的高度” 83
丢失一个节点 83
升级过程中出现的问题 85
数据中心恢复 86
隐蔽的共享故障类型 88
故障循环 89
管理你的应用程序 90
航天飞机 90
第15章 服务所有权 92
由独立团队负责的服务架构 92
STOSA应用程序和组织的好处 94
成为一个服务所有者意味着什么 94
第16章 服务分级 97
应用复杂性 97
什么是服务分级 98
为服务分配服务级别标签 99
1级服务 99
2级服务 99
3级服务 100
4级服务 100
示例:在线商店 100
接下来呢 103
第17章 使用服务分级 104
期望 104
响应性 104
依赖 106
关键依赖 106
非关键依赖 107
小结 107
第18章 服务等级协议 108
什么是服务等级协议 108
外部SLA与内部SLA的对比 110
为什么内部SLA很重要 110
SLA可以作为一种信任的手段 111
SLA可以用于问题诊断 111
SLA的性能检测方法 112
限定SLA 113
排名SLA 113
延迟分组 115
究竟应当定义多少内部SLA,以及定义哪些内部SLA 116
关于SLA的其他评价 116
第19章 持续改进 117
定期检查你的应用程序 117
微服务 118
服务所有权 118
无状态服务 118
数据在哪里 118
数据分区 119
持续改进的重要性 121
第Ⅴ部分 云服务 124
第20章 变化和云服务 124
云服务有哪些变化 124
对基于微服务架构的认可 124
更小、更专业的服务 125
更专注于应用程序 125
微型初创公司 125
安全和合规已经成熟 125
变化还在继续 125
第21章 云上的分布 127
AWS的架构 127
AWS区域 127
AWS可用区 128
数据中心 128
总体架构概述 129
可用区不是数据中心 131
如何通过地理多样性真正做到高可用 133
第22章 托管的基础设施 134
基于云的服务架构 134
原生资源 135
托管资源(基于服务器) 136
托管资源(不基于服务器) 137
使用托管资源的影响 138
使用非托管资源的影响 138
监控和CloudWatch 138
第23章 云资源分配 140
固定额度的资源分配 140
调整分配 141
预留容量 142
基于使用量的资源分配 143
基于使用量分配资源的好处 144
资源分配技术的利与弊 145
第24章 可伸缩的计算选项 146
云服务器 147
优点 147
缺点 147
适用场景 147
计算分片 147
优点 147
缺点 148
适用场景 148
动态容器 148
优点 148
缺点 149
适用场景 149
微计算 149
优点 149
缺点 150
适用场景 150
如何选择 150
第25章 AWS Lambda 151
使用Lambda 151
事件处理 151
手机应用后台 152
物联网数据采集 153
Lambda的优缺点 154
第Ⅵ部分 总结 156
第26章 融会贯通 156
可用性 156
风险管理 157
服务 157
扩展 157
云服务 158
面向可伸缩的架构 158
索引 159