可伸缩架构:云环境下的高可用与风险管理 第2版
作者:[美]艾奇逊
出版时间: 2020年版
内容简介
本书是一本关于现代化软件架构的书。书中介绍了如何构建和更新你的关键应用程序来满足日益苛刻的数字化客户的需求。书中还介绍了如何实现高可用性,如何使用现代化的开发和运维技术来架构应用程序,如何组织开发团队帮助应用程序和业务获得成功,如何将系统扩展到**规模,以及如何利用云计算的可用资源来迎接上述挑战。本书的目标读者包括构建和管理大规模应用程序和系统的软件工程师、架构师、技术经理及总监。如果你管理着软件开发人员、系统可靠性工程师、DevOps 工程师,或者经营着一个拥有大规模应用程序和系统的机构,本书中所提供的建议和指导都能够帮助你,让你的系统运行得更加平稳和可靠。
目录
序………………………………………………………………………. xvii
前言…………………………………………………………………….. xx
第Ⅰ部分 原则 1. 可用性 :维护现代化应用程序的可用性
第 1 章 理解、测量和提高可用性……………………………………….. 2
可用性与可靠性 ………………………………………………………………………………………………3
什么导致了低可用性 ……………………………………………………………………………………….4
测量可用性 …………………………………………………………………………………………………….5
N 个 9 ……………………………………………………………………………………………………..6
计划中的故障也依然是故障 ………………………………………………………………………6
通过数字来体现可用性 ……………………………………………………………………………..7
提高下降的可用性 …………………………………………………………………………………………..7
测试并跟踪当前的可用性 ………………………………………………………………………….8
将手动流程自动化 ……………………………………………………………………………………9
改进你的系统 ………………………………………………………………………………………… 12
时刻关注不断变化和发展中的应用程序的可用性 ………………………………………. 12
提高应用程序可用性的 5 个要点 …………………………………………………………………….. 12
要点 1 :时刻考虑应对故障 …………………………………………………………………….. 13
要点 2 :时刻考虑如何伸缩 …………………………………………………………………….. 14
要点 3 :缓和风险 ………………………………………………………………………………….. 15
要点 4 :监控可用性……………………………………………………………………………….. 17
要点 5 :以可预期及明确的方式来处理可用性问题 ……………………………………. 18
做好准备 ……………………………………………………………………………………………………… 19
第 2 章 两次失误的高度——预留从错误中恢复的空间. ……………….. 20
两次失误的高度 ……………………………………………………………………………………………. 21
场景 1 :丢失一个节点 ……………………………………………………………………………. 21
场景 2 :升级过程中出现的问题 ………………………………………………………………. 24
场景 3 :数据中心恢复 ……………………………………………………………………………. 25
场景 4 :隐蔽的共享故障类型 ………………………………………………………………….. 27
场景 5 :故障循环 ………………………………………………………………………………….. 28
管理你的应用程序 ………………………………………………………………………………………… 28
航天飞机 ……………………………………………………………………………………………………… 29
第Ⅱ部分 原则 2. 现代化应用程序架构 :使用服务
第 3 章 使用服务. ……………………………………………………… 32
单体应用程序与面向服务的应用程序 ……………………………………………………………… 32
所有权收益……………………………………………………………………………………………. 34
规模收益 ………………………………………………………………………………………………. 36
拆分服务 ……………………………………………………………………………………………………… 37
如何定义服务 ………………………………………………………………………………………… 37
深入了解服务 ………………………………………………………………………………………………. 38
指导原则 1 :特定的业务需求 ………………………………………………………………….. 38
指导原则 2 :清晰和独立的团队所有权 …………………………………………………….. 39
指导原则 3 :天然隔离的数据 ………………………………………………………………….. 40
指导原则 4 :共享的能力 / 数据 ……………………………………………………………….. 41
多种原因 ………………………………………………………………………………………………. 42
过犹不及 ……………………………………………………………………………………………………… 43
找到适当的平衡 ……………………………………………………………………………………………. 44
第 4 章 服务和数据……………………………………………………. 45
无状态服务 — 没有数据的服务 …………………………………………………………………….. 45
有状态服务 — 有数据的服务 ……………………………………………………………………….. 45
数据分区 ……………………………………………………………………………………………………… 46
及时处理增长的烦恼 …………………………………………………………………………………….. 49
第 5 章 处理服务故障…………………………………………………. 50
级联式的服务故障 ………………………………………………………………………………………… 50
如何响应服务故障 ………………………………………………………………………………………… 51
可预测的响应 ………………………………………………………………………………………… 52
可理解的响应 ………………………………………………………………………………………… 53
合理的响应……………………………………………………………………………………………. 53
如何确定故障 ………………………………………………………………………………………………. 54
适当的行为 ………………………………………………………………………………………………….. 56
优雅降级 ………………………………………………………………………………………………. 56
优雅补偿 ………………………………………………………………………………………………. 57
尽早失败 ………………………………………………………………………………………………. 57
用户导致的问题 …………………………………………………………………………………….. 58
小结 ……………………………………………………………………………………………………………. 59
第Ⅲ部分 原则 3. 组织 :为现代化
应用程序建立可伸缩性的组织
第 6 章 服务所有权——STOSA……………………………………… 62
由独立团队负责的服务架构 …………………………………………………………………………… 62
STOSA 应用程序和组织的好处 ………………………………………………………………………. 64
“所有”一个服务意味着什么 …………………………………………………………………………. 64
使用核心团队和服务 ………………………………..
书籍下载: