免费高清特黄a大片,九一h片在线免费看,a免费国产一级特黄aa大,国产精品国产主播在线观看,成人精品一区久久久久,一级特黄aa大片,俄罗斯无遮挡一级毛片

分享

億萬(wàn)用戶網(wǎng)站MySpace的成功秘密

 liu_jinbo 2007-03-27
億萬(wàn)用戶網(wǎng)站MySpace的成功秘密

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

高速增長(zhǎng)的訪問(wèn)量給社區(qū)網(wǎng)絡(luò)的技術(shù)體系帶來(lái)了巨大挑戰(zhàn)。MySpace的開(kāi)發(fā)者多年來(lái)不斷重構(gòu)站點(diǎn)軟件、數(shù)據(jù)庫(kù)和存儲(chǔ)系統(tǒng),以期與自身的成長(zhǎng)同步——目前,該站點(diǎn)月訪問(wèn)量已達(dá)400億。絕大多數(shù)網(wǎng)站需要應(yīng)對(duì)的流量都不及MySpace的一小部分,但那些指望邁入龐大在線市場(chǎng)的人,可以從MySpace的成長(zhǎng)過(guò)程學(xué)到知識(shí)。

用戶的煩惱
Drew,是個(gè)來(lái)自達(dá)拉斯的17歲小伙子,在他的MySpace個(gè)人資料頁(yè)上,可以看到他的袒胸照,看樣子是自己夠著手拍的。他的好友欄全是漂亮姑娘和靚車(chē)的鏈接,另外還說(shuō)自己參加了學(xué)校田徑隊(duì),愛(ài)好吉他,開(kāi)一輛藍(lán)色福特野馬。
不過(guò)在用戶反映問(wèn)題的論壇里,似乎他的火氣很大。“趕緊弄好這該死的收件箱!”他大寫(xiě)了所有單詞。使用MySpace的用戶個(gè)人消息系統(tǒng)可以收發(fā)信息,但當(dāng)他要查看一條消息時(shí),頁(yè)面卻出現(xiàn)提示:“非常抱歉……消息錯(cuò)誤”。

Drew的抱怨說(shuō)明1.4億用戶非常重視在線交流系統(tǒng),這對(duì)MySpace來(lái)說(shuō)是個(gè)好消息。但也恰是這點(diǎn)讓MySpace成了全世界最繁忙的站點(diǎn)之一。
11月,MySpace的美國(guó)國(guó)內(nèi)互聯(lián)網(wǎng)用戶訪問(wèn)流量首次超過(guò)Yahoo。comScore Media Metrix公司提供的資料顯示,MySpace當(dāng)月訪問(wèn)量為387億,而Yahoo是380.5億。
顯然,MySpace的成長(zhǎng)太快了——從2003年11月正式上線到現(xiàn)在不過(guò)三年。這使它很早就要面對(duì)只有極少數(shù)公司才會(huì)遇到的高可擴(kuò)展性問(wèn)題的嚴(yán)峻挑戰(zhàn)。
事實(shí)上,MySpace的Web服務(wù)器和數(shù)據(jù)庫(kù)經(jīng)常性超負(fù)荷,其用戶頻繁遭遇“意外錯(cuò)誤”和“站點(diǎn)離線維護(hù)”等告示。包括Drew在內(nèi)的MySpace用戶經(jīng)常無(wú)法收發(fā)消息、更新個(gè)人資料或處理其他日常事務(wù),他們不得不在論壇抱怨不停。

尤其是最近,MySpace可能經(jīng)常性超負(fù)荷。因?yàn)镵eynote Systems公司性能監(jiān)測(cè)服務(wù)機(jī)構(gòu)負(fù)責(zé)人Shawn White說(shuō),“難以想象,在有些時(shí)候,我們發(fā)現(xiàn)20%的錯(cuò)誤日志都來(lái)自MySpace,有時(shí)候甚至達(dá)到30%以至40%……而Yahoo、Salesforce.com和其他提供商用服務(wù)的站點(diǎn),從來(lái)不會(huì)出現(xiàn)這樣的數(shù)字。”他告訴我們,其他大型站點(diǎn)的日錯(cuò)誤率一般就1%多點(diǎn)。

