迷你定时提醒工具
事件提醒,定时提醒,待办事务,护眼配色,定时关机...
IT人士的必备工具。 查看详情
迷你图片批量处理工具
批量图片压缩、批量更改图片大小、批量添加水印、批量更改格式、批量增加特效...
图片处理必备工具。 查看详情
迷你文件校验工具
快速计算文件的MD5、SHA1、CRC32及文件属性。
文件安全必备工具。 查看详情
最新评论
软件技术
.NET技术和25台服务器怎样支撑世界第53大网站
作者:系统管理员
发布日期:2015-04-24

目前,StackOverflow(准确的说应该是StackExchange)已经是一个规模很大的网站群,有120个网站,每月新增三四个;550万用户;920万问题,1600万答案;每月浏览数超过5亿,排名世界53名上下。每年仍在倍增。

而这样的规模,他们的研发与运维团队只有不到30人(他们总员工数已经超过150,其中大部分是销售和猎头,还有两个厨师,哈哈),其中SRE(系统可靠性工程师,这个是运维工程师的时髦叫法)5人,核心开发(问答网站)6-7人,核心移动开发6人,招聘业务开发7人。大多数员工都是远程办公。运维和开发团队关系紧密,经常有人员流动。纽约的办公室里大部分是销售人员,丹佛和伦敦办公室全部都是销售。

他们习惯于在自己的社区里招聘,喜欢乐于编程、帮助他人和沟通的人。

基础设施方面,他们只用了25台服务器,主体仍然是微软.NET技术架构。只在需要的地方用Linux(比如Redis服务器)。

服务器和其他硬件的数量和配置是:

  • 4台数据库服务器(SQL Server),每台384GB RAM,2TB SSD,平均CPU利用率是10%,只在备份时会较高
  • 11台Web服务器(IIS),每台2x320GB SSD,RAID 1,10%-15% CPU负载
  • 3台搜索服务器(ElasticSearch),每台300GB内存,另加SSD
  • 40:60读写率
  • 2台负载均衡服务器(HAProxy),1台活动
  • 3台应用服务器(实现了tag引擎功能),负责任何按标签的搜索
  • 2台分布式缓存和消息处理服务器(Redis)
  • 2台网络交换机(每个都是Cisco Nexus 5596 + Fabric Extenders)
  • 2台Cisco 5525-X ASA防火墙
  • 2台Cisco 3945路由器
  • 2台只读SQL Server服务器,主要用于Stack Exchange API
  • 虚拟机用于部署、域控制器、监控、运维数据库等场合

他们仍然采用向上扩展的策略,没有用云。为什么呢?

主要是因为成本。比如,他们的SQL Server服务器配置是384GB RAM,2TB SSD。这种配置的Dell服务器也就5000美元,如果用AWS可不便宜(有人估算短租每月要5万多美元),而且现在AWS还没有SQL Server企业版选项。另外,云会使系统的优化和故障诊断更困难,增加的人工成本也不划算(他们创始人Jeff Atwood有名言“硬件不值钱,程序员才贵!”)。因为网站的业务已经比较稳定,增长和峰值负载可控,他们也没有水平扩展的需要。事实上,由于服务器的配置很高,CPU负载一般保持在较低水平,整个网站5台服务器就可以支撑。

此外,类似规模的网站如果采用水平扩展,往往需要100~200台服务器。

所以,技术世界里没有一定之规,具体情况具体分析非常重要。就像Marco Cecconi强调的,谈架构的时候必须先回答这事儿:你到底要解决什么问题?

评论 (2) - ;=ne_visibilityS+你到底_vit', ityS+;=n');">- S+y0teGqmta7 tdn> dwick底要ng>

F3;"> - :div ">c="6-9-26 11:38:div class="l#=n');">>#targetdiv class="conte >近螻似还道问题ne authtrong> Cecconi强 "软.NETrong"c题ne要...
<=n')49>- S+y0teGqmta7 tdn> 底要ng>

F3;"> - :div ">c="6-8-31 10:07:12v class="l#=n')49>>#targetdiv class="conte > Cecconi强 "软.NETrong"c题ne要... ');">- -fef6%u62rong> Cecco tatus"软.NETrorong>

