网站架构对于企业的重要性不言而喻,尤其在维护客户方面表现得格外重要。但是对于很多创业公司来说,难以在初期就预估到流量十倍、百倍以及千倍以后网站架构会是什么样的一个状况。同时,如果系统初期就设计一个千万级并发的流量架构,很难有公司可以支撑这个成本。所以,最简单的就是从一个小网站做起,在每个发展阶段,找到对应的问题,在不断解决的过程中推动整个架构一直演进。
那么,具体要怎么做,才能一点点打造出属于自己的高大上网站呢?
没有太多经验的初创公司也可以吗?
从一个小网站做起,一台服务器也就足够了,文件服务器、数据库和应用都部署在一台机器,俗称ALL IN ONE。
随着用户越来越多,访问越来越大,单服务器已经满足不了现有需求,这时候将数据服务和应用服务分离,给应用服务器配置更好的CPU、内存,给数据服务器配置更好更大的硬盘,提高一定的可用性。
当访问qps不断提高,服务器的处理能力会成为瓶颈,这也是后期成本就是指数级增长的原因,此时为了让我们的服务器可以横向扩展,必须加入负载均衡调度服务器,进行服务器集群。
接下来,当用户量达到一定量,数据库将会发展成为新的瓶颈,需要将数据库读写分离,应用程序也得随之做出相应的变化。在这一过程中,对于数据源的路由问题,可以使用反向代理和 CDN 加速网站响应。
在访问量的持续扩大中,文件服务器也会到瓶颈阶段,这时应采纳分布式文件系统,对数据进行水平拆分和垂直拆分。待到公司对外部做了流量导入,应用中的搜索量飙升,继续演进的就是拆分搜索引擎,解决数据查询问题。
从这个案例可以看出,所有大型项目的架构和代码,都是这么一步一步地根据实际的业务场景和发展情况演变而来的,在不同的阶段,会使用的不同的技术、不同的架构来解决实际的问题。按照这个思路,高大上的项目技术架构和开发设计也并不难以实现。