順便提及,MySpace在2006年7月24號(hào)晚上開(kāi)始了長(zhǎng)達(dá)12小時(shí)的癱瘓,期間只有一個(gè)可訪問(wèn)頁(yè)面——該頁(yè)面解釋說(shuō)位于洛杉磯的主數(shù)據(jù)中心發(fā)生故障。為了讓大家耐心等待服務(wù)恢復(fù),該頁(yè)面提供了用Flash開(kāi)發(fā)的派克人(Pac-Man)游戲。Web站點(diǎn)跟蹤服務(wù)研究公司總經(jīng)理Bill Tancer說(shuō),尤其有趣的是,MySpace癱瘓期間,訪問(wèn)量不降反升,“這說(shuō)明了人們對(duì)MySpace的癡迷——所有人都擁在它的門(mén)口等著放行”。
現(xiàn)Nielsen Norman Group 咨詢(xún)公司負(fù)責(zé)人、原Sun Microsystems公司工程師,因在Web站點(diǎn)方面的評(píng)論而聞名的Jakob Nielsen說(shuō),MySpace的系統(tǒng)構(gòu)建方法顯然與Yahoo、eBay以及Google都不相同。和很多觀察家一樣,他相信MySpace對(duì)其成長(zhǎng)速度始料未及。“雖然我不認(rèn)為他們必須在計(jì)算機(jī)科學(xué)領(lǐng)域全面創(chuàng)新,但他們面對(duì)的的確是一個(gè)巨大的科學(xué)難題。”他說(shuō)。

MySpace開(kāi)發(fā)人員已經(jīng)多次重構(gòu)站點(diǎn)軟件、數(shù)據(jù)庫(kù)和存儲(chǔ)系統(tǒng),以滿足爆炸性的成長(zhǎng)需要,但此工作永不會(huì)停息。“就像粉刷金門(mén)大橋,工作完成之時(shí),就是重新來(lái)過(guò)之日。”(譯者注:意指工人從橋頭開(kāi)始粉刷,當(dāng)?shù)竭_(dá)橋尾時(shí),橋頭涂料已經(jīng)剝落,必須重新開(kāi)始)MySpace技術(shù)副總裁Jim Benedetto說(shuō)。
既然如此,MySpace的技術(shù)還有何可學(xué)之處?因?yàn)镸ySpace事實(shí)上已經(jīng)解決了很多系統(tǒng)擴(kuò)展性問(wèn)題,才能走到今天。

Benedetto說(shuō)他的項(xiàng)目組有很多教訓(xùn)必須總結(jié),他們?nèi)栽趯W(xué)習(xí),路漫漫而修遠(yuǎn)。他們當(dāng)前需要改進(jìn)的工作包括實(shí)現(xiàn)更靈活的數(shù)據(jù)緩存系統(tǒng),以及為避免再次出現(xiàn)類(lèi)似7月癱瘓事件的地理上分布式架構(gòu)。

背景知識(shí)
MySpace目前的努力方向是解決擴(kuò)展性問(wèn)題,但其領(lǐng)導(dǎo)人最初關(guān)注的是系統(tǒng)性能。
3年多前,一家叫做Intermix Media(早先叫eUniverse。這家公司從事各類(lèi)電子郵件營(yíng)銷(xiāo)和網(wǎng)上商務(wù))的公司推出了MySpace。而其創(chuàng)建人是Chris DeWolfe和Tom Anderson,他們?cè)瓉?lái)也有一家叫做ResponseBase的電子郵件營(yíng)銷(xiāo)公司,后于2002年出售給Intermix。據(jù)Brad Greenspan(Intermix前CEO)運(yùn)作的一個(gè)網(wǎng)站披露,ResponseBase團(tuán)隊(duì)為此獲得2百萬(wàn)美金外加分紅。Intermix是一家頗具侵略性的互聯(lián)網(wǎng)商務(wù)公司——部分做法可能有點(diǎn)過(guò)頭。2005年,紐約總檢察長(zhǎng)Eliot Spitzer——現(xiàn)在是紐約州長(zhǎng)——起訴Intermix使用惡意廣告軟件推廣業(yè)務(wù),Intermix最后以790萬(wàn)美元的代價(jià)達(dá)成和解。

