億萬用戶網站MySpace的成功祕密(轉)

 
億萬用戶網站MySpace的成功祕密

◎ 文 / David F. Carr   譯 / 羅小平

高速增長的訪問量給社區網絡的技術體系帶來了巨大挑戰。MySpace的開發者多年來不斷重構站點軟件、數據庫和存儲系統,以期與自身的成長同步——目前,該站點月訪問量已達400億。絕大多數網站需要應對的流量都不及MySpace的一小部分,但那些指望邁入龐大在線市場的人,可以從MySpace的成長過程學到知識。

用戶的煩惱
Drew,是個來自達拉斯的17歲小夥子,在他的MySpace個人資料頁上,可以看到他的袒胸照,看樣子是自己夠着手拍的。他的好友欄全是漂亮姑娘和靚車的鏈接,另外還說自己參加了學校田徑隊,愛好吉他,開一輛藍色福特野馬。
不過在用戶反映問題的論壇裏,似乎他的火氣很大。“趕緊弄好這該死的收件箱!”他大寫了所有單詞。使用MySpace的用戶個人消息系統可以收發信息,但當他要查看一條消息時,頁面卻出現提示:“非常抱歉……消息錯誤”。

Drew的抱怨說明1.4億用戶非常重視在線交流系統,這對MySpace來說是個好消息。但也恰是這點讓MySpace成了全世界最繁忙的站點之一。
11月,MySpace的美國國內互聯網用戶訪問流量首次超過Yahoo。comScore Media Metrix公司提供的資料顯示,MySpace當月訪問量爲387億,而Yahoo是380.5億。
顯然,MySpace的成長太快了——從2003年11月正式上線到現在不過三年。這使它很早就要面對只有極少數公司纔會遇到的高可擴展性問題的嚴峻挑戰。
事實上,MySpace的Web服務器和數據庫經常性超負荷,其用戶頻繁遭遇“意外錯誤”和“站點離線維護”等告示。包括Drew在內的MySpace用戶經常無法收發消息、更新個人資料或處理其他日常事務,他們不得不在論壇抱怨不停。

尤其是最近,MySpace可能經常性超負荷。因爲Keynote Systems公司性能監測服務機構負責人Shawn White說,“難以想象,在有些時候,我們發現20%的錯誤日誌都來自MySpace,有時候甚至達到30%以至40%……而Yahoo、Salesforce.com和其他提供商用服務的站點,從來不會出現這樣的數字。”他告訴我們,其他大型站點的日錯誤率一般就1%多點。

順便提及,MySpace在2006年7月24號晚上開始了長達12小時的癱瘓,期間只有一個可訪問頁面——該頁面解釋說位於洛杉磯的主數據中心發生故障。爲了讓大家耐心等待服務恢復,該頁面提供了用Flash開發的派克人(Pac-Man)遊戲。Web站點跟蹤服務研究公司總經理Bill Tancer說,尤其有趣的是,MySpace癱瘓期間,訪問量不降反升,“這說明了人們對MySpace的癡迷——所有人都擁在它的門口等着放行”。
現Nielsen Norman Group 諮詢公司負責人、原Sun Microsystems公司工程師,因在Web站點方面的評論而聞名的Jakob Nielsen說,MySpace的系統構建方法顯然與Yahoo、eBay以及Google都不相同。和很多觀察家一樣,他相信MySpace對其成長速度始料未及。“雖然我不認爲他們必須在計算機科學領域全面創新,但他們面對的的確是一個巨大的科學難題。”他說。

MySpace開發人員已經多次重構站點軟件、數據庫和存儲系統,以滿足爆炸性的成長需要,但此工作永不會停息。“就像粉刷金門大橋,工作完成之時,就是重新來過之日。”(譯者注:意指工人從橋頭開始粉刷,當到達橋尾時,橋頭塗料已經剝落,必須重新開始)MySpace技術副總裁Jim Benedetto說。
既然如此,MySpace的技術還有何可學之處?因爲MySpace事實上已經解決了很多系統擴展性問題,才能走到今天。

