《高扩展性网站的50条原则》简介:

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

主要内容包括:

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

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

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

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

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

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

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

有效利用异步通信;

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

《高扩展性网站的50条原则》摘录:

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

《高扩展性网站的50条原则》目录:

目    录
第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
· · · · · ·