2003年,美國(guó)國(guó)會(huì)通過(guò)《反垃圾郵件法》(CAN-SPAM Act),意在控制濫發(fā)郵件的營(yíng)銷(xiāo)行為。Intermix領(lǐng)導(dǎo)人DeWolfe和Anderson意識(shí)到新法案將嚴(yán)重打擊公司的電子郵件營(yíng)銷(xiāo)業(yè)務(wù),“因此必須尋找新的方向。”受聘于Intermix負(fù)責(zé)重寫(xiě)公司郵件營(yíng)銷(xiāo)軟件的Duc Chau說(shuō)。
當(dāng)時(shí)有個(gè)叫Friendster的交友網(wǎng)站,Anderson和DeWolfe很早就是它的會(huì)員。于是他們決定創(chuàng)建自己的網(wǎng)上社區(qū)。他們?nèi)コ薋riendster在用戶自我表述方面的諸多限制,并重點(diǎn)突出音樂(lè)(尤其是重金屬樂(lè)),希望以此吸引用戶。Chau使用Perl開(kāi)發(fā)了最初的MySpace版本,運(yùn)行于Apache Web服務(wù)器,后臺(tái)使用MySQL數(shù)據(jù)庫(kù)。但它沒(méi)有通過(guò)終審,因?yàn)镮ntermix的多數(shù)開(kāi)發(fā)人員對(duì)ColdFusion(一個(gè)Web應(yīng)用程序環(huán)境,最初由Allaire開(kāi)發(fā),現(xiàn)為Adobe所有)更為熟悉。因此,最后發(fā)布的產(chǎn)品采用ColdFusion開(kāi)發(fā),運(yùn)行在Windows上,并使用MS SQL Server作為數(shù)據(jù)庫(kù)服務(wù)器。
Chau就在那時(shí)離開(kāi)了公司,將開(kāi)發(fā)工作交給其他人,包括Aber Whitcomb(Intermix的技術(shù)專(zhuān)家,現(xiàn)在是MySpace技術(shù)總監(jiān))和Benedetto(MySpace現(xiàn)技術(shù)副總裁,大概于MySpace上線一個(gè)月后加入)。

MySpace上線的2003年,恰恰是Friendster在滿足日益增長(zhǎng)的用戶需求問(wèn)題上遭遇麻煩的時(shí)期。在財(cái)富雜志最近的一次采訪中,F(xiàn)riendster總裁Kent Lindstrom承認(rèn)他們的服務(wù)出現(xiàn)問(wèn)題選錯(cuò)了時(shí)候。那時(shí),F(xiàn)riendster傳輸一個(gè)頁(yè)面需要20到30秒,而MySpace只需2到3秒。

結(jié)果,F(xiàn)riendster用戶開(kāi)始轉(zhuǎn)投MySpace,他們認(rèn)為后者更為可靠。
今天,MySpace無(wú)疑已是社區(qū)網(wǎng)站之王。社區(qū)網(wǎng)站是指那些幫助用戶彼此保持聯(lián)系、通過(guò)介紹或搜索、基于共同愛(ài)好或教育經(jīng)歷交友的Web站點(diǎn)。在這個(gè)領(lǐng)域比較有名的還有最初面向大學(xué)生的Facebook、側(cè)重職業(yè)交流的LinkedIn,當(dāng)然還少不了Friendster。MySpace宣稱(chēng)自己是“下一代門(mén)戶”,強(qiáng)調(diào)內(nèi)容的豐富多彩(如音樂(lè)、趣事和視頻等)。其運(yùn)作方式頗似一個(gè)虛擬的夜總會(huì)——為未成年人在邊上安排一個(gè)果汁吧,而顯著位置則是以性為目的的約會(huì),和尋找刺激派對(duì)氣氛的年輕人的搜索服務(wù)。

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

擁有Fox電視網(wǎng)絡(luò)和20th Century Fox影業(yè)公司的媒體帝國(guó)——新聞集團(tuán),看到了他們?cè)诨ヂ?lián)網(wǎng)用戶中的機(jī)會(huì),于是在2005年斥資5.8億美元收購(gòu)了MySpace。新聞集團(tuán)董事局主席Rupert Murdoch最近向一個(gè)投資團(tuán)透露,他認(rèn)為MySpace目前是世界主要Web門(mén)戶之一,如果現(xiàn)在出售MySpace,那么可獲60億美元——這比2005年收購(gòu)價(jià)格的10倍還多!新聞集團(tuán)還驚人地宣稱(chēng),MySpace在2006年7月結(jié)束的財(cái)政年度里總收入約2億美元,而且預(yù)期在2007年度,F(xiàn)ox Interactive公司總收入將達(dá)到5億美元,其中4億來(lái)自MySpace。
然而MySpace還在繼續(xù)成長(zhǎng)。12月份,它的注冊(cè)賬戶達(dá)到1.4億,而2005年11月時(shí)不過(guò)4千萬(wàn)。當(dāng)然,這個(gè)數(shù)字并不等于真實(shí)的用戶個(gè)體數(shù),因?yàn)橛行┤丝赡苡卸鄠€(gè)賬號(hào),而且個(gè)人資料也表明有些是樂(lè)隊(duì),或者是虛構(gòu)的名字,如波拉特(譯者注:喜劇電影《Borat》主角),還有像Burger King(譯者注:美國(guó)最大的漢堡連鎖集團(tuán))這樣的品牌名。

