发布!设计与部署稳定的分布式系统(第2版)(美)迈克尔·尼加德(Michael T.Nygard) pdf下载

发布!设计与部署稳定的分布式系统(第2版)(美)迈克尔·尼加德(Michael T.Nygard) 百度网盘pdf下载

作者:
简介:发布!设计与部署稳定的分布式系统(第2版)(美)迈克尔·尼加德(Michael T.Nygard)
出版社:
出版时间:2020-01
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

作  者:(美)迈克尔·尼加德(Michael T.Nygard) 著 吾真本 译
定  价:89
出 版 社:人民邮电出版社
出版日期:2020年01月01日
页  数:271
装  帧:平装
ISBN:9787115529862
章生产环境的生存法则1
1.1瞄准正确的目标1
1.2应对不断扩大的挑战范围2
1.3多花5万美元来节省100万美元3
1.4让“原力”与决策同在4
1.5设计务实的架构4
1.6小结5
部分创造稳定性7
第2章案例研究:让航空公司停飞的代码异常8
2.1进行变更9
2.2遭遇停机10
2.3严重后果12
2.4事后分析12
2.5寻找线索13
2.6证据确凿16
2.7预防管用吗18
第3章让系统稳定运行19
3.1定义稳定性20
3.2延长系统寿命20
3.3系统失效方式21
3.4阻止裂纹蔓延22
3.5系统失效链23
3.6小结24
第4章稳定性的反模式25
4.1集成点26
4.1.1套接字协议29
4.1.2凌晨5点的紧急电话31
4.1.3HTTP协议35
4.1.4供应商的API程序库36
4.1.5应对集成点的问题37
4.1.6要点回顾37
4.2同层连累反应38
4.3层叠失效41
4.4用户42
4.4.1网络流量42
4.4.2难伺候的用户46
4.4.3不受欢迎的用户47
4.4.4恶意用户50
4.4.5要点回顾51
4.5线程阻塞51
4.5.1发现阻塞53
4.5.2程序库55
4.5.3要点回顾56
4.6自黑式攻击57
4.6.1避免自黑式攻击57
4.6.2要点回顾58
4.7放大效应58
4.7.1点对点通信59
4.7.2共享资源60
4.7.3要点回顾61
4.8失衡的系统容量62
4.8.1通过测试发现系统容量失衡63
4.8.2要点回顾63
4.9一窝蜂64
4.10做出误判的机器66
4.10.1被放大的停机事故66
4.10.2控制和防护措施69
4.10.3要点回顾69
4.11缓慢的响应70
4.12无限长的结果集71
4.12.1黑色星期一71
4.12.2要点回顾73
4.13小结74
第5章稳定性的模式75
5.1超时75
5.2断路器78
5.3舱壁80
5.4稳态83
5.4.1数据清除84
5.4.2日志文件85
5.4.3内存中的缓存86
5.4.4要点回顾86
5.5快速失败87
5.6任其崩溃并替换89
5.6.1有限的粒度89
5.6.2快速替换90
5.6.3监管90
5.6.4重新归队91
5.6.5要点回顾91
5.7握手91
5.8考验机93
5.9中间件解耦96
5.10卸下负载98
5.11背压机制99
5.12调速器101
5.13小结102
第二部分为生产环境而设计103
第6章案例研究:屋漏偏逢连夜雨104
6.1宝宝的个感恩节105
6.2把脉106
6.3感恩节106
6.4黑色星期五107
6.5生命体征108
6.6进行诊断109
6.7求助专家110
6.8如何应对111
6.9应对奏效吗111
6.10尾声112
第7章基础层114
7.1数据中心和云端的联网115
7.1.1网卡和名字116
7.1.2多网络编程118
7.2物理主机、虚拟机和容器119
7.2.1物理主机119
7.2.2数据中心的虚拟机119
7.2.3数据中心的容器120
7.2.4云上的虚拟机123
7.2.5云上的容器125
7.3小结125
第8章实例层126
8.1代码128
8.1.1构建代码128
8.1.2不可变、易处理的基础设施129
8.2配置130
8.2.1配置文件131
8.2.2易处理基础设施的配置131
8.3明晰性132
8.3.1明晰性设计133
8.3.2提升明晰性的实现技术134
8.3.3记录日志134
8.3.4实例的健康度量指标137
8.3.5健康状况检查138
8.4小结138
第9章互连层139
9.1不同规模的解决方案139
9.2使用DNS140
9.2.1基于DNS的服务发现140
9.2.2基于DNS的负载均衡141
9.2.3基于DNS的GSLB142
9.2.4DNS的可用性144
9.2.5要点回顾144
9.3负载均衡144
9.3.1软件负载均衡145
9.3.2硬件负载均衡146
9.3.3健康状况检查147
9.3.4会话黏性147
9.3.5按请求类型分隔流量148
9.3.6要点回顾148
9.4控制请求数量148
9.4.1系统为何会失效149
9.4.2防止灾难150
9.4.3要点回顾151
9.5网络路由151
9.6发现服务153
9.7迁移虚拟IP地址154
9.8小结155
0章控制层156
10.1适合的控制层工具156
10.2机械效益157
10.2.1属于系统失效,而非人为错误158
10.2.2运行得太快也有问题158
10.3平台和生态系统159
10.4开发环境就是生产环境160
10.5整个系统的明晰性161
10.5.1真实用户监控162
10.5.2经济价值高于技术价值162
10.5.3碎片化的风险164
10.5.4日志和统计信息164
10.5.5要监控什么165
10.6配置服务166
10.7环境整备和部署服务167
10.8命令与控制169
10.8.1要控制什么169
10.8.2发送命令170
10.8.3可编写脚本的界面170
10.8.4要点回顾171
10.9平台厂商171
10.10工具清单172
10.11小结172
1章安全性173
11.1OWASP十大安全漏洞173
11.1.1注入174
11.1.2失效的身份验证和会话管理175
11.1.3跨站脚本攻击178
11.1.4失效的访问控制179
11.1.5安全配置出现失误181
11.1.6敏感数据泄露182
11.1.7防范攻击不足183
11.1.8CSRF183
11.1.9使用含有已知漏洞的组件184
11.1.10API保护不足185
11.2特权原则186
11.3密码的配置187
11.4安全即持续的过程187
11.5小结188
第三部分将系统交付189
2章案例研究:等待戈多190
3章为部署而设计193
13.1机器与服务193
13.2计划停机时间的谬误193
13.3自动化部署194
13.4持续部署197
13.5部署中的各个阶段198
13.5.1关系数据库模式200
13.5.2无模式数据库202
13.5.3Web资源205
13.5.4推出新代码206
13.5.5清理208
13.6像行家一样部署209
13.7小结210
4章处理版本问题211
14.1帮助他人处理版本问题211
14.1.1不会破坏API的变更211
14.1.2破坏API的变更215
14.2处理其他系统的版本问题217
14.3小结219
第四部分解决系统性问题221
5章案例研究:不能承受的巨大顾客流量222
15.1倒计时后推出新系统222
15.2以QA测试为目标223
15.3负载测试225
15.4被众多因素所害227
15.5测试仍然有差距229
15.6善后229
6章适应性232
16.1努力与回报的关系232
16.2过程和组织233
16.2.1平台团队235
16.2.2愉快地发布236
16.2.3演化重要的部分是灭绝237
16.2.4在团队级别实现自治239
16.2.5谨防高效率240
16.2.6过程和组织小结242
16.3系统架构242
16.3.1演进式架构242
16.3.2松散的集群245
16.3.3显式上下文246
16.3.4创造更多选项247
16.3.5系统架构小结252
16.4信息架构252
16.4.1消息、事件和命令253
16.4.2让服务自己控制其资源的标识符254
16.4.3URL的两重性256
16.4.4拥抱多义性259
16.4.5避免概念泄露260
16.4.6信息架构小结261
16.5小结261
7章混沌工程262
17.1不可能构建第二个Facebook去做测试262
17.2混沌工程的先驱263
17.3猴子军团264
17.4使用自己的混沌猴265
17.4.1先决条件266
17.4.2设计实验266
17.4.33种混沌注入267
17.4.4有针对性地注入混沌268
17.4.5自动和重复269
17.5从人的方面模拟灾难270
17.6小结271

内容简介

作者根据自己的亲身经历和某些大型企业的案例,讲述了如何创建高稳定性的软件系统,分析了设计和实现中导致系统出现问题的原因。全书分为四个部分,每部分内容都由一个研究案例引出。分介绍了如何保证系统的生存,即维护系统正常运行。第二部分介绍了为生产环境而设计,从基础层、实例层、互连层和控制层等方面构建系统安全性。第三部分讲述了交付系统,列出系统在部署过程中有可能出现的问题。第四部分引入适用性和混沌工程的概念,讨论了如何解决系统性问题。