可伸缩架构:面向增长应用的高可用

可伸缩架构:面向增长应用的高可用
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2017-06
版次: 1
ISBN: 9787121316845
定价: 65.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 192页
字数: 263千字
正文语种: 简体中文
14人买过
  •    随着互联网的发展越来越成熟,流量和数据量飞速增长,许多公司的关键应用程序都面临着伸缩性的问题,系统变得越来越复杂和脆弱,从而导致风险上升、可用性降低。本书是一本实践指南,让IT、DevOps和系统稳定性管理员能够了解到,如何避免应用程序在发展过程中变得缓慢、数据不一致或者彻底不可用等问题。规模增长并不只意味着处理更多的用户,还包括管理更多的风险和保证系统的可用性。作者Lee Atchison 在可用性、风险管理、服务和微服务、扩展应用程序和云服务方面提出了一些技巧,使得我们在构建各类应用程序时,既能够保证产品的质量,又能够处理海量的流量、数据以及需求。如果你管理着软件开发人员、系统可靠性工程师、DevOps工程师,或者你经营着一个拥有大规模应用程序和系统的机构,本书中所提供的建议和指导都能够帮助你,让你的系统运行得更加平稳和可靠。   Lee Atchison 是New Relic 公司的首席云架构师和布道师。他已经在New Relic 工作了4年,负责设计并领导建立了New Relic 的基础设施产品,帮助New Relic 搭建了健壮的服务化系统架构,支撑起公司从一个很小的SaaS 创业公司成长为一个高流量的公众企业。他非常擅长构建高可用的系统。 
      Lee 拥有28 年的行业工作背景,了解到如何搭建基于云的、可伸缩的系统架构。他领导并建立了公司*一个软件下载商店,搭建了AWS Elastic Beanstalk 服务 
      本书译者的中英文水平都极高,且工作在系统管理的一线,具有丰富的理论知识和实践经验,相信会为读者带来一本质量上乘的图书。
     

    目录



    序. .......................... xv

    前言. ......................xvii



    第 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 

    测试并跟踪当前的可用性 .............................. 17

    将手动流程自动化 ......................................... 17

    自动化部署............................................. 18

    配置管理 ................................................ 18

    更改实验和高频次更改 .......................... 19

    自动化的变更完备性测试 ...................... 20

    改进你的系统 ................................................ 20

    不断变化和发展中的应用程序 ...................... 20

    时刻关注可用性 ............................................. 21



    第 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

    维护风险模型 ................................................ 38



    第 8章 风险缓和...... 40

    恢复计划 ........................................................ 41

    容灾计划 ........................................................ 42

    改进我们的风险状况 ..................................... 43



    第 9章 比赛日......... 44

    预发布环境和生产环境.................................. 44

    在生产环境中举行比赛日的担心 ................... 46

    比赛日测试 .................................................... 47



    第 10章 构建低风险系统......................................................... 48

    冗余 .. 48

    幂等接口示例 ................................................ 49

    增加了复杂性的冗余改进 .............................. 49

    独立性 ............................................................ 50

    安全 .. 51

    简单性 ............................................................ 51

    自修复 ............................................................ 52

    运维流程 ........................................................ 53



    第 11章 为什么使用服务. ......................................................... 56

    单体应用程序 ................................................ 56

    基于服务的应用程序 ..................................... 57

    所有权收益 .................................................... 58

    规模收益 ........................................................ 60 

    如何定义服务 ................................................ 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



    第Ⅳ部分 如何让应用程序具有伸缩性

    第 14章 两次失误的高度......................................................... 82

    什么是“两次失误的高度” ............................ 83

    实践中的“两次失误的高度” ........................ 83

    丢失一个节点 ......................................... 83

    升级过程中出现的问题 .......................... 85

    数据中心恢复 ......................................... 86

    隐蔽的共享故障类型 .............................. 88 

    管理你的应用程序 ......................................... 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 .............................................. 113

    排名 SLA .............................................. 113

    延迟分组 .............................................. 115

    究竟应当定义多少内部 SLA,以及定义哪些内部 SLA ........................................... 116

    关于 SLA的其他评价 .................................. 116



    第 19章 持续改进. ... 117

    定期检查你的应用程序................................ 117

    微服务 .......................................................... 118

    服务所有权 .................................................. 118

    无状态服务 .................................................. 118

    数据在哪里 .................................................. 118

    数据分区 ...................................................... 119

    持续改进的重要性 ....................................... 121



    第 20章 变化和云服务. ..........................................................124

    云服务有哪些变化 ....................................... 124

    对基于微服务架构的认可 .................... 124

    更小、更专业的服务 ............................ 125

    更专注于应用程序 ............................... 125

    微型初创公司 ....................................... 125

    安全和合规已经成熟 ............................ 125

    变化还在继续 .............................................. 125



    第 21章 云上的分布.127 

    AWS的架构 ................................................. 127 

    AWS区域 ............................................. 127 

    AWS可用区 ......................................... 128

    数据中心 .............................................. 128

    总体架构概述 .............................................. 129 



    第 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 



    第 25章 AWS.Lambda....................................................... 151

    使用 Lambda ................................................ 151

    事件处理 .............................................. 151

    手机应用后台 ....................................... 152

    物联网数据采集 ................................... 153 

    Lambda的优缺点......................................... 154



    第Ⅵ部分 总结

    第 26章 融会贯通...156

    可用性 .......................................................... 156

    风险管理 ...................................................... 157

    服务 157

    扩展 157

    云服务 .......................................................... 158

    面向可伸缩的架构 ....................................... 158



    索引. ..................... 159
  • 内容简介:
       随着互联网的发展越来越成熟,流量和数据量飞速增长,许多公司的关键应用程序都面临着伸缩性的问题,系统变得越来越复杂和脆弱,从而导致风险上升、可用性降低。本书是一本实践指南,让IT、DevOps和系统稳定性管理员能够了解到,如何避免应用程序在发展过程中变得缓慢、数据不一致或者彻底不可用等问题。规模增长并不只意味着处理更多的用户,还包括管理更多的风险和保证系统的可用性。作者Lee Atchison 在可用性、风险管理、服务和微服务、扩展应用程序和云服务方面提出了一些技巧,使得我们在构建各类应用程序时,既能够保证产品的质量,又能够处理海量的流量、数据以及需求。如果你管理着软件开发人员、系统可靠性工程师、DevOps工程师,或者你经营着一个拥有大规模应用程序和系统的机构,本书中所提供的建议和指导都能够帮助你,让你的系统运行得更加平稳和可靠。
  • 作者简介:
      Lee Atchison 是New Relic 公司的首席云架构师和布道师。他已经在New Relic 工作了4年,负责设计并领导建立了New Relic 的基础设施产品,帮助New Relic 搭建了健壮的服务化系统架构,支撑起公司从一个很小的SaaS 创业公司成长为一个高流量的公众企业。他非常擅长构建高可用的系统。 
      Lee 拥有28 年的行业工作背景,了解到如何搭建基于云的、可伸缩的系统架构。他领导并建立了公司*一个软件下载商店,搭建了AWS Elastic Beanstalk 服务 
      本书译者的中英文水平都极高,且工作在系统管理的一线,具有丰富的理论知识和实践经验,相信会为读者带来一本质量上乘的图书。
     

  • 目录:
    目录



    序. .......................... xv

    前言. ......................xvii



    第 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 

    测试并跟踪当前的可用性 .............................. 17

    将手动流程自动化 ......................................... 17

    自动化部署............................................. 18

    配置管理 ................................................ 18

    更改实验和高频次更改 .......................... 19

    自动化的变更完备性测试 ...................... 20

    改进你的系统 ................................................ 20

    不断变化和发展中的应用程序 ...................... 20

    时刻关注可用性 ............................................. 21



    第 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

    维护风险模型 ................................................ 38



    第 8章 风险缓和...... 40

    恢复计划 ........................................................ 41

    容灾计划 ........................................................ 42

    改进我们的风险状况 ..................................... 43



    第 9章 比赛日......... 44

    预发布环境和生产环境.................................. 44

    在生产环境中举行比赛日的担心 ................... 46

    比赛日测试 .................................................... 47



    第 10章 构建低风险系统......................................................... 48

    冗余 .. 48

    幂等接口示例 ................................................ 49

    增加了复杂性的冗余改进 .............................. 49

    独立性 ............................................................ 50

    安全 .. 51

    简单性 ............................................................ 51

    自修复 ............................................................ 52

    运维流程 ........................................................ 53



    第 11章 为什么使用服务. ......................................................... 56

    单体应用程序 ................................................ 56

    基于服务的应用程序 ..................................... 57

    所有权收益 .................................................... 58

    规模收益 ........................................................ 60 

    如何定义服务 ................................................ 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



    第Ⅳ部分 如何让应用程序具有伸缩性

    第 14章 两次失误的高度......................................................... 82

    什么是“两次失误的高度” ............................ 83

    实践中的“两次失误的高度” ........................ 83

    丢失一个节点 ......................................... 83

    升级过程中出现的问题 .......................... 85

    数据中心恢复 ......................................... 86

    隐蔽的共享故障类型 .............................. 88 

    管理你的应用程序 ......................................... 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 .............................................. 113

    排名 SLA .............................................. 113

    延迟分组 .............................................. 115

    究竟应当定义多少内部 SLA,以及定义哪些内部 SLA ........................................... 116

    关于 SLA的其他评价 .................................. 116



    第 19章 持续改进. ... 117

    定期检查你的应用程序................................ 117

    微服务 .......................................................... 118

    服务所有权 .................................................. 118

    无状态服务 .................................................. 118

    数据在哪里 .................................................. 118

    数据分区 ...................................................... 119

    持续改进的重要性 ....................................... 121



    第 20章 变化和云服务. ..........................................................124

    云服务有哪些变化 ....................................... 124

    对基于微服务架构的认可 .................... 124

    更小、更专业的服务 ............................ 125

    更专注于应用程序 ............................... 125

    微型初创公司 ....................................... 125

    安全和合规已经成熟 ............................ 125

    变化还在继续 .............................................. 125



    第 21章 云上的分布.127 

    AWS的架构 ................................................. 127 

    AWS区域 ............................................. 127 

    AWS可用区 ......................................... 128

    数据中心 .............................................. 128

    总体架构概述 .............................................. 129 



    第 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 



    第 25章 AWS.Lambda....................................................... 151

    使用 Lambda ................................................ 151

    事件处理 .............................................. 151

    手机应用后台 ....................................... 152

    物联网数据采集 ................................... 153 

    Lambda的优缺点......................................... 154



    第Ⅵ部分 总结

    第 26章 融会贯通...156

    可用性 .......................................................... 156

    风险管理 ...................................................... 157

    服务 157

    扩展 157

    云服务 .......................................................... 158

    面向可伸缩的架构 ....................................... 158



    索引. ..................... 159
查看详情
相关图书 / 更多
可伸缩架构:面向增长应用的高可用
可伸缩架构(第2版):云环境下的高可用与风险管理
[美]Lee Atchison(李·艾奇逊
可伸缩架构:面向增长应用的高可用
可伸缩敏捷开发:企业级最佳实践
[美]兰芬维奥 著;李冬冬 译
可伸缩架构:面向增长应用的高可用
可伸缩服务架构:框架与中间件
李艳鹏、杨彪、李海亮、贾博岩、刘淏 著