StackOverflow的架構:.NET技術+25臺服務器怎樣支撐世界第53大網站

原始連接:StackOverflow的最新架構:.NET技術+25臺服務器怎樣支撐世界第53大網站   html


 

HighScalability的文章總結了搞技術的必去的StackOverflow最新的架構信息。主要的信息來源仍是Nick Craver去年11月的博客文章和Marco Cecconi幾乎同期在Developer Conference 2013上的演講程序員

雖然Marco Cecconi今年還在世界好幾個地方(包括QCon北京)講過,但大體的內容沒有變。除此外,Hacker News(12)和Reddit上的討論也透露了更多信息。數據庫

目前,StackOverflow(準確的說應該是StackExchange)已是一個規模很大的網站羣,有120個網站,每個月新增三四個;550萬用戶;920萬問題,1600萬答案;每個月瀏覽數超過5億,排名世界53名上下。每一年仍在倍增。編程

http://img.my.csdn.net/uploads/201407/23/1406092010_7316.png

而這樣的規模,他們的研發與運維團隊只有不到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強調的,談架構的時候必須先回答這事兒:你到底要解決什麼問題?

相關文章
相關標籤/搜索