《可伸缩架构 面向增长应用的高可用》PDF下载

  • 购买积分:9 如何计算积分?
  • 作  者:(美)李·艾奇逊(Lee Atchison)
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2017
  • ISBN:9787121316845
  • 页数:165 页
图书介绍:随着互联网的发展越来越成熟,流量和数据量飞速增长,许多公司的关键应用程序都面临着伸缩性的问题,逐渐变得越来越复杂和脆弱,从而导致风险上升、可用性降低。本书是一本实践指南,让IT、DevOps和系统稳定性管理员能够了解到,如何避免应用程序在发展过程中变得缓慢、数据不一致或者彻底不可用。规模增长并不只意味着处理更多的用户,还包括管理更多的风险和保证系统的可用性。作者Lee Atchison 在可用性、风险管理、服务和微服务、扩展应用程序和云服务方面提出了一些基本技巧,使得我们在构建各类应用程序的过程中,既能够保证产品的质量,又能够处理海量的流量、数据以及需求。

第Ⅰ部分 可用性 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