商家名称 | 信用等级 | 购买信息 | 订购本书 |
高扩展性网站的50条原则 [平装] | |||
高扩展性网站的50条原则 [平装] |
《高扩展性网站的50条原则》编辑推荐:网站建设是一项复杂的工程,随着规模的扩大,许多网站势必会遇到严重的性能和可扩展性问题。大量用户涌入时如何保证网站不崩溃?如何缩短页面载入时间?这都是摆在网站开发和运维人员面前迫待解决的问题。
《高扩展性网站的50条原则》作者凭借他们在世界上业务流量最高的网站中积累的管理经验,针对性能测试到IT管理等诸多实际问题,总结出了高扩展性网站建设的50条最佳原则。这些原则适用于所有前端和后端系统,帮助你应对规模迅速增大的网站。
《高扩展性网站的50条原则》适合各层次Web开发人员阅读。
“本书是Abbott和Fisher的又一力作,我想把它推荐给我们公司的所有工程师。对于处理在线业务可扩展性的每一位人士,本书必不可少。”
——Chris Lalonde,Bullhorn公司副总裁
“Abbott和Fisher从实践出发,再次以独一无二的方式解决了扩展性难题。目前,网站设计要素错综复杂且不断增多,两人将这些难题和挑战总结为50条功能强大、简单易用的原则。可以说,本书是关于网站扩展性秘诀的秘籍,它能够指引读者穿越‘爆发式增长网络难题的迷雾,创建扩展性优良的网站。”
——GeoffreyWeber, Shutterfly公司副总裁
“50条原则是Abbott和Fisher多年智慧的结晶,运用这些原则可以避免网站的许多特殊问题。这套原则强大、令人信服!”
——Jonathan Heiliger, Facebook副总裁
作者:(美国)阿博特(Martin L.Abbott) (美国)费希尔(Michael T.Fisher) 译者:张欣 杨海玲
阿博特(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
版权页:
插图:
3.1 原则10:设计横向扩展方案目的:所谓横向扩展,就是通过复制服务或数据库来分散事务负载,而纵向扩展即购买更大的硬件。前者可以替代后者。适用情形:适用于任何预计会快速增长的系统、服务和数据库。应用方式:利用AKF扩展立方确定环境的正确拆分方法。通常,横向拆分(克隆)是最简单的方法。应用理由:只需要复制数据和功能就可以快速扩展事务。要点:为成功做好计划,把系统设计为能够横向扩展的。不要让自己陷入如此困境:要进行纵向扩展时,却发现已经没钱购买更快更大的系统了。
当你发现系统中的客户和事务在快速增长,而系统却不能扩展到多个服务器上时,你会怎么做?理想情况下,应该研究你有哪些选择。是购买更大的服务器,还是花费更多的编程时间使软件能在多个服务器上运行。让应用程序或数据库能够在多个服务器上运行,就是所谓的横向扩展。继续让系统在更大的硬件上运行,则称为纵向扩展。在分析过程中,通过ROI计算,结论可能会是购买更大的硬件比花费技术资源来修改应用程序更便宜。虽然我们支持得出这种结论的分析方法,但对于超高速发展的公司和产品来说,这个结论可能是错误的。原因在于它可能没有考虑长期成本。把具有两个64位双核处理器的服务器换成具有四个处理器的服务器,其成本与从中得到的新增计算资源是成比例的(约2倍)。当我们继续购买具有更多处理器的大型服务器时,谬误就出现了。计算处理能力的成本曲线是条幂次定律曲线,其中成本的增长与更大的服务器提供的处理能力的增长不再成比例(参阅原则11)。假设你的公司在持续地成功与增长,那么你购买更大系统的成本就会随着曲线一直增长。
喜欢高扩展性网站的50条原则 [平装]请与您的朋友分享,由于版权原因,读书人网不提供图书下载服务