原始连接:StackOverflow的最新架构:.NET技术+25台服务器怎样支撑世界第53大网站 html
HighScalability的文章总结了搞技术的必去的StackOverflow最新的架构信息。主要的信息来源仍是Nick Craver去年11月的博客文章和Marco Cecconi几乎同期在Developer Conference 2013上的演讲。程序员
虽然Marco Cecconi今年还在世界好几个地方(包括QCon北京)讲过,但大体的内容没有变。除此外,Hacker News(1,2)和Reddit上的讨论也透露了更多信息。数据库
目前,StackOverflow(准确的说应该是StackExchange)已是一个规模很大的网站群,有120个网站,每个月新增三四个;550万用户;920万问题,1600万答案;每个月浏览数超过5亿,排名世界53名上下。每一年仍在倍增。编程
而这样的规模,他们的研发与运维团队只有不到30人(他们总员工数已经超过150,其中大部分是销售和猎头,还有两个厨师,哈哈),其中SRE(系统可靠性工程师,这个是运维工程师的时髦叫法)5人,核心开发(问答网站)6-7人,核心移动开发6人,招聘业务开发7人。大多数员工都是远程办公。运维和开发团队关系紧密,常常有人员流动。纽约的办公室里大部分是销售人员,丹佛和伦敦办公室所有都是销售。缓存
他们习惯于在本身的社区里招聘,喜欢乐于编程、帮助他人和沟通的人。服务器
基础设施方面,他们只用了25台服务器,主体仍然是微软.NET技术架构。只在须要的地方用Linux(好比Redis服务器)。网络
服务器和其余硬件的数量和配置是:架构
他们仍然采用向上扩展的策略,没有用云。为何呢?负载均衡
主要是由于成本。好比,他们的SQL Server服务器配置是384GB RAM,2TB SSD。这种配置的Dell服务器也就5000美圆,若是用AWS可不便宜(有人估算短租每个月要5万多美圆),并且如今AWS尚未SQL Server企业版选项。另外,云会使系统的优化和故障诊断更困难,增长的人工成本也不划算(他们创始人Jeff Atwood有名言“硬件不值钱,程序员才贵!”)。由于网站的业务已经比较稳定,增加和峰值负载可控,他们也没有水平扩展的须要。事实上,因为服务器的配置很高,CPU负载通常保持在较低水平,整个网站5台服务器就能够支撑。运维
此外,相似规模的网站若是采用水平扩展,每每须要100~200台服务器。
因此,技术世界里没有必定之规,具体状况具体分析很是重要。就像Marco Cecconi强调的,谈架构的时候必须先回答这事儿:你到底要解决什么问题?