當(dāng)然,這么多的用戶不停發(fā)布消息、撰寫(xiě)評(píng)論或者更新個(gè)人資料,甚至一些人整天都泡在Space上,必然給MySpace的技術(shù)工作帶來(lái)前所未有的挑戰(zhàn)。而傳統(tǒng)新聞?wù)军c(diǎn)的絕大多數(shù)內(nèi)容都是由編輯團(tuán)隊(duì)整理后主動(dòng)提供給用戶消費(fèi),它們的內(nèi)容數(shù)據(jù)庫(kù)通??梢?xún)?yōu)化為只讀模式,因?yàn)橛脩粼u(píng)論等引起的增加和更新操作很少。而MySpace是由用戶提供內(nèi)容,數(shù)據(jù)庫(kù)很大比例的操作都是插入和更新,而非讀取。
瀏覽MySpace上的任何個(gè)人資料時(shí),系統(tǒng)都必須先查詢(xún)數(shù)據(jù)庫(kù),然后動(dòng)態(tài)創(chuàng)建頁(yè)面。當(dāng)然,通過(guò)數(shù)據(jù)緩存,可以減輕數(shù)據(jù)庫(kù)的壓力,但這種方案必須解決原始數(shù)據(jù)被用戶頻繁更新帶來(lái)的同步問(wèn)題。

MySpace的站點(diǎn)架構(gòu)已經(jīng)歷了5個(gè)版本——每次都是用戶數(shù)達(dá)到一個(gè)里程碑后,必須做大量的調(diào)整和優(yōu)化。Benedetto說(shuō),“但我們始終跟不上形勢(shì)的發(fā)展速度。我們重構(gòu)重構(gòu)再重構(gòu),一步步挪到今天”。
盡管MySpace拒絕了正式采訪,但Benedetto在參加11月于拉斯維加斯召開(kāi)的SQL Server Connections會(huì)議時(shí)還是回答了Baseline的問(wèn)題。本文的不少技術(shù)信息還來(lái)源于另一次重要會(huì)議——Benedetto和他的老板——技術(shù)總監(jiān)Whitcomb今年3月出席的Microsoft MIX Web開(kāi)發(fā)者大會(huì)。
據(jù)他們講,MySpace很多大的架構(gòu)變動(dòng)都發(fā)生在2004和2005年早期——用戶數(shù)在當(dāng)時(shí)從幾十萬(wàn)迅速攀升到了幾百萬(wàn)。

在每個(gè)里程碑,站點(diǎn)負(fù)擔(dān)都會(huì)超過(guò)底層系統(tǒng)部分組件的最大載荷,特別是數(shù)據(jù)庫(kù)和存儲(chǔ)系統(tǒng)。接著,功能出現(xiàn)問(wèn)題,用戶失聲尖叫。最后,技術(shù)團(tuán)隊(duì)必須為此修訂系統(tǒng)策略。
雖然自2005年早期,站點(diǎn)賬戶數(shù)超過(guò)7百萬(wàn)后,系統(tǒng)架構(gòu)到目前為止保持了相對(duì)穩(wěn)定,但MySpace仍然在為SQL Server支持的同時(shí)連接數(shù)等方面繼續(xù)攻堅(jiān),Benedetto說(shuō),“我們已經(jīng)盡可能把事情做到最好”。