Benedetto說他的項目組有很多教訓必須總結,他們仍在學習,路漫漫而修遠。他們當前需要改進的工作包括實現更靈活的數據緩存系統,以及爲避免再次出現類似7月癱瘓事件的地理上分佈式架構。

背景知識
MySpace目前的努力方向是解決擴展性問題,但其領導人最初關注的是系統性能。
3年多前,一家叫做Intermix Media(早先叫eUniverse。這家公司從事各類電子郵件營銷和網上商務)的公司推出了MySpace。而其創建人是Chris DeWolfe和Tom Anderson,他們原來也有一家叫做ResponseBase的電子郵件營銷公司,後於2002年出售給Intermix。據Brad Greenspan(Intermix前CEO)運作的一個網站披露,ResponseBase團隊爲此獲得2百萬美金外加分紅。Intermix是一家頗具侵略性的互聯網商務公司——部分做法可能有點過頭。2005年,紐約總檢察長Eliot Spitzer——現在是紐約州長——起訴Intermix使用惡意廣告軟件推廣業務,Intermix最後以790萬美元的代價達成和解。

2003年,美國國會通過《反垃圾郵件法》(CAN-SPAM Act),意在控制濫發郵件的營銷行爲。Intermix領導人DeWolfe和Anderson意識到新法案將嚴重打擊公司的電子郵件營銷業務,“因此必須尋找新的方向。”受聘於Intermix負責重寫公司郵件營銷軟件的Duc Chau說。
當時有個叫Friendster的交友網站,Anderson和DeWolfe很早就是它的會員。於是他們決定創建自己的網上社區。他們去除了Friendster在用戶自我表述方面的諸多限制,並重點突出音樂(尤其是重金屬樂),希望以此吸引用戶。Chau使用Perl開發了最初的MySpace版本,運行於Apache Web服務器,後臺使用MySQL數據庫。但它沒有通過終審,因爲Intermix的多數開發人員對ColdFusion(一個Web應用程序環境,最初由Allaire開發,現爲Adobe所有)更爲熟悉。因此,最後發佈的產品採用ColdFusion開發,運行在Windows上,並使用MS SQL Server作爲數據庫服務器。
Chau就在那時離開了公司,將開發工作交給其他人,包括Aber Whitcomb(Intermix的技術專家,現在是MySpace技術總監)和Benedetto(MySpace現技術副總裁,大概於MySpace上線一個月後加入)。

MySpace上線的2003年,恰恰是Friendster在滿足日益增長的用戶需求問題上遭遇麻煩的時期。在財富雜誌最近的一次採訪中,Friendster總裁Kent Lindstrom承認他們的服務出現問題選錯了時候。那時,Friendster傳輸一個頁面需要20到30秒,而MySpace只需2到3秒。

結果,Friendster用戶開始轉投MySpace,他們認爲後者更爲可靠。
今天,MySpace無疑已是社區網站之王。社區網站是指那些幫助用戶彼此保持聯繫、通過介紹或搜索、基於共同愛好或教育經歷交友的Web站點。在這個領域比較有名的還有最初面向大學生的Facebook、側重職業交流的LinkedIn,當然還少不了Friendster。MySpace宣稱自己是“下一代門戶”,強調內容的豐富多彩(如音樂、趣事和視頻等)。其運作方式頗似一個虛擬的夜總會——爲未成年人在邊上安排一個果汁吧,而顯著位置則是以性爲目的的約會,和尋找刺激派對氣氛的年輕人的搜索服務。

