可扩展的艺术

出版社:人民邮电出版社
出版日期:2013-1
ISBN:9787115301727
作者:阿博特 (Martin L.Abbott),费希尔 (Michael T.Fisher)
页数:387页

媒体关注与评论

本书的内涵比你所想的要深刻得多。所谓扩展,并不只是为了设计用户过多时不会崩溃的Web站点。它所要设计的,是在业务需求增长时,不会崩溃的公司。本书的作者们战斗在我们这个时代最成功的Internet公司的前沿,他们与我们分享的,并不只是如何在竞争中生存下去,也包括如何在其中兴旺繁荣的经验教训。——Marty Cagan,Silicon Valley Product Group创始人本书是那些为大规模市场构建Web服务的人必读的。——Dana Stalder,Matrix Partners普通合伙人Abbott和Fisher在大型企业和小型企业中都有过丰富的扩展经验。他们采用的扩展方法的独到之处在于是从真正的基础着手,即关注的是人员和流程,而这正是打造真正的可扩展性所必需的。Abbott和Fisher把他们多年的经验熔铸成了一种非常容易理解并且可行的扩展方法,这种方法已经被他们长期的巨大成功所验证。——Geoffrey Weber,Shutterfly公司Internet Operations/IT部门副总裁如果我想为自己做健康检查,我会去Mayo诊所。如果我想为我的公司的性能和可扩展性做最好的检查,我会打电话给Martin和Michael。他们会为性能和可扩展性的问题推荐解决方案,而这些方案会为我的公司节省大笔资金,因为我们不必再重新编写系统了。——Warren M. Weiss,Foundation Capital普通合伙人当我在PayPal/eBay工作时,我是Michael Fisher和Martin Abbott手下的一个经理,这使我获得了直接吸取本书中所介绍的经验和教训的机会,它们对于我现在在Facebook的工作来说,价值无限。——黄易山,Facebook软件开发部门的主管本书是迄今为止我们能见到的最好的介绍可扩展性的书。本书的作者从流程、人员、性能和高科技等方面全面阐释了与可扩展性相关的问题。无论你是一个新建的组织,正在制定自己的流程,还是一个成熟的组织,这本书都能给你处理在故障发生之前、之中和之后带来的各种可扩展性问题提供帮助。我已经有过几个构建项目和方案的经验,还有过组建公司的经验,从小规模的公司到超大规模的公司,我发自内心地想说,如果一年前、五年前或者十年前我有这本书就好了。——Jeremy Wright,b5media公司CEO对于Fisher和Abbott在eBay、Paypal和其他公司时所面对的超高速发展带来的挑战,这个世界上经历过的人不多。而能够战胜这种困难的人更是少之又少。本书是对他们在扩展有史以来两家最大的互联网公司时得到的经验教训的总结。对于任何一个超高速发展的公司的管理人员来说,本书都是必

内容概要

Martin L.Abbott
扩展咨询公司AKF Partners的创始合伙人之一。在此之前,他是Quigo公司的COO,负责产品战略、产品管理、技术开发和客户服务。在Quigo之前,他在eBay工作了将近六年,最后的职位是技术部的SVP、CTO和执行主管团队成员。更早之前,他在Gateway和摩托罗拉担任过程序员、管理者及执行主管。他现任onForce、LodgeNet Interactive(NASD: LNET)以及Bullhorn的董事会成员。此外,他还在Rearden Commerce、Goldmail和LiveOps担任咨询委员会的成员。在西点军校取得计算机科学的学士学位后,他在佛罗里达大学取得了计算机工程的硕士学位,并参加过哈佛商学院的高级经理培训课程,现正在美国凯斯西储大学攻读管理学的博士学位。
Michael T. Fisher
扩展咨询公司AKF Partners的创始合伙人之一。他曾在Quigo担任了两年的CTO,在Quigo被AOL收购后的过渡期,还担任过这家公司的总裁。在Quigo之前,他是PayPal公司(eBay旗下公司之一)的开发和架构副总裁,负责建立一个有两百多位工程师的组织。更早之前,他在通用电气工作过七年,致力于开发公司的技术战略和流程。在西点军校取得了计算机科学的学士学位后,他在夏威夷太平洋大学取得了硕士学位,后在肯尼迪西部大学取得了信息管理系统的博士学位,在美国凯斯西储大学获得了MBA。此外,他还是六西格玛黑带大师,现正在美国凯斯西储大学攻读管理学的博士学位。

