BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

构建可伸缩的Web服务

| 作者 Dilip Krishnan 关注 0 他的粉丝 ,译者 黄璜 关注 0 他的粉丝 发布于 2009年9月15日. 估计阅读时间: 3 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

Tom Killalea,Amazon负责基础设施与分布式系统的技术副总裁在近期的ACM queue上发表了一篇关于构建可伸缩性Web服务的文章。 他概述了构建可伸缩性Web服务的指导原则并举了许多现实世界的实际案例,其核心主题是“只构建你所需要的”。

警惕:过早优化

花费在优化可伸缩性上面的时间和资源不如花费在改进用户体验和吸引流量上。

采纳:他人的成果

他解释到,学习他人在框架与基础设施方面的工作可以减短上市时间,帮助将重点转移到提供客户价值上。

三个重要的进展从不同的方面对降低门槛作出了贡献:迈向SOA的趋势(面向服务的架构),云计算基础设施服务的涌现,以及ASP.NET,Django,Rails和Spring等等Web应用框架的可用性。

警惕:过度优化

他引用了Nicholas Nassim Taleb在高度非概然性不可测事件所产生的重大影响方面所做的工作,并建议使用冗余作为提高可用性的策略;使用冗余作为负载平衡而不仅仅是故障恢复机制这一想法比起对于低概率的可能性事件进行过度优化来说,显然更加有成本效率。

采纳:云

Tom给出了Animoto的例子,这一通过Amazon.com的EC2基础设施托管的社交Web应用是如何随需应变的快速平面伸缩(scale out)的,甚至扩展到3500个实例。同样的情况在非云的基础设施里,为了保证尖峰时刻的流量将会花费巨大的成本。

警惕:目标驱动的优化

对于期望的流量进行建模然后构建精确的伸缩性计划以满足这一目标是极具风险的。好的模型难于构建,并且会因为简化或者是降低变因的乐观估计而受到影响。[…]如果你的Web服务是成功的,你最终会遇到比目标模型更大的需求——也许不是这个黑色的星期一或者超级碗周末,但有可能是很快以后,在你所没想到的时间范围内。

采纳:扯下翅膀

除了分析哪部分会第一个出问题以及其原因以外”,Tom谈到“我们会查看给定的应用或者服务在没有出问题或缺少这部分的情况下会有怎样的表现,并且重新进行测试,以找下一个出问题的部分”。

Tom这样总结了他的文章“构建一个可伸缩的Web服务所面临的最困难的挑战就是在出现故障以及高度的并发访问械的情况下,如何去处理持续性,可靠性,性能以及成本效率之间的折衷。”。

除了Tom的这篇文章2008年10号还有其它的关于构建可伸缩性Web服务的精彩文章。

查看英文原文:Building Scalable Web Services

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT