自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Stack Overflow架構(gòu)揭秘(軟硬件、人員、數(shù)字)

原創(chuàng)
運維 系統(tǒng)運維
從2009年到今天,Stack Overflow的架構(gòu)已發(fā)生了很大的變化。Stack Overflow是全球IT界最受歡迎的技術問答網(wǎng)站之一,目前,其每月不重復的訪問用戶超過1600萬;每月網(wǎng)頁瀏覽量(PV)增長了近6倍,達到9500萬。Stack Overflow的架構(gòu)是相當公開的,本文對相關資料進行了總結(jié)分享。

【51CTO精選譯文】編者按:開發(fā)人員和社區(qū)類產(chǎn)品/運營工作者應該對Stack Overflow十分熟悉:這是IT界最受歡迎的問答網(wǎng)站之一。隨著Stack Overflow越來越火,該網(wǎng)站在最近幾年也對自身的架構(gòu)進行了大量的擴展優(yōu)化。本文作者對Stack Overflow這幾年的架構(gòu)變遷進行了揭秘。

自從本人在2009年寫了關于Stack Overflow 架構(gòu)的第一篇文章后,該架構(gòu)已發(fā)生了很大的變化。那篇文章主要介紹了Stack Overflow采取的向上擴展(scale-up)策略,而Stack Overflow在最近幾年得到了全面發(fā)展。

Stack Overflow取得了長足發(fā)展:規(guī)模擴大了一倍多,每月不重復的訪問用戶超過1600萬;每月網(wǎng)頁瀏覽量(PV)增長了近6倍,達到9500萬。

Stack Overflow發(fā)展壯大成了 Stack Exchange Network,而這個網(wǎng)絡包括Stack Overflow、Server Fault和Super User等,旗下總共擁有43個網(wǎng)站,而且發(fā)展勢頭良好。

但不變的是Stack Overflow在其所作所為方面堅持的開放理念,而這才有了今天這篇文章。最近的一連串帖子主要介紹了Stack Overflow在如何應對增長:《Stack Exchange的架構(gòu)要點介紹》、《Stack Overflow的紐約數(shù)據(jù)中心》、《為確保管理和容錯的高擴展性而設計》、《Stack Overflow搜索——現(xiàn)在時間縮短了81%》、《Stack Overflow網(wǎng)絡配置》、《Stack Overflow使用緩存嗎?如果使用,怎么使用?》和《哪些工具和技術構(gòu)建了Stack Exchange Network?》等。(51CTO編輯注:以上文章均為英文。)

這幾年來比較明顯的一些變化如下:

◆數(shù)量更多:更多的用戶、更多的PV、更多的數(shù)據(jù)中心、更多的站點、更多的開發(fā)人員、更多的操作系統(tǒng)、更多的數(shù)據(jù)庫、更多的機器。

◆Linux:Stack Overflow因使用Windows系列產(chǎn)品而著稱,現(xiàn)在他們使用越來越多的Linux機器,用于HAProxy、Redis、Bacula、Nagios、日志和路由器等系統(tǒng)。所有支持功能似乎都由Linux來處理,這就需要開發(fā)并行版本發(fā)行流程。

◆容錯:現(xiàn)在為Stack Overflow提供服務的是使用兩條不同互聯(lián)網(wǎng)連接的兩只不同交換機,Stack Overflow添加了冗余機器,一些功能已搬遷到第二個數(shù)據(jù)中心。

◆NoSQL:Redis現(xiàn)用作整個網(wǎng)絡的緩存層。以前沒有獨立的緩存層,所以這是一大變化,使用基于Linux的NoSQL數(shù)據(jù)庫也是一大變化。

遺憾的是,我沒有找到哪些帖子在介紹我上次提出的一些開放問題,比如Stack Overflow如何處理有著眾多不同屬性的多租戶架構(gòu),不過我們還是可以從許多方面來了解。下面是收集的一些信息:

統(tǒng)計數(shù)字

◆每月網(wǎng)頁瀏覽量9500萬次

◆每秒800個HTTP請求

◆每秒180個DNS請求

◆每秒55兆位

◆1600萬個用戶——Stack Overflow的流量在2010年增長了131%,全球每月不重復訪客增至1660萬人。

數(shù)據(jù)中心

Stack Overflow網(wǎng)絡架構(gòu)
Stack Overflow網(wǎng)絡架構(gòu)

◆1個機架放在俄勒岡州的Peak Internet(用于放置chat和Data Explorer)

◆2個機架放在紐約州的Peer 1(用于放置Stack Exchange Network的其余部分)

硬件

◆10臺戴爾R610 IIS Web服務器(3臺專門用于Stack Overflow)

◆1個英特爾至強處理器E5640,2.66 GHz四核,8線程

◆16 GB內(nèi)存

◆Windows Server 2008 R2

◆2臺戴爾R710數(shù)據(jù)庫服務器:

◆2個英特爾至強處理器X5680,3.33 GHz