用戶註冊時,需要提供個人基本信息,主要包括籍貫、性取向和婚姻狀況。雖然MySpace屢遭批評,指其爲網上性犯罪提供了溫牀,但對於未成年人,有些功能還是不予提供的。
MySpace的個人資料頁上表述自己的方式很多,如文本式“關於本人”欄、選擇加載入MySpace音樂播放器的歌曲,以及視頻、交友要求等。它還允許用戶使用CSS(一種Web標準格式語言,用戶以此可設置頁面元素的字體、顏色和頁面背景圖像)自由設計個人頁面,這也提升了人氣。不過結果是五花八門——很多用戶的頁面佈局粗野、顏色迷亂,進去後找不到東南西北,不忍卒讀;而有些人則使用了專業設計的模版(可閱讀《Too Much of a Good Thing?》第49頁),頁面效果很好。
在網站上線8個月後,開始有大量用戶邀請朋友註冊MySpace,因此用戶量大增。“這就是網絡的力量,這種趨勢一直沒有停止。”Chau說。

擁有Fox電視網絡和20th Century Fox影業公司的媒體帝國——新聞集團,看到了他們在互聯網用戶中的機會,於是在2005年斥資5.8億美元收購了MySpace。新聞集團董事局主席Rupert Murdoch最近向一個投資團透露,他認爲MySpace目前是世界主要Web門戶之一,如果現在出售MySpace,那麼可獲60億美元——這比2005年收購價格的10倍還多!新聞集團還驚人地宣稱,MySpace在2006年7月結束的財政年度裏總收入約2億美元,而且預期在2007年度,Fox Interactive公司總收入將達到5億美元,其中4億來自MySpace。
然而MySpace還在繼續成長。12月份,它的註冊賬戶達到1.4億,而2005年11月時不過4千萬。當然,這個數字並不等於真實的用戶個體數,因爲有些人可能有多個帳號,而且個人資料也表明有些是樂隊,或者是虛構的名字,如波拉特(譯者注:喜劇電影《Borat》主角),還有像Burger King(譯者注:美國最大的漢堡連鎖集團)這樣的品牌名。

當然,這麼多的用戶不停發佈消息、撰寫評論或者更新個人資料,甚至一些人整天都泡在Space上,必然給MySpace的技術工作帶來前所未有的挑戰。而傳統新聞站點的絕大多數內容都是由編輯團隊整理後主動提供給用戶消費,它們的內容數據庫通常可以優化爲只讀模式,因爲用戶評論等引起的增加和更新操作很少。而MySpace是由用戶提供內容,數據庫很大比例的操作都是插入和更新,而非讀取。
瀏覽MySpace上的任何個人資料時,系統都必須先查詢數據庫,然後動態創建頁面。當然,通過數據緩存,可以減輕數據庫的壓力,但這種方案必須解決原始數據被用戶頻繁更新帶來的同步問題。

MySpace的站點架構已經歷了5個版本——每次都是用戶數達到一個里程碑後,必須做大量的調整和優化。Benedetto說,“但我們始終跟不上形勢的發展速度。我們重構重構再重構,一步步挪到今天”。
儘管MySpace拒絕了正式採訪,但Benedetto在參加11月於拉斯維加斯召開的SQL Server Connections會議時還是回答了Baseline的問題。本文的不少技術信息還來源於另一次重要會議——Benedetto和他的老闆——技術總監Whitcomb今年3月出席的Microsoft MIX Web開發者大會。
據他們講,MySpace很多大的架構變動都發生在2004和2005年早期——用戶數在當時從幾十萬迅速攀升到了幾百萬。

在每個里程碑,站點負擔都會超過底層系統部分組件的最大載荷,特別是數據庫和存儲系統。接着,功能出現問題,用戶失聲尖叫。最後,技術團隊必須爲此修訂系統策略。
雖然自2005年早期,站點賬戶數超過7百萬後,系統架構到目前爲止保持了相對穩定,但MySpace仍然在爲SQL Server支持的同時連接數等方面繼續攻堅,Benedetto說,“我們已經儘可能把事情做到最好”。

