发布!设计与部署稳定的分布式系统(第2版)

发布!设计与部署稳定的分布式系统(第2版)

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

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版)》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
透视C#核心技术:系统架构及移动端开发 电子书
本书采用循序渐进的方式讲解C#及其在电商、ERP及手机APP方面的开发技术。
代码整洁之道 电子书
“阅读这本书有两种原因:第一,你是个程序员;第二,你想成为更好的程序员。很好,IT行业需要更好的程序员!”——罗伯特·C. 马丁(Robert C. Martin) 尽管糟糕的代码也能运行,但如果代码不整洁,会使整个开发团队泥足深陷,写得不好的代码每年都要耗费难以计数的时间和资源。但是,这种情况并非无法避免。 著名软件专家罗伯特·C. 马丁(Robert C. Martin) 在本书中为你呈现了革命性的视野。他携同Object Mentor公司的同事,从他们有关整洁代码的佳敏捷实践中提炼出软件技艺的价值观,以飨读者,让你成为更优秀的程序员——只要你着手研读本书。 阅读本书需要你做些什么呢?你将阅读代码——大量代码。本书会促使你思考何谓正确的代码,何谓错误的代码。更重要的是,本书将促使你重新评估自己的专业价值观,以及对自己技艺的承诺。 书中的具体内容包括: ·好代码和糟糕的代码之间的区别; ·如何编写好代码,如何将糟糕的代码转化为好代码; ·如何创建好名称、好函数、好对象和好类; ·如何格式化代码以实现其可读性的大化; ·如何在不妨碍代码逻辑的前提下充分实现错误处理; ·如何进行单元测试和测试驱动开发。
Kafka实战 电子书
本书介绍Kafka的应用和使用,适合Java开发者和数据工程师。
持续交付2.0:业务引领的DevOps精要 电子书
世界级互联网公司软件交付工作原则与方法解析 作者在持续交付领域多年实践经验的精华总结 《持续交付:发布可靠软件的系统方法》作者作序推荐! 国内知名互联网公司多位管理者与领域专家合力倾情推荐! 持续交付2.0不只是关于软件的交付模型,而是从业务问题出发,关注业务假设验证速度的双环业务模型。只有从业务目标出发的持续交付实践才有强大的创造力和生命力! 书中指出,持续交付2.0双环模型高速运转的三个支柱分别是组织机制、软件架构和软件交付基础设施,同时给出了提升价值探索环以及快速验证环运转速度的多种可行方法。 本书还为我们呈现了在企业内部改善持续交付2.0能力所需遵循的基本原则,包括组织文化建设、软件系统架构、业务协作、配置管理、构建集成、自动化测试、发布与监控七大板块,并指出各领域实践关键点,以及多种可实操性方法。同时,通过3个完整的实践案例过程分析,说明每个企业或团队都必须从自己的业务目标出发,根据自己的实际情况,制定自己的改善路线。
系统分析与设计 电子书
本书介绍系统分析与设计的原理、方法、技术、工具和应用,全书分4个部分,第1部分(第1章)从信息系统的设计模型、应用环境开始,介绍系统分析与设计的定义、过程与流行的技术方法;第2部分(第2~8章)是本书的重点内容,其中第2~4章分别从静态、动态和数据的角度讨论建模的方法和技术,第5~8章则分别从系统整体架构设计、类和包设计、人机界面设计及数据模式设计的角度讨论系统设计的方法和技术;第3部分(第9章)