里程碑一:50萬(wàn)賬戶
按Benedetto 的說(shuō)法,MySpace最初的系統(tǒng)很小,只有兩臺(tái)Web服務(wù)器和一個(gè)數(shù)據(jù)庫(kù)服務(wù)器。那時(shí)使用的是Dell雙CPU、4G內(nèi)存的系統(tǒng)。
單個(gè)數(shù)據(jù)庫(kù)就意味著所有數(shù)據(jù)都存儲(chǔ)在一個(gè)地方,再由兩臺(tái)Web服務(wù)器分擔(dān)處理用戶請(qǐng)求的工作量。但就像MySpace后來(lái)的幾次底層系統(tǒng)修訂時(shí)的情況一樣,三服務(wù)器架構(gòu)很快不堪重負(fù)。此后一個(gè)時(shí)期內(nèi),MySpace基本是通過(guò)添置更多Web服務(wù)器來(lái)對(duì)付用戶暴增問(wèn)題的。
但到在2004年早期,MySpace用戶數(shù)增長(zhǎng)到50萬(wàn)后,數(shù)據(jù)庫(kù)服務(wù)器也已開(kāi)始汗流浹背。
但和Web服務(wù)器不同,增加數(shù)據(jù)庫(kù)可沒(méi)那么簡(jiǎn)單。如果一個(gè)站點(diǎn)由多個(gè)數(shù)據(jù)庫(kù)支持,設(shè)計(jì)者必須考慮的是,如何在保證數(shù)據(jù)一致性的前提下,讓多個(gè)數(shù)據(jù)庫(kù)分擔(dān)壓力。
在第二代架構(gòu)中,MySpace運(yùn)行在3個(gè)SQL Server數(shù)據(jù)庫(kù)服務(wù)器上——一個(gè)為主,所有的新數(shù)據(jù)都向它提交,然后由它復(fù)制到其他兩個(gè);另兩個(gè)全力向用戶供給數(shù)據(jù),用以在博客和個(gè)人資料欄顯示。這種方式在一段時(shí)間內(nèi)效果很好——只要增加數(shù)據(jù)庫(kù)服務(wù)器,加大硬盤(pán),就可以應(yīng)對(duì)用戶數(shù)和訪問(wèn)量的增加。

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

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

里程碑四:9百萬(wàn)到1千7百萬(wàn)賬戶
2005年早期,賬戶達(dá)到9百萬(wàn)后,MySpace開(kāi)始用Microsoft的C#編寫(xiě)ASP.NET程序。C#是C語(yǔ)言的最新派生語(yǔ)言,吸收了C++和Java的優(yōu)點(diǎn),依托于Microsoft .NET框架(Microsoft為軟件組件化和分布式計(jì)算而設(shè)計(jì)的模型架構(gòu))。ASP.NET則由編寫(xiě)Web站點(diǎn)腳本的ASP技術(shù)演化而來(lái),是Microsoft目前主推的Web站點(diǎn)編程環(huán)境。
可以說(shuō)是立竿見(jiàn)影,MySpace馬上就發(fā)現(xiàn)ASP.NET程序運(yùn)行更有效率,與ColdFusion相比,完成同樣任務(wù)需消耗的處理器能力更小。據(jù)技術(shù)總監(jiān)Whitcomb說(shuō),新代碼需要150臺(tái)服務(wù)器完成的工作,如果用ColdFusion則需要246臺(tái)。Benedetto還指出,性能上升的另一個(gè)原因可能是在變換軟件平臺(tái),并用新語(yǔ)言重寫(xiě)代碼的過(guò)程中,程序員復(fù)審并優(yōu)化了一些功能流程。

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

里程碑五:2千6百萬(wàn)賬戶
2005年中期,服務(wù)賬戶數(shù)達(dá)到2千6百萬(wàn)時(shí),MySpace切換到了還處于beta測(cè)試的SQL Server 2005。轉(zhuǎn)換何太急?主流看法是2005版支持64位處理器。但Benedetto說(shuō),“這不是主要原因,盡管這也很重要;主要還是因?yàn)槲覀儗?duì)內(nèi)存的渴求。”支持64位的數(shù)據(jù)庫(kù)可以管理更多內(nèi)存。
更多內(nèi)存就意味著更高的性能和更大的容量。原來(lái)運(yùn)行32位版本的SQL Server服務(wù)器,能同時(shí)使用的內(nèi)存最多只有4G。切換到64位,就好像加粗了輸水管的直徑。升級(jí)到SQL Server 2005和64位Windows Server 2003后,MySpace每臺(tái)服務(wù)器配備了32G內(nèi)存,后于2006年再次將配置標(biāo)準(zhǔn)提升到64G。

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

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多