里程碑一:50萬賬戶
按Benedetto 的說法,MySpace最初的系統很小,只有兩臺Web服務器和一個數據庫服務器。那時使用的是Dell雙CPU、4G內存的系統。
單個數據庫就意味着所有數據都存儲在一個地方,再由兩臺Web服務器分擔處理用戶請求的工作量。但就像MySpace後來的幾次底層系統修訂時的情況一樣,三服務器架構很快不堪重負。此後一個時期內,MySpace基本是通過添置更多Web服務器來對付用戶暴增問題的。
但到在2004年早期,MySpace用戶數增長到50萬後,數據庫服務器也已開始汗流浹背。
但和Web服務器不同,增加數據庫可沒那麼簡單。如果一個站點由多個數據庫支持,設計者必須考慮的是,如何在保證數據一致性的前提下,讓多個數據庫分擔壓力。
在第二代架構中,MySpace運行在3個SQL Server數據庫服務器上——一個爲主,所有的新數據都向它提交,然後由它複製到其他兩個;另兩個全力向用戶供給數據,用以在博客和個人資料欄顯示。這種方式在一段時間內效果很好——只要增加數據庫服務器,加大硬盤,就可以應對用戶數和訪問量的增加。

里程碑二:1-2百萬賬戶
MySpace註冊數到達1百萬至2百萬區間後,數據庫服務器開始受制於I/O容量——即它們存取數據的速度。而當時纔是2004年中,距離上次數據庫系統調整不過數月。用戶的提交請求被阻塞,就像千人樂迷要擠進只能容納幾百人的夜總會,站點開始遭遇“主要矛盾”,Benedetto說,這意味着MySpace永遠都會輕度落後於用戶需求。
“有人花5分鐘都無法完成留言,因此用戶總是抱怨說網站已經完蛋了。”他補充道。
這一次的數據庫架構按照垂直分割模式設計,不同的數據庫服務於站點的不同功能,如登錄、用戶資料和博客。於是,站點的擴展性問題看似又可以告一段落了,可以歇一陣子。
垂直分割策略利於多個數據庫分擔訪問壓力,當用戶要求增加新功能時,MySpace將投入新的數據庫予以支持它。賬戶到達2百萬後,MySpace還從存儲設備與數據庫服務器直接交互的方式切換到SAN(Storage Area Network,存儲區域網絡)——用高帶寬、專門設計的網絡將大量磁盤存儲設備連接在一起,而數據庫連接到SAN。這項措施極大提升了系統性能、正常運行時間和可靠性,Benedetto說。

