登录注册联系我们

大型网站技术架构的演进

  最近我在阅读2本关于大型网站架构的书:《大型网站技术架构——核心原理与案例分析》李智慧、《大型网站系统与Java中间件实践》曾宪杰。

  我期望从这些书中学习到大型网站是如何做架构的,这个过程会遇到什么问题。当看完这2本书后,我总结出两个大问题:

  1. 网站技术架构为什么会演进?换个说法就是为什么网站会变大?

  2. 演进的过程会遇到什么问题?或者说为了演进,会遇到什么问题?

  网站技术架构为什么会演进

  我个人总结出来我们的技术架构演进的两种驱动力,驱动着我们为什么演进网站的技术架构:

  1. 内在驱动力:我们期望把当前的业务做得更好,开发更多新业务

  2. 外在驱动力:用户量的上升、用户种类的多样化

  这两种驱动力不是独立的,更多时候是并行的。我想淘宝就是两种驱动力并行驱动的结果。

  演进的原因很简单。但是在什么时机我们就应该演进网站的技术架构了,以及如何演进?面对这些问题,说实话,我没有任何经验,再说现实中每家企业当时都面临的问题都不一样,所以,我很难从经验中总结出什么是演进的时机。

  但是我可以从另一个角度切入这个问题:研究网站内外结构,找到这些结构可能出现的问题点,知道或者预见到问题点了,你当然就知道应该怎么演进了。类似于你了解了PC机的结构,你也就知道什么时候要加内存了,什么时候要加硬盘了。

  那么我们先看看网站的外部结构:

  

云计算

 

  外部结构中,我们可以看由以下几个部分构成:

  U:代表用户群。当用户群变了,我们的网站如何演进?用户群的分析,我目前能知道的维度有:数量,种类,地理位置(区域)。

  N:代表网络环境。网络环境在每个地区都不同。你可以想像我们为什么需要CDN。当我们期望每个区域的用户都能得到好的体验,我们的网站如何演进?

  S:代表安全。就是我们要安全到什么程度?这与网站当前所处阶段及你网站的性质有关。

  C:代表我们的网站。属于内部结构

  网站的内部结构:

  

Screen Shot 2015-03-12 at 6.18.20 PM

 

  内部结构的组成:

  A:应用服务。

  D:数据服务

  总结下来就是我们在考虑网站是否应该演进了或者如何演进时,这些组成部分为我们提供了考虑问题的基准。

  那么我们为什么不一开始就把网站设计成“大型”的。李智慧在后记里写到:“不要企图去设计一个大型网站”,“原因是互联网发展运行有其自己的规律,短暂的互联网历史已经一再证明这种企图行不通”。还说了:“大型网站不是设计出来的,而是逐步演化出来的”。对于最后这句话,我需要提醒下:“不是设计出来的”并不代表“随意设计”。

  对于“大型网站的设计”,我个人的看法是现在我们的有“云”了,计算是可以买的,只要我们的设计能适应“云”,我是不是就可以一开始就设计大型网站了?

  演进的过程会遇到什么问题

  – 最初

  从一个小网站说起。一台服务器也就足够了。

  

Screen Shot 2015-03-08 at 8.07.03 PM

 

  – 数据服务与应用服务分离

  越来越多的用户代表着越来越多的数据,一台服务器已经满足不了。我们将数据服务和应用服务分离,给应用服务器配置更好的CPU,内存。而给数据服务器配置更好更大的硬盘。

  

Screen Shot 2015-03-08 at 8.44.17 PM

 

  – 使用缓存

  因为80%的业务访问都集中在20%的数据上,如果我们能将这部分数据缓存下来,性能一下子就上来了。而缓存又分为两种:本地缓存和远程分布式缓存。具体使用哪种?还是两种都用,我目前不知道。

中国计算网简介

中国计算网是以工业设计、计算、咨询为主题的一站式计算服务平台,平台提供了工业软件、智能设备、物联网、云计算、大数据、超级计算、行业展会、人才服务、培训、学术会议等众多主题。中国计算网让更多的工业相关企业找到价值客户、计算人才找到合适的发展空间。中国计算网坚持科技服务大众创业、万众创新的理念,帮助企业、特别是广大中小企业采用信息化手段提升企业产品竞争能力和拓展市场应用空间。

链接中国计算网

1.微入口,发送短信“中国计算网”到12114了解全部信息。

2.用微信扫描二维码加关注,不定时的惊喜等着您来拿。