何时是开始考虑扩展的好时机?

时间:2010-05-20 22:49:41

标签: language-agnostic scaling horizontal-scaling

我在过去几天一直在设计一个网站,并且正在对水平扩展网站的不同方面进行一些研究。如果事情按计划进行,几个月(几年?)我知道我需要担心扩大网站的规模,因为最终消耗的资源将是巨大的。

所以,这让我想到,何时是开始思考和设计可伸缩性的最佳时机?如果你太早开始,你可能很容易使你的设计复杂化,并使其无法实际构建。您也可能会对细节,架构,无论如何都陷入困境,最终无所事事。此外,如果你确实让它工作,但网站永远不会起飞,你可能已经浪费了很多额外的努力。

另一方面,你可以在路上节省大量的精力。从头开始设计它会变得更容易,以后让它变大,只需很少的重写。

我知道我正在做什么,我决定现在至少在缩放方面做出一些选择,但我不打算彻底改变思路以使其完全扩展。值得注意的是,我已经将我的数据库从传统的关系设计重新设计为类似于下面链接的Reddit网站上建议的数据库,我将尝试给memcache。

所以,基本的问题,何时是开始思考或担心缩放的好时机,以及什么是好的设计,提示等等呢?

我一直在阅读的一些事情,对于那些感兴趣的人:

http://www.codinghorror.com/blog/2009/06/scaling-up-vs-scaling-out-hidden-costs.html

http://highscalability.com/blog/2010/5/17/7-lessons-learned-while-building-reddit-to-270-million-page.html

http://developer.yahoo.com/performance/rules.html

2 个答案:

答案 0 :(得分:4)

在某种观点下,缩放技术已被广泛接受和整合。因此,在依赖网络链接/文章时,我会在开始测试之前阅读有关该主题的书籍。

我建议:

答案 1 :(得分:1)

一个好的,明智的架构应该允许您在以后扩展,而不需要过多的资源来实现。这应该从项目的最初阶段开始考虑。

如今,您可以从(Rails,MVC,Spring等)中获得非常好的体系结构和企业设计模式,这些模式允许您在完善且易于理解的基础上开发软件,从而提供必要的扩展机制起来。