好书推荐 好书速递 排行榜 读书文摘

高扩展性网站的50条原则

高扩展性网站的50条原则
作者:[美] Martin L. Abbott / [美]Michael T. Fisher
译者:张欣 / 杨海玲
出版社:人民邮电出版社
出版年:2012-06
ISBN:9787115275721
行业:其它
浏览数:12

内容简介

《高扩展性网站的50条原则》给出了设计高扩展网站的50条原则,如不要过度设计、设计时就考虑扩展性、把方案简化3倍以上、减少DNS查找、尽可能减少对象等,每个原则都与不同的主题绑定在一起。大部分原则是面向技术的,只有少量原则解决的是与关键习惯和方法有关的问题,当然,每个原则都对构建可扩展的产品至关重要。

主要内容包括:

通过克隆、复制、分离功能和拆分数据集提高网站扩展性;

采用横向扩展方案代替纵向扩展;

在不损害网站可扩展性的前提下,最大程度地利用数据库;

避免不必要的重定向和冗余的二次检查;

在不引入复杂性的前提下,更加充分地使用缓存和内容分发网络;

要求网站设计具备容错、优雅降级和易回滚的功能;

设计系统时尽可能选择无状态实现,如果确实需要状态,做到合理高效;

有效利用异步通信;

无论你的网站刚刚起步,还是正在设计开发过程中,或者已经成熟运转了很长时间,你都能从书中找到很有针对性的指导原则,提高网站的可扩展性。

......(更多)

作者简介

作者简介:

Martin L. Abbott

业界资深管理者,曾参与管理过多家世界500强企业和创业公司。AKF Partners公司创始人。曾任Quigo公司首席运营官(该公司后被AOL收购),eBay公司高级副总裁和首席技术官,还曾在Gateway和摩托罗拉担任重要职位。现任多家技术公司董事,多所高校、公共机构以及私企的咨询顾问。Martin分别于西点军校和佛罗里达大学取得计算机学士和硕士学位,并参加过哈佛大学商学院高级经理培训,目前在西储大学攻读博士学位。

Michael T. Fisher

业界资深管理者,曾参与管理过多家世界500强企业和创业公司。AKF Partners公司创始人。曾任Quigo公司首席技术官、总裁,PayPal公司工程和架构部门副总裁。曾在通用电器工作7年,帮助制定公司的技术战略。目前担任多家私企和非营利机构的董事和顾问。Michael毕业于西点军校,是六西格玛黑带大师,目前在西储大学攻读博士学位。

......(更多)

目录

目    录

第1章  化简方程    1

1.1  原则1:不要过度设计    2

1.2  原则2:设计时就考虑扩展性(D-I-D方法)    6

1.2.1  设计    7

1.2.2  实现    8

1.2.3  部署    8

1.3  原则3:把方案一简再简    10

1.3.1  如何简化范围    10

1.3.2  如何简化设计    11

1.3.3  如何简化实施    12

1.4  原则4:减少DNS查找    13

1.5  原则5:尽可能减少对象    16

1.6  原则6:使用同一品牌的网络设备    19

1.7  小结    21

参考资料    21

第2章  分布工作    23

2.1  原则7:横向复制(X轴原则)    25

2.2  原则8:拆分不同的东西(Y轴原则)    29

2.3  原则9:拆分相近的东西(Z轴原则)    32

2.4  小结    34

参考资料    34

第3章  横向扩展设计    35

3.1  原则10:设计横向扩展方案    36

3.2  原则11:采用经济型系统    39

3.3  原则12:横向扩展数据中心    42

3.4  原则13:利用云技术进行设计    48

3.5  小结    50

参考资料    50

第4章  使用正确的工具    51

4.1  原则14:合理使用数据库    52

4.2  原则15:防火墙,到处都是防火墙    59

4.3  原则16:积极利用日志文件    63

4.4  小结    66

参考资料    66

第5章  不要重复工作    67

5.1  原则17:不要立即检查刚做过的工作    68

5.2  原则18:停止重定向    72

5.3  原则19:放松时序约束    77

5.4  小结    80

参考资料    80

第6章  积极利用缓存    81

6.1  原则20:利用CDN    82

6.2  原则21:使用过期头    85

6.3  原则22:缓存Ajax调用    90

6.4  原则23:利用页面缓存    95

6.5  原则24:利用应用缓存    98

6.6  原则25:利用对象缓存    102

6.7  原则26:把对象缓存放在自己的“层”上    105

6.8  小结    107

参考资料    107

第7章  从错误中吸取教训    109

7.1  原则27:积极地学习    110

7.2  原则28:不要依靠QA发现失误    113

7.3  原则29:没有回退功能的设计是失败的设计    117

7.4  原则30:讨论失败并从中吸取教训    120

7.5  小结    124

参考资料    124

第8章  数据库原则    125

8.1  原则31:注意代价高的关系    126

8.2  原则32:使用类型正确的数据库锁    130

8.3  原则33:不要使用多阶段提交    133

8.4  原则34:不要使用SELECT FOR UPDATE    135

8.5  原则35:不要选择所有数据    137

8.6  小结    140

参考资料    140

第9章  容错设计与故障控制    141

9.1  原则36:采用隔离故障的“泳道”    142

9.2  原则37:绝对不要信任单点故障    148

9.3  原则38:避免系统串联    151

9.4  原则39:确保能够启用/禁用功能    155

9.5  小结    158

第10章  避免或分发状态    159

10.1  原则40:努力实现无状态    161

10.2  原则41:尽可能在浏览器端维护会话    164

10.3  原则42:利用分布式缓存存放状态    167

10.4  小结    170

参考资料    170

第11章  异步通信和消息总线    171

11.1  原则43:尽可能使用异步通信    172

11.2  原则44:确保消息总线能够扩展    175

11.3  原则45:避免让消息总线过度拥挤    179

11.4  小结    182

第12章  其他原则    183

12.1  原则46:慎用第三方解决方案扩展    184

12.2  原则47:清除、归档和成本合理的存储    187

12.3  原则48:删除事务处理中的商业智能    192

12.4  原则49:设计能够监控的应用    195

12.5  原则50:要能胜任    199

12.6  小结    202

参考资料    202

第13章  原则回顾和优先级划分    203

13.1  评估扩展项目和主动权的风险?收益模型    204

13.2  扩展原则的收益/优先级等级    235

13.3  小结    238

......(更多)

读书文摘

归根到底你是在一个服务业,这一点不要理解错了。这是一种必需的心态,如果缺乏这种心态,事实证明这会造成公司退化甚至毁灭。

对一个好工程师的真实度量,是看他能多快简化一个复杂的问题,然后构思出一个易于理解并可以维护的解决方案。

......(更多)

猜你喜欢

点击查看