里程碑三:3百萬賬戶
當用戶繼續增加到3百萬後,垂直分割策略也開始難以爲繼。儘管站點的各個應用被設計得高度獨立,但有些信息必須共享。在這個架構裏,每個數據庫必須有各自的用戶表副本——MySpace授權用戶的電子花名冊。這就意味着一個用戶註冊時,該條賬戶記錄必須在9個不同數據庫上分別創建。但在個別情況下,如果其中某臺數據庫服務器臨時不可到達,對應事務就會失敗,從而造成賬戶非完全創建,最終導致此用戶的該項服務無效。
另外一個問題是,個別應用如博客增長太快,那麼專門爲它服務的數據庫就有巨大壓力。
2004年中,MySpace面臨Web開發者稱之爲“向上擴展”對“向外擴展”(譯者注:Scale Up和Scale Out,也稱硬件擴展和軟件擴展)的抉擇——要麼擴展到更大更強、也更昂貴的服務器上,要麼部署大量相對便宜的服務器來分擔數據庫壓力。一般來說,大型站點傾向於向外擴展,因爲這將讓它們得以保留通過增加服務器以提升系統能力的後路。
但成功地向外擴展架構必須解決複雜的分佈式計算問題,大型站點如Google、Yahoo和Amazon.com,都必須自行研發大量相關技術。以Google爲例,它構建了自己的分佈式文件系統。
另外,向外擴展策略還需要大量重寫原來軟件,以保證系統能在分佈式服務器上運行。“搞不好,開發人員的所有工作都將白費”,Benedetto說。
因此,MySpace首先將重點放在了向上擴展上,花費了大約1個半月時間研究升級到32CPU服務器以管理更大數據庫的問題。Benedetto說,“那時候,這個方案看似可能解決一切問題。”如穩定性,更棒的是對現有軟件幾乎沒有改動要求。
糟糕的是,高端服務器極其昂貴,是購置同樣處理能力和內存速度的多臺服務器總和的很多倍。而且,站點架構師預測,從長期來看,即便是巨型數據庫,最後也會不堪重負,Benedetto說,“換句話講,只要增長趨勢存在,我們最後無論如何都要走上向外擴展的道路。”
因此,MySpace最終將目光移到分佈式計算架構——它在物理上分佈的衆多服務器,整體必須邏輯上等同於單臺機器。拿數據庫來說,就不能再像過去那樣將應用拆分,再以不同數據庫分別支持,而必須將整個站點看作一個應用。現在,數據庫模型裏只有一個用戶表,支持博客、個人資料和其他核心功能的數據都存儲在相同數據庫。
既然所有的核心數據邏輯上都組織到一個數據庫,那麼MySpace必須找到新的辦法以分擔負荷——顯然,運行在普通硬件上的單個數據庫服務器是無能爲力的。這次,不再按站點功能和應用分割數據庫,MySpace開始將它的用戶按每百萬一組分割,然後將各組的全部數據分別存入獨立的SQL Server實例。目前,MySpace的每臺數據庫服務器實際運行兩個SQL Server實例,也就是說每臺服務器服務大約2百萬用戶。Benedetto指出,以後還可以按照這種模式以更小粒度劃分架構,從而優化負荷分擔。
當然,還是有一個特殊數據庫保存了所有賬戶的名稱和密碼。用戶登錄後,保存了他們其他數據的數據庫再接管服務。特殊數據庫的用戶表雖然龐大,但它只負責用戶登錄,功能單一,所以負荷還是比較容易控制的。

里程碑四:9百萬到1千7百萬賬戶
2005年早期,賬戶達到9百萬後,MySpace開始用Microsoft的C#編寫ASP.NET程序。C#是C語言的最新派生語言,吸收了C++和Java的優點,依託於Microsoft .NET框架(Microsoft爲軟件組件化和分佈式計算而設計的模型架構)。ASP.NET則由編寫Web站點腳本的ASP技術演化而來,是Microsoft目前主推的Web站點編程環境。
可以說是立竿見影,MySpace馬上就發現ASP.NET程序運行更有效率,與ColdFusion相比,完成同樣任務需消耗的處理器能力更小。據技術總監Whitcomb說,新代碼需要150臺服務器完成的工作,如果用ColdFusion則需要246臺。Benedetto還指出,性能上升的另一個原因可能是在變換軟件平臺,並用新語言重寫代碼的過程中,程序員複審並優化了一些功能流程。

