编辑推荐
Jolt生产效率奖获奖作品全新升级。行业思想家的真知灼见,助你在发布软件后高枕无忧。
内容简介
作者根据自己的亲身经历和某些大型企业的案例,讲述了如何创建高稳定性的软件系统,分析了设计和实现中导致系统出现问题的原因。
全书分为四个部分,每部分内容都由一个研究案例引出。第一部分介绍了如何保证系统的生存,即维护系统正常运行。第二部分介绍了为生产环境而设计,从基础层、实例层、互连层和控制层等方面构建系统安全性。第三部分讲述了交付系统,列出系统在部署过程中有可能出现的问题。第四部分引入适用性和混沌工程的概念,讨论了如何解决系统性问题。
作者简介
作者迈克尔·尼加德,程序员兼架构师,拥有20余年的从业经验,先后为美国政府以及银行、金融、农业、零售等多个行业交付过运营系统,对如何在不利的环境下构建高性能、高可靠性的软件有独到的见解。
章节目录
版权信息
版权声明
第2版赞誉
译者序
致谢
前言
第 1 章 生产环境的生存法则
1.1 瞄准正确的目标
1.2 应对不断扩大的挑战范围
1.3 多花5万美元来节省100万美元
1.4 让“原力”与决策同在
1.5 设计务实的架构
1.6 小结
第一部分 创造稳定性
第 2 章 案例研究:让航空公司停飞的代码异常
2.1 进行变更
2.2 遭遇停机
2.3 严重后果
2.4 事后分析
2.5 寻找线索
2.6 证据确凿
2.7 预防管用吗
第 3 章 让系统稳定运行
3.1 定义稳定性
3.2 延长系统寿命
3.3 系统失效方式
3.4 阻止裂纹蔓延
3.5 系统失效链
3.6 小结
第 4 章 稳定性的反模式
4.1 集成点
4.2 同层连累反应
4.3 层叠失效
4.4 用户
4.5 线程阻塞
4.6 自黑式攻击
4.7 放大效应
4.8 失衡的系统容量
4.9 一窝蜂
4.10 做出误判的机器
4.11 缓慢的响应
4.12 无限长的结果集
4.13 小结
第 5 章 稳定性的模式
5.1 超时
5.2 断路器
5.3 舱壁
5.4 稳态
5.5 快速失败
5.6 任其崩溃并替换
5.7 握手
5.8 考验机
5.9 中间件解耦
5.10 卸下负载
5.11 背压机制
5.12 调速器
5.13 小结
第二部分 为生产环境而设计
第 6 章 案例研究:屋漏偏逢连夜雨
6.1 宝宝的第一个感恩节
6.2 把脉
6.3 感恩节
6.4 黑色星期五
6.5 生命体征
6.6 进行诊断
6.7 求助专家
6.8 如何应对
6.9 应对奏效吗
6.10 尾声
第 7 章 基础层
7.1 数据中心和云端的联网
7.2 物理主机、虚拟机和容器
7.3 小结
第 8 章 实例层
8.1 代码
8.2 配置
8.3 明晰性
8.4 小结
第 9 章 互连层
9.1 不同规模的解决方案
9.2 使用DNS
9.3 负载均衡
9.4 控制请求数量
9.5 网络路由
9.6 发现服务
9.7 迁移虚拟IP地址
9.8 小结
第 10 章 控制层
10.1 适合的控制层工具
10.2 机械效益
10.3 平台和生态系统
10.4 开发环境就是生产环境
10.5 整个系统的明晰性
10.6 配置服务
10.7 环境整备和部署服务
10.8 命令与控制
10.9 平台厂商
10.10 工具清单
10.11 小结
第 11 章 安全性
11.1 OWASP十大安全漏洞
11.2 最小特权原则
11.3 密码的配置
11.4 安全即持续的过程
11.5 小结
第三部分 将系统交付
第 12 章 案例研究:等待戈多
第 13 章 为部署而设计
13.1 机器与服务
13.2 计划停机时间的谬误
13.3 自动化部署
13.4 持续部署
13.5 部署中的各个阶段
13.6 像行家一样部署
13.7 小结
第 14 章 处理版本问题
14.1 帮助他人处理版本问题
14.2 处理其他系统的版本问题
14.3 小结
第四部分 解决系统性问题
第 15 章 案例研究:不能承受的巨大顾客流量
15.1 倒计时后推出新系统
15.2 以QA测试为目标
15.3 负载测试
15.4 被众多因素所害
15.5 测试仍然有差距
15.6 善后
第 16 章 适应性
16.1 努力与回报的关系
16.2 过程和组织
16.3 系统架构
16.4 信息架构
16.5 小结
第 17 章 混沌工程
17.1 不可能构建第二个Facebook去做测试
17.2 混沌工程的先驱
17.3 猴子军团
17.4 使用自己的混沌猴
17.5 从人的方面模拟灾难
17.6 小结
看完了
发布!设计与部署稳定的分布式系统(第2版)是2020年由图灵程序设计丛书出版,作者迈克尔·尼加德。
得书感谢您对《发布!设计与部署稳定的分布式系统(第2版)》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。