◆64 GB內(nèi)存

◆8個硬盤

◆SQL Server 2008 R2

◆2臺戴爾R610 HAProxy服務器:

◆1個英特爾至強處理器E5640,2.66 GHz

◆4 GB內(nèi)存

◆Ubuntu Server

◆2臺戴爾R610 Redis服務器:

◆2個英特爾至強處理器E5640,2.66 GHz

◆16 GB內(nèi)存

◆CentOS

◆1臺戴爾R610 Linux備份服務器,運行Bacula:

◆1個英特爾至強處理器E5640,2.66 GHz

◆32 GB內(nèi)存

◆1臺戴爾R610 Linux管理服務器,用于Nagios和日志:

◆1個英特爾至強處理器E5640,2.66 GHz

◆32 GB內(nèi)存

◆2個戴爾R610 VMWare ESXi域控制器:

◆1個英特爾至強處理器E5640,2.66 GHz

◆16 GB內(nèi)存

◆2只Linux路由器

◆5只戴爾Power Connect交換機

開發(fā)工具

◆編程語言:C#

◆集成開發(fā)環(huán)境(IDE):Visual Studio 2010團隊套件

◆框架:微軟ASP.NET(版本4.0)

◆Web框架:ASP.NET MVC 3

◆視圖引擎:Razor

◆瀏覽器框架:jQuery 1.4.2

◆數(shù)據(jù)訪問層:LINQ to SQL,一些原始SQL

◆源碼控制:Mercurial和Kiln

◆比較工具:Beyond Compare 3

使用的軟件和技術

◆Stack Overflow通過BizSpark,使用WISC堆棧

◆操作系統(tǒng):Windows Server 2008 R2 x64

◆數(shù)據(jù)庫:運行微軟Windows Server 2008企業(yè)版x64的SQL Server 2008 R2

Ubuntu Server

CentOS

◆Web 服務器:IIS 7.0

◆HAProxy:用于負載均衡

◆Redis:用作分布式緩存層

◆CruiseControl.NET:用于代碼構(gòu)建和自動化部署

◆Lucene.NET:用于搜索

◆Bacula:用于備份

◆Nagios:(n2rrd和drraw插件)用于監(jiān)控

◆Splunk:用于日志

◆SQL Monitor:Red Gate公司提供,用于SQL Server監(jiān)控

◆Bind:用于DNS

◆Rovio:一個小巧的機器人(真正的機器人),讓遠程開發(fā)人員可以通過“虛擬方式”訪問辦公室。

◆Pingdom:外部監(jiān)控和警報服務網(wǎng)站

推薦閱讀:國外十大流行的服務器監(jiān)控工具(外篇)

#p#

外部組件

不是作為開發(fā)工具一部分而包括的代碼:

◆reCAPTCHA

◆DotNetOpenId

◆WMD——現(xiàn)在作為開源而開發(fā)。詳見github網(wǎng)絡圖

◆Prettify

◆Google Analytics

◆Cruise Control .NET

◆HAProxy

◆Cacti

◆MarkdownSharp

◆Flot

◆Nginx

◆Kiln

◆內(nèi)容分發(fā)網(wǎng)絡(CDN):無,所有靜態(tài)內(nèi)容從sstatic.net來提供,這個快速的、無cookie的域用于將靜態(tài)內(nèi)容分發(fā)到Stack Exchange系列網(wǎng)站。

開發(fā)人員和系統(tǒng)管理員

◆14名開發(fā)人員

◆2名系統(tǒng)管理員

內(nèi)容

◆許可證:Creative Commons Attribution-Share Alike 2.5 Generic

◆標準:OpenSearch,Atom

◆主機:PEAK Internet

架構(gòu)的更多信息和汲取的經(jīng)驗

◆使用了Proxy,而不是使用Windows網(wǎng)絡負載均衡(NLB),因為HAProxy成本低廉、易于使用,還是免費的;而且通過Hyper-V,很適合作為網(wǎng)絡上的一個512M虛擬機“設備”。它還在服務器的前端工作,所以對服務器來說完全透明;而且作為不同的網(wǎng)絡層,更容易排除故障,而不是與你的所有窗口配置混雜在一起。

◆沒有使用CDN,因為與捆綁在現(xiàn)有主機方案中的帶寬相比,連亞馬遜CDN這樣“便宜的”CDN其費用都非常昂貴。按照亞馬遜的CDN費率和Stack Overflow的帶寬使用量,每月至少要付1000美元。

◆備份到磁盤上,便于快速恢復;備份到磁帶上,便于歷史歸檔。

◆SQL Server的全文搜索機制集成度非常差,問題多多,功能很弱,所以Stack Overflow改用了Lucene。

◆最受關注的是峰值HTTP請求數(shù)字,因為這正是他們需要確保能處理的方面。

◆所有屬性如今都在同一個Stack Exchange平臺上運行。那意味著Stack Overflow、Super User、Server Fault、Meta、WebApps和Meta Web Apps都在同一個軟件上運行。