最終,MySpace開始大規模遷移到ASP.NET。即便剩餘的少部分ColdFusion代碼,也從Cold-Fusion服務器搬到了ASP.NET,因爲他們得到了BlueDragon.NET(喬治亞州阿爾法利塔New Atlanta Communications公司的產品,它能將ColdFusion代碼自動重新編譯到Microsoft平臺)的幫助。
賬戶達到1千萬時,MySpace再次遭遇存儲瓶頸問題。SAN的引入解決了早期一些性能問題,但站點目前的要求已經開始週期性超越SAN的I/O容量——即它從磁盤存儲系統讀寫數據的極限速度。
原因之一是每數據庫1百萬賬戶的分割策略,通常情況下的確可以將壓力均分到各臺服務器,但現實並非一成不變。比如第七臺賬戶數據庫上線後,僅僅7天就被塞滿了,主要原因是佛羅里達一個樂隊的歌迷瘋狂註冊。
某個數據庫可能因爲任何原因,在任何時候遭遇主要負荷,這時,SAN中綁定到該數據庫的磁盤存儲設備簇就可能過載。“SAN讓磁盤I/O能力大幅提升了,但將它們綁定到特定數據庫的做法是錯誤的。”Benedetto說。
最初,MySpace通過定期重新分配SAN中數據,以讓其更爲均衡的方法基本解決了這個問題,但這是一個人工過程,“大概需要兩個人全職工作。”Benedetto說。
長期解決方案是遷移到虛擬存儲體系上,這樣,整個SAN被當作一個巨型存儲池,不再要求每個磁盤爲特定應用服務。MySpace目前採用了一種新型SAN設備——來自加利福尼亞州弗裏蒙特的3PARdata。
在3PAR的系統裏,仍能在邏輯上按容量劃分數據存儲,但它不再被綁定到特定磁盤或磁盤簇,而是散佈於大量磁盤。這就使均分數據訪問負荷成爲可能。當數據庫需要寫入一組數據時,任何空閒磁盤都可以馬上完成這項工作,而不再像以前那樣阻塞在可能已經過載的磁盤陣列處。而且,因爲多個磁盤都有數據副本,讀取數據時,也不會使SAN的任何組件過載。
當2005年春天賬戶數達到1千7百萬時,MySpace又啓用了新的策略以減輕存儲系統壓力,即增加數據緩存層——位於Web服務器和數據庫服務器之間,其唯一職能是在內存中建立被頻繁請求數據對象的副本,如此一來,不訪問數據庫也可以向Web應用供給數據。換句話說,100個用戶請求同一份資料,以前需要查詢數據庫100次,而現在只需1次,其餘都可從緩存數據中獲得。當然如果頁面變化,緩存的數據必須從內存擦除,然後重新從數據庫獲取——但在此之前,數據庫的壓力已經大大減輕,整個站點的性能得到提升。
緩存區還爲那些不需要記入數據庫的數據提供了驛站,比如爲跟蹤用戶會話而創建的臨時文件——Benedetto坦言他需要在這方面補課,“我是數據庫存儲狂熱分子,因此我總是想着將萬事萬物都存到數據庫。”但將像會話跟蹤這類的數據也存到數據庫,站點將陷入泥沼。
增加緩存服務器是“一開始就應該做的事情,但我們成長太快,以致於沒有時間坐下來好好研究這件事情。”Benedetto補充道。

里程碑五:2千6百萬賬戶
2005年中期,服務賬戶數達到2千6百萬時,MySpace切換到了還處於beta測試的SQL Server 2005。轉換何太急?主流看法是2005版支持64位處理器。但Benedetto說,“這不是主要原因,儘管這也很重要;主要還是因爲我們對內存的渴求。”支持64位的數據庫可以管理更多內存。
更多內存就意味着更高的性能和更大的容量。原來運行32位版本的SQL Server服務器,能同時使用的內存最多隻有4G。切換到64位,就好像加粗了輸水管的直徑。升級到SQL Server 2005和64位Windows Server 2003後,MySpace每臺服務器配備了32G內存,後於2006年再次將配置標準提升到64G。