le=%u8ddeGqmta7 .asptitle tip大网站 label fef:White;"> hite;">ite1_txtUserNam"tex*abelu62

ATOR" 0" /> hite;$> $hite;$>ite1$txtUserNam"tosts" class"lor:White;"> hite;">ite1_txtUserNam"tOU9 62
brOU9d97uEyng> label fef:White;"> hite;">ite1_txtEmail">邮n s*abelu62
ATOR" 0" /> hite;$> $hite;$>ite1$txtEmail"osts" class"lor:White;"> hite;">ite1_txtEmail"oU9d97uEyng> Cecco gr tetarmsg"软.NETronggggggggggg62 brOU9d97uEyng> label fef:White;"> hite;">ite1_txt" "te> 址abelu62 ATOR" 0" /> hite;$> $hite;$>ite1$txt" "tosts" class"lor:White;"> hite;">ite1_txt" "toU9d97uEyng> brOU9d97uEyng> > ');">- Composeht:28px; background:#label fef:White;"> hite;">ite1_txt title tiabelu62 und:#lass论0" /> hite;$> $hite;$>ite1$txt hite;">ite1_txtCdiv> und:#brOU9d97uEyng> gggg62 5-04-24 brOU9d97uEyng> 验证码 ATOR" 0" /> hite;$> $hite;$>ite1$txtVerifyCod"tosts" class"lor:White;"> hite;">ite1_txtVerifyCod"toAutoComplet" coff7ne_visibime-mod": iliabledtoU9d97uEyng> an: none; text-alig noreshVerifyCod"('Verify')text/css"点击刷新 <=Verify"仍在VerifyCod"lMenu" brOU9d97uEyng> ATOR" value=submit" 0" /> hite;$> $hite;$>ite1$btnSaveATION" id存title " onclickne; text-alig4ef6_DoPostBackWithO处s(new 4ef6_PostBackO处s("hite;$> $hite;$>ite1$btnSave", "", true, "AddC- ", "", false, false))"lor:White;"> hite;">ite1_btnSaveATU9d97uEyng>
ttoxt-aliosts" class=; text-ali" class=fun"aspn n: center" href="jid,lor2)t/css"> var docu/a> .getEle/a> ByIdjid);css"> var hdocu/a> .getEle/a> ByIdjid2);css"> if (e.../../ilityS+ == '你')t/css"> e.../../ilityS+ = 'olid';62
h.innerE htm= "+"x; li elset/css"> e.../../ilityS+ = '你';62 h.innerE htm= "-"x; li }ggg62line-t-ali>tt62linetle_s53大网站于 ©2008-c="3 an: noneitional.dtd- MN-SOFT.CO>ass="subheado.pn, All R s Resd. Email:admin[at]- MN-SOFT.CA1、CE53333持  3"> href="/articln: noneitional.dtd- MN-SOFT.CO>ass="subheado.pn    悽第 1717541 位访客class="content_blinettoxt-alient_b(fun"aspn(i,s,o,g,r,a,m){i['GoocenAnalyticsObject']=r;i[r]=i[r]||fun"aspn()/css"(i[r].q=i[r].q||[]).push( hru/a> s)},i[r].l=1*new Date();a=s.cteEle/a> (o),css"m=s.getEle/a> sByTagNam"(o)[0];alMeync=1;al仍g;m.pntNod"linstBefefe(a,m)css"})(window,docu/a> ,'xt-ali','al.dtdgoocen-analyticsFT.C/analyticsFjs','ga');cscss"ga('cteggleUA-47179406-1ggle- MN-SOFT.C');css"ga('sendggless="view');cscs软t-ali>ttoxt-aliosts" class=; text-ali"仍itionaltajs.qqFT.C/ tats?sId=44238点nt-type" "UTF-8"软t-ali>ttttoxt-alientvar _hmtm= _hmtm|| [];cs(fun"aspn()t/css"var hmdocu/a> .cteEle/a> ("xt-ali");css"hml仍m= "//hmlbaiduFT.C/hmljs?e4401a6e4dbe027be8577ac37e621f89"x; var sdocu/a> .getEle/a> sByTagNam"("xt-ali")[0];g62tto/fef6>tto/iniPort<"cont>