Language agnostic 什么时候是开始考虑扩展的好时机?
在过去的几天里,我一直在设计一个网站,并对水平扩展网站的不同方面进行了一些研究。如果一切按计划进行,在几个月(几年?)内,我知道我需要担心网站的扩展,因为它最终消耗的资源将是巨大的 所以,这让我思考,什么时候开始考虑和设计可伸缩性是最好的时机?如果开始得太早,很容易使设计过于复杂,使实际构建变得不可能。你也可能过于沉迷于细节、架构等,最终一事无成。此外,如果你确实让它工作起来了,但网站从未起飞,那么你可能浪费了大量额外的精力 另一方面,你可以为自己节省大量的精力。从头到尾把它设计成大的,这样以后就更容易让它变大,只需要很少的重写 我知道我在做什么,我已经决定在扩展方面至少做一些选择,但我不会完全改变想法,让它完全扩展。值得注意的是,我已经将我的数据库从传统的关系型设计重新设计为类似于下面链接的Reddit网站上的建议,我将尝试一下memcache 因此,基本问题是,什么时候开始考虑或担心伸缩性,以及在这样做时有哪些好的设计、技巧等? 我一直在读的几篇文章是为那些感兴趣的人准备的:Language agnostic 什么时候是开始考虑扩展的好时机?,language-agnostic,scaling,horizontal-scaling,Language Agnostic,Scaling,Horizontal Scaling,在过去的几天里,我一直在设计一个网站,并对水平扩展网站的不同方面进行了一些研究。如果一切按计划进行,在几个月(几年?)内,我知道我需要担心网站的扩展,因为它最终消耗的资源将是巨大的 所以,这让我思考,什么时候开始考虑和设计可伸缩性是最好的时机?如果开始得太早,很容易使设计过于复杂,使实际构建变得不可能。你也可能过于沉迷于细节、架构等,最终一事无成。此外,如果你确实让它工作起来了,但网站从未起飞,那么你可能浪费了大量额外的精力 另一方面,你可以为自己节省大量的精力。从头到尾把它设计成大的,这样以后
一个完善、合理的体系结构应该允许您在以后进行扩展,而不需要过多的资源来实现。这应该从项目一开始就考虑
现在有很好的体系结构和企业设计模式可以从(Rails、MVC、施普灵河等)中汲取,这些软件可以让你在一个完善的、基础良好的基础上开发软件,提供必要的扩展机制。缩放技术已被广泛接受和巩固。因此,在开始研究这个问题之前,我会阅读关于这个主题的书籍,而不是依赖于网络链接/文章 我建议:
- “可扩展的互联网架构”
- “可伸缩性的艺术”——
- “容量规划的艺术”——