意外錯誤
如果沒有對系統架構的歷次修改與升級,MySpace根本不可能走到今天。但是,爲什麼系統還經常喫撐着了?很多用戶抱怨的“意外錯誤”是怎麼引起的呢?
原因之一是MySpace對Microsoft的Web技術的應用已經進入連Microsoft自己也纔剛剛開始探索的領域。比如11月,超出SQL Server最大同時連接數,MySpace系統崩潰。Benedetto說,這類可能引發系統崩潰的情況大概三天才會出現一次,但仍然過於頻繁了,以致惹人惱怒。一旦數據庫罷工,“無論這種情況什麼時候發生,未緩存的數據都不能從SQL Server獲得,那麼你就必然看到一個‘意外錯誤’提示。”他解釋說。
去年夏天,MySpace的Windows 2003多次自動停止服務。後來發現是操作系統一個內置功能惹的禍——預防分佈式拒絕服務攻擊(黑客使用很多客戶機向服務器發起大量連接請求,以致服務器癱瘓)。MySpace和其他很多頂級大站點一樣,肯定會經常遭受攻擊,但它應該從網絡級而不是依靠Windows本身的功能來解決問題——否則,大量MySpace合法用戶連接時也會引起服務器反擊。
“我們花了大約一個月時間尋找Windows 2003服務器自動停止的原因。”Benedetto說。最後,通過Microsoft的幫助,他們才知道該怎麼通知服務器:“別開槍,是友軍。”
緊接着是在去年7月某個週日晚上,MySpace總部所在地洛杉磯停電,造成整個系統停運12小時。大型Web站點通常要在地理上分佈配置多個數據中心以預防單點故障。本來,MySpace還有其他兩個數據中心以應對突發事件,但Web服務器都依賴於部署在洛杉磯的SAN。沒有洛杉磯的SAN,Web服務器除了懇求你耐心等待,不能提供任何服務。
Benedetto說,主數據中心的可靠性通過下列措施保證:可接入兩張不同電網,另有後備電源和一臺儲備有30天燃料的發電機。但在這次事故中,不僅兩張電網失效,而且在切換到備份電源的過程中,操作員燒掉了主動力線路。
2007年中,MySpace在另兩個後備站點上也建設了SAN。這對分擔負荷大有幫助——正常情況下,每個SAN都能負擔三分之一的數據訪問量。而在緊急情況下,任何一個站點都可以獨立支撐整個服務,Benedetto說。
MySpace仍然在爲提高穩定性奮鬥,雖然很多用戶表示了足夠信任且能原諒偶現的錯誤頁面。
“作爲開發人員,我憎惡Bug,它太氣人了。”Dan Tanner這個31歲的德克薩斯軟件工程師說,他通過MySpace重新聯繫到了高中和大學同學。“不過,MySpace對我們的用處很大,因此我們可以原諒偶發的故障和錯誤。” Tanner說,如果站點某天出現故障甚至崩潰,恢復以後他還是會繼續使用。
這就是爲什麼Drew在論壇裏咆哮時,大部分用戶都告訴他應該保持平靜,如果等幾分鐘,問題就會解決的原因。Drew無法平靜,他寫道,“我已經兩次給MySpace發郵件,而它說一小時前還是正常的,現在出了點問題……完全是一堆廢話。”另一個用戶回覆說,“畢竟它是免費的。”Benedetto坦承100%的可靠性不是他的目標。“它不是銀行,而是一個免費的服務。”他說。
換句話說,MySpace的偶發故障可能造成某人最後更新的個人資料丟失,但並不意味着網站弄丟了用戶的錢財。“關鍵是要認識到,與保證站點性能相比,丟失少許數據的故障是可接受的。”Benedetto說。所以,MySpace甘冒丟失2分鐘到2小時內任意點數據的危險,在SQL Server配置裏延長了“checkpoint”操作——它將待更新數據永久記錄到磁盤——的間隔時間,因爲這樣做可以加快數據庫的運行。
Benedetto說,同樣,開發人員還經常在幾個小時內就完成構思、編碼、測試和發佈全過程。這有引入Bug的風險,但這樣做可以更快實現新功能。而且,因爲進行大規模真實測試不具可行性,他們的測試通常是在僅以部分活躍用戶爲對象,且用戶對軟件新功能和改進不知就裏的情況下進行的。因爲事實上不可能做真實的加載測試,他們做的測試通常都是針對站點。
“我們犯過大量錯誤,”Benedetto說,“但到頭來,我認爲我們做對的還是比做錯的多。”
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章