书籍目录

目    录
导言  1
第一部分  可扩展组织的人员配备
第1章  人员和领导力对可扩展性的影响  6
1.1  AllScale简介  6
1.2  为什么要考虑人员  7
1.3  为什么要考虑组织  8
1.4  为什么要考虑管理和领导力  12
1.5  结论  14
本章要点  14
第2章  可扩展技术组织中的角色  15
2.1  失败的后果  15
2.2  角色的定义  16
2.3  执行主管的职责  17
2.3.1  CEO  18
2.3.2  CFO  19
2.3.3  业务单元责任人和P&L责任人  19
2.3.4  CTO/CIO  19
2.4  组织的职责  20
2.4.1  架构团队的职责  21
2.4.2  软件开发团队的职责  21
2.4.3  生产运营团队的职责  21
2.4.4  基础设施团队的职责  22
2.4.5  质量保证团队的职责  22
2.4.6  产能计划团队的职责  22
2.5  个人贡献者的职责和特征  23
2.5.1  架构师  23
2.5.2  软件工程师  23
2.5.3  操作员  24
2.5.4  基础设施工程师  24
2.5.5  QA工程师/分析师  24
2.5.6  产能计划员  25
2.6  一个组织示例  25
2.7  定义职责的工具  26
2.8  结论  28
本章要点  29
第3章  设计组织  30
3.1  影响可扩展性的组织因素  30
3.2  团队规模  32
3.2.1  警示信号  35
3.2.2  扩大团队或拆分团队  36
3.3  组织架构  38
3.3.1  职能型组织  38
3.3.2  矩阵型组织  40
3.4  结论  42
本章要点  43
第4章  领导力101  44
4.1  什么是领导力  45
4.2  领导力的一个概念模型  46
4.3  评估你是谁  47
4.4  身先士卒  49
4.5  保持谦虚的态度  49
4.6  使命第一,人员至上  50
4.7  做出及时、合理、符合道德的决策  51
4.8  给团队授能和可扩展性  51
4.9  一切围绕股东价值  52
4.10  愿景  53
4.11  使命  55
4.12  战略目标  55
4.13  整合愿景、使命和战略目标  57
4.14  通向成功的因果图  59
4.15  结论  61
本章要点  61
第5章  管理101  63
5.1  管理是什么  63
5.2  项目和任务管理  64
5.3  建设团队——一个运动比喻  65
5.4  提升团队——一个花园比喻  66
5.5  衡量方法、指标和目标评估  69
5.6  目标树  71
5.7  为成功铺路  72
5.8  结论  72
本章要点  73
第6章  进行商业论证  74
6.1  理解经验的鸿沟  74
6.1.1  为什么业务主管可能成为问题所在  75
6.1.2  为什么技术主管可能成为问题所在  75
6.2  破除企业思维定式  76
6.2.1  建立关系  78
6.2.2  树立榜样  78
6.2.3  培训其他主管  78
6.2.4  利用RASCI模型  79
6.2.5  用商业语言交谈  79
6.2.6  让他们参与进来  79
6.2.7  用事实让主管团队感到恐慌  80
6.3  为扩展论证  80
6.4  结论  83
本章要点  83
第二部分  制定扩展流程
第7章  理解流程对扩展的重要性  86
7.1  流程的目的  87
7.2  正确的时间,正确的流程  89
7.2.1  需要有多严苛  90
7.2.2  需要有多复杂  91
7.3  好的流程何时会变成坏的  93
7.4  结论  93
本章要点  94
第8章  管理故障和问题  95
8.1  什么是故障  96
8.2  什么是问题  96
8.3  故障管理的步骤  97
8.4  问题管理的步骤  99
8.5  化解故障管理与问题管理之间的冲突  100
8.6  故障和问题的生命周期  100
8.7  召开每日故障例会  101
8.8  召开季度故障回顾会议  102
8.9  事后分析流程  102
8.10  综合应用  104
8.11  结论  106
本章要点  106
第9章  管理危机和升级  107
9.1  什么是危机  107
9.2  为什么要把危机与其他故障区分开来  108
9.3  危机如何改变一个公司  108
9.4  为混乱赋予秩序  109
9.4.1 “问题经理”的角色  110
9.4.2  团队经理的角色  111
9.4.3  首席工程师的角色  112
9.4.4  个人贡献者的角色  113
9.5  沟通和控制  113
9.6  作战室  114
9.7  升级  115
9.8  状态沟通  115
9.9  危机事后分析会议  116
9.10  危机后续跟进和沟通  117
9.11  结论  117
本章要点  118
第10章  控制生产环境中的变更  119
10.1  什么是变更  120
10.2  变更识别  121
10.3  变更管理  122
10.3.1  变更建议  123
10.3.2  变更批准  125
10.3.3  变更日程安排  125
10.3.4  变更实施和记录  127
10.3.5  变更验证  127
10.3.6  变更审查  127
10.4  变更控制会议  128
10.5  持续的流程改善  128
10.6  结论  129
本章要点  129
第11章  确定应用的余量  131
11.1  流程的目的  131
11.2  流程的步骤  132
11.3  理想的使用比例  135
11.4  结论  137
本章要点  138
第12章  探讨架构设计原则  139
12.1  原则和目标  139
12.2  原则选择  142
12.3  AKF的十二条架构设计原则  143
12.3.1  N+1设计  143
12.3.2  设计为能够回退的  144
12.3.3  设计为能够禁用的  144
12.3.4  设计为能够监控的  144
12.3.5  设计为多个活动站点  144
12.3.6  采用成熟的技术  144
12.3.7  设计为异步的  145
12.3.8  无状态系统  145
12.3.9  进行横向扩展而不是纵向扩展  145
12.3.10  设计为至少可以在两条轴上进行扩展  145
12.3.11  非核心的组件可以购买  145
12.3.12  采用同质化硬件  145
12.4  扩展原则深度解析  146
12.4.1  设计为能够监控的  146
12.4.2  设计为多个活动站点  147
12.4.3  设计为异步的  147
12.4.4  无状态系统  148
12.4.5  进行横向扩展而不是纵向扩展  148
12.4.6  设计为至少可以在两条轴上进行扩展  149
12.5  结论  150
本章要点  150
第13章  联合架构设计  151
13.1  修正组织的功能障碍  151
13.2  设计为能够跨部门扩展  153
13.3  开始条件和结束条件  155
13.4  结论  157
本章要点  157
第14章  架构评审委员会  159
14.1  通过审查确保可扩展性  159
14.2  委员会成员  160
14.3  会议实施  162
14.4  开始条件和结束条件  164
14.5  结论  165
本章要点  166
第15章  关注核心竞争力:构建还是         采购  167
15.1  构建还是采购与可扩展性的关系  167
15.2  关注成本  168
15.3  关注竞争优势  168
15.4 “非我所建”现象  169
15.5  结合成本和竞争优势  170
15.5.1  这个组件能够创造竞争优势吗?  170
15.5.2  我们是这个组件或资产最好的责任人吗?  171
15.5.3  这个组件上的竞争如何?  171
15.5.4  我们能经济有效地构建这个组件吗?  171
15.6  AllScale公司的构建还是采购难题  172
15.7  结论  173
本章要点  174
第16章  确定风险  175
16.1  风险管理对扩展的重要性  175
16.2  衡量风险  176
16.3  管理风险  181
16.4  结论  183
本章要点  184
第17章  性能测试和压力测试  185
17.1  执行性能测试  185
17.1.1  判断标准  186
17.1.2  测试环境  186
17.1.3  定义测试  187
17.1.4  执行测试  188
17.1.5  分析数据  188
17.1.6  报告给工程师  189
17.1.7  重复测试和分析  189
17.2  压力测试不要有压力  190
17.2.1  确立目标  190
17.2.2  识别关键服务  191
17.2.3  确定负载  191
17.2.4  测试环境  192
17.2.5  识别监控项  192
17.2.6  制造负载  192
17.2.7  执行测试  193
17.2.8  分析数据  193
17.3  可扩展性的性能测试和压力测试  194
17.4  结论  195
本章要点  196
第18章  屏障条件和回退  197
18.1  屏障条件  197
18.1.1  屏障条件和敏捷开发  198
18.1.2  屏障条件和瀑布开发  200
18.1.3  屏障条件和混合模型  200
18.2  回退能力  201
18.2.1  回退窗口需求  201
18.2.2  回退的技术考量  202
18.2.3  回退的成本考量  203
18.3  功能减负——设计为能够禁用的  203
18.4  结论  204
本章要点  205
第19章  要快还是要正确  206
19.1  业务上的权衡  206
19.2  与可扩展性的关系  209
19.3  如何做决策  210
19.4  结论  213
本章要点  214
第三部分  构建可扩展的方案
第20章  不受技术限制的设计  216
20.1  实现并非架构  216
20.2  不受技术限制的设计  217
20.2.1  TAD和成本  217
20.2.2  TAD和风险  218
20.2.3  TAD和可扩展性  219
20.2.4  TAD和可用性  221
20.3  TAD方法  221
20.4  结论  222
本章要点  222
第21章  创建故障隔离的架构  224
21.1  故障隔离的架构的术语  224
21.2  故障隔离的好处  226
21.2.1  故障隔离和可用性——限制影响  226
21.2.2  故障隔离和可用性——故障检测和解决  228
21.2.3  故障隔离和可扩展性  228
21.2.4  故障隔离和上市时间  229
21.2.5  故障隔离和成本  229
21.3  如何进行故障隔离  230
21.3.1  原则1:什么都不能共享  230
21.3.2  原则2:什么都不能跨过泳道边界  231
21.3.3  原则3:在泳道内交易  231
21.4  何时实现故障隔离  231
21.4.1  方法1:把最赚钱的功能放入泳道  232
21.4.2  方法2:把最容易引发故障的功能放入泳道  232
21.4.3  方法3:根据自然界限划分泳道  232
21.5  如何测试故障隔离的设计  233
21.6  结论  233
本章要点  234
第22章  AKF扩展立方入门  235
22.1  概念,还是规则和工具  235
22.2  AKF扩展立方介绍  236
22.3  扩展立方的含义  237
22.4  扩展立方的X轴  238
22.5  扩展立方的Y轴  239
22.6  扩展立方的Z轴  240
22.7  综合应用  241
22.8  何时何地使用扩展立方  243
22.9  结论  243
本章要点  244
第23章  为扩展划分应用  245
23.1  应用的AKF扩展立方  245
23.2  AKF应用扩展立方的X轴  246
23.3  AKF应用扩展立方的Y轴  248
23.4  AKF应用扩展立方的Z轴  249
23.5  综合应用  251
23.6  应用扩展立方的实际应用  253
23.6.1  电子商务平台  253
23.6.2  人力资源管理系统  254
23.6.3  后台办公IT系统  255
23.6.4  经验之谈  255
23.7  结论  256
本章要点  257
第24章  为扩展划分数据库  258
24.1  数据库的AKF扩展立方  258
24.2  AKF数据库扩展立方的X轴  259
24.3  AKF数据库扩展立方的Y轴  262
24.4  AKF数据库扩展立方的Z轴  264
24.5  综合应用  265
24.6  数据库扩展立方的实际应用  267
24.6.1  电子商务平台  267
24.6.2  人力资源管理系统  269
24.6.3  后台办公IT系统  269
24.6.4  经验之谈  270
24.6.5  时间方面的考量  270
24.7  结论  271
本章要点  271
第25章  为性能和扩展进行缓存  272
25.1  缓存定义  272
25.2  对象缓存  275
25.3  应用缓存  277
25.3.1  代理缓存  278
25.3.2  反向代理缓存  279
25.3.3  缓存软件  280
25.4  内容交付网络  281
25.5  结论  282
本章要点  282
第26章  实现扩展的异步设计  284
26.1  同步的定义  284
26.2  同步调用,还是异步调用  285
26.2.1  同步扩展,还是异步扩展  286
26.2.2  异步系统示例  288
26.3  定义状态  290
26.4  结论  293
本章要点  294
第四部分  解决其他的问题和挑战
第27章  数据太多  296
27.1  数据的成本  296
27.2  数据的价值和成本–价值难题  298
27.3  让数据成为有利可图的  299
27.3.1  期权价值  300
27.3.2  竞争优势  300
27.3.3  成本合理的解决方案(分层的存储方案)  301
27.3.4  转换数据  302
27.4  处理大量的数据  302
27.5  结论  305
本章要点  306
第28章  云和网格  307
28.1  历史和定义  307
28.1.1  网格计算  309
28.1.2  公共云和私有云  310
28.2  云的特征和架构  311
28.2.1  按用量付费  311
28.2.2  按需扩展  311
28.2.3  多租户  312
28.2.4  虚拟化  313
28.3  云和网格的区别  314
28.4  结论  315
本章要点  316
第29章  在云上翱翔  317
29.1  云计算的利弊  317
29.1.1  云计算的优点  318
29.1.2  云计算的缺点  320
29.2  云计算的不同用法  323
29.2.1  环境  323
29.2.2  技能集合  325
29.3  决策流程  325
29.4  结论  327
本章要点  328
第30章  接上网格  329
30.1  网格的利弊  329
30.1.1  网格的优点  330
30.1.2  网格的缺点  331
30.2  网格计算的不同用法  333
30.2.1  生产网格  333
30.2.2  编译网格  334
30.2.3  数据仓库网格  335
30.2.4  后台办公网格  335
30.3  决策流程  336
30.4  结论  338
本章要点  338
第31章  监控应用  340
31.1  “为什么我们没能及早发现它?”  340
31.2  实现监控的框架  342
31.2.1  用户体验和业务指标  345
31.2.2  系统监控  345
31.2.3  应用监控  346
31.3  衡量监控:什么有价值,什么无价值  347
31.4  监控和流程  348
31.5  结论  349
本章要点  349
第32章  规划数据中心  350
32.1  数据中心的成本和约束  350
32.2  位置、位置、还是位置  352
32.3  数据中心与增量增长  354
32.4  三条三之原则  355
32.4.1  第一条三之原则:数据中心的三个成本驱动力  355
32.4.2  第二条三之原则:三对服务器来说是个神奇数字  356
32.4.3  第三条三之原则:三对数据中心来说是个神奇数字  356
32.5  构建多个活动数据中心要考虑的因素  359
32.6  结论  360
本章要点  361
第33章  综合应用  362
33.1  接下来做什么  363
33.2  案例分析  365
33.2.1  eBay:巨大的成功和可扩展性大爆炸  365
33.2.2  Quigo:出现可扩展性问题的年轻产品  366
33.2.3  ShareThis:一个创业公司的故事  367
33.3  参考资料  368
附    录
附录A  计算可用性  372
附录B  产能规划计算  378
附录C  负载和性能计算  383