◆有一些獨立的StackExchange站點,因為人們擁有不同的專業(yè)技能,這些技能并不適用于不同的主題站點。你也許是世界上最出色的大廚,但并不是說你就有能力修復服務器。

◆Stack Overflow盡量把一切都放到緩存中。

◆匿名用戶訪問的所有頁面通過輸出緩存(Output Caching)放到緩存中,隨后提供給匿名用戶。

◆每個站點有三種不同的緩存:本地緩存、站點緩存和全局緩存。

◆本地緩存:只能通過1對服務器/站點來訪問。

◆為了限制網(wǎng)絡延遲時間,Stack Overflow使用了本地“一級”緩存(基本上是HttpRuntime.Cache),緩存服務器上最近設定/讀取的值。這樣就可以把網(wǎng)絡上的緩存查找開銷減小至0字節(jié)。

◆緩存里面含有用戶會話和等待的視圖數(shù)更新等內(nèi)容。

◆緩存完全駐留在內(nèi)存中,沒有網(wǎng)絡或數(shù)據(jù)庫訪問。

◆站點緩存:可以由一個站點(任何服務器上)的任何實例來訪問。

◆大部分緩存的值進入到這里,熱點問題ID列表和用戶驗收率就是兩個典例。

◆緩存駐留在Redis(位于不同的數(shù)據(jù)庫,純粹為了易于調(diào)試)。

◆Redis的速度很快,緩存查找中速度最慢的部分就是讀取字節(jié)并寫到網(wǎng)絡上。

◆值被發(fā)送到Redis之前先進行壓縮。Stack Overflow有許多處理器,大部分數(shù)據(jù)是字符串,所以得到的壓縮比很高。

◆Redis機器上的處理器使用率為0%。

◆全局緩存:全局緩存被所有站點和服務器共享。

◆緩存內(nèi)容包括收件箱、API使用限額和另外幾項真正全局的內(nèi)容。

◆緩存駐留在Redis中(位于數(shù)據(jù)庫0,同樣為了易于調(diào)試)。

◆緩存中的大部分項目在超時(通常是幾分鐘)后過期,從來不被明確刪除。需要宣布某個特定的緩存項目無效時,他們使用Redis消息傳遞機制,向“一級”緩存發(fā)布刪除通知。

◆知名軟件工程師、Fog Creek Software公司首席執(zhí)行官Joel Spolsky不是微軟的忠誠分子,他并不為Stack Overflow做出技術決策,認為微軟的許可證是個舍入誤差。

◆Stack Overflow為自己的輸入/輸出系統(tǒng)選擇了英特爾X25固態(tài)硬盤組成的RAID 10陣列。這個RAID陣列消除了可靠性方面的任何問題;與FusionIO相比,固態(tài)硬盤的性能確實很好,而價格又便宜得多。

◆微軟許可證的總標價約為24.2萬美元。由于Stack Overflow使用Bizspark,所以沒在支付總標價,但他們能付的最多也就這么多。

◆英特爾網(wǎng)卡取代了博通網(wǎng)卡和主生產(chǎn)服務器。這解決了他們之前面臨的問題:連接中斷、數(shù)據(jù)包丟失和地址解析協(xié)議(ARP)表損壞。

【51CTO.com譯文,轉(zhuǎn)載請注明原文作譯者和出處?!?/p>

原文:Stack Overflow Architecture Update - Now At 95 Million Page Views A Month

【編輯推薦】

  1. 系統(tǒng)管理員的軟硬件維護清單
  2. 淺談如何將NoSQL引入現(xiàn)有架構(gòu)系統(tǒng)
  3. 大型網(wǎng)站運維之道漫談
責任編輯:yangsai 來源: 51CTO.com
相關推薦

2010-01-11 10:25:08

Linux軟硬件配置

2015-11-12 10:42:12

2010-04-23 10:30:16

實現(xiàn)負載均衡

2012-06-19 10:34:36

微軟surface平板

2015-08-19 10:25:35

格力董明珠手機

2021-11-15 10:26:44

函數(shù)計算架構(gòu)

2021-01-14 08:00:00

服務器數(shù)據(jù)中心DokuWiki

2017-08-14 13:40:34

VDI軟硬件IT

2010-05-12 15:11:18

華夏擎工作組LOGO有獎征集

2012-05-14 11:40:42

ARMWin8Intel

2010-09-26 15:47:04

Oracle

2010-08-24 10:47:58

2009-12-23 09:37:38

集線器故障

2012-05-29 09:20:11

微軟鼠標

2012-07-18 17:06:36

Gartner云計算

2009-12-31 08:59:58

Windows 7認證列表

2014-03-11 11:04:30

2011-06-17 11:15:13

AndroidAndroid 3.0平板電腦

2009-06-04 09:14:28

點贊
收藏

51CTO技術棧公眾號