
自从10月份网站出过一次问题之后( CDN 资源失效导致打开速度超21秒),我就定下了一个目标,Coding10 以后绝对不能再出现那种愚蠢问题。至少到现在为止,我也算是完成了自己定下的目标,但这并不代表没有问题。上周的时候,随着用户的增多,访问量增大,服务器的压力越来越大,我能感觉到网站的打开速度慢了,更有用户说注册的时候没有反应。我觉得这是一个机会,把服务器的服务能力再提升一把,所以从上周 5 开始折腾这个事情,网站的速度是一方面,视频文件的安全是另一方面,我决定同时把这两个事儿都搞定。采用的却是特别土特别原始的方式:把鸡蛋放在多个篮子里,视频在七牛,又拍云,阿里云 OSS 都有备份。一旦本地服务器承载不住了,马上切换到其他的数据源上去,保证我的单机服务器的压力在一个合理的范围。
今天下午 4 点半左右网站暂停了 2 分钟,对网站完成了本次的升级任务。我的心里压力小了很多,这样 Coding10 就能承受住更多用户的访问了,我就不用一直盯着监控数据担心服务器扑街;也不用担心网站出了问题视频会丢失了。其实呢,这是大部分网站发展过程中都会经历的一个小阶段,越是大型的网站,其背后的服务器架构得就越复杂,但是也有共同点,都是从单细胞(单服务器)发展起来的,随着业务和负载以及服务的细分化,单服务器会把功能分解出去,有了用于存储文件的文件服务器,专门用来处理数据的数据库服务器,缓存数据的缓存服务器,进行访问均衡的负载均衡服务器,单台文件服务器和缓存服务器等不够用了之后,慢慢开始形成服务器的集群,数据库服务器也会进行进一步分工,读写分离,业务分离,服务分离 .....
网站的架构都是随着业务的发展一步步演变出来的具体的架构方案,如果说哪个网站的架构从一开始到最后完全没有啥变化,那基本是不可能的。从狗窝到紫禁城,网站的架构层次那是天壤之别,Coding10 目前虽然还是狗窝的阶段,但至少也是一个小而美的狗窝,我有一个梦想:我想活得像这只狗一样 ~