编辑推荐

可扩展性的权威指南,全面涵盖组织、人员、流程、架构、技术等多方面,总结三十多年实战经验,经eBay、PayPal等公司实践检验,适于技术以及非技术类的管理人员和工程师阅读

作者简介

用户急剧增加,流量迅猛增长,交易频繁进行……这对于一个技术组织来说,无疑是件幸福的事情。然而,如果网站不能满足持续增长的客户需求,响应时间变慢,各种故障频出,甚至停机无法提供服务,那么幸福必将是短暂的。这就要求网站具有很好的可扩展性,能根据需求持续扩展服务能力。
不同于其他类似主题的图书主要关注当前技术的实现,本书强调,可扩展性不仅仅是技术问题,还涉及组织、流程、架构等方方面面。没有一个顺畅的流程、合理的组织结构或能进行沟通的管理者,再好的技术和想法也会大打折扣。而没有遵循一定原则的架构设计,等到瓶颈出现时难免令人懊悔。扩展组织、流程和系统,使之相互支持,达到良性循环,不仅仅是门科学,还是一门艺术。本书正是对此提供了全面的、实践证明确实有效的解决思路和实用技巧。
两位作者具有三十多年扩展系统的丰富经验,既服务过如通用电气、摩托罗拉、Gateway、eBay、PayPal等大公司,也曾任职于众多经常面临扩展问题的创业公司。结合阅读他们的另一部作品《高扩展性网站的50条原则》,必定会有更多收获。
本书主要内容包括:
可扩展组织的人员配置:技术组织领导者需要了解的人员、组织、管理和领导力方面的技能。
制定扩展流程:超高速发展的企业扩展技术平台所需的流程,包括故障和问题管理、危机管理、变更管理、确定余量、风险管理、性能和压力测试、回退等。
构建可扩展的方案:通过AKF扩展立方识别扩展需求,选择最佳的解决方法,并借助缓存、应用和数据库划分以及异步设计等优化系统性能。
利用新兴的技术,如云和网格,实现扩展。
构建有效的监控策略,及时回答最重要的问题。
为快速的数据增长和新的数据中心进行规划。


 可扩展的艺术下载 精选章节试读



发布书评

 
 


精彩短评 (总计4条)

  •     云里雾里,与工程师相距太远了
  •     凑合吧,全书这么多章的内容,就没有几章是讲技术的,我仅看了泳道和扩展立方这两部分.
  •     从上到下的视角有参考意义但比较无聊
  •     管理+流程+设计原则,架构方法。 废话多,干货少
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024