一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

MySpace:.Net架構(gòu)網(wǎng)站的王者

MySpace的成功對于.NET社區(qū)的開發(fā)人員來說無疑是個福音。它讓很多.NET追隨者吃下了一顆定心丸,也不斷吸引了更多的追隨者,讓我們這些追隨者都堅信使用.NET能夠做出世界上最牛x的網(wǎng)站。如果沒有MySpace,當(dāng)我們面對 Java,  LAMP fans挑釁時候,我們該如何反擊呢?啞口無言還是掩面逃竄。現(xiàn)在rails就缺乏一個”MySpace”, twitter.com目前還不能讓我們完全誠服rails架構(gòu)。

MySpace從03年底上線,但注冊用戶數(shù)量早在06年就已經(jīng)達(dá)到了1億。它僅用了3年就達(dá)到了這個級別,這點(diǎn)連facebook也自嘆不如了。MySpace的主意最初來自Intermix的ChrisDeWolfe和TomAnderson,可能是受到Friendster最初的成功刺激,加上對Friendster某些功能的不滿意,他們開始花了三個月時間開發(fā)出一個和Friendster功能類似的網(wǎng)站。MySpace最初的戰(zhàn)略并沒有以獨(dú)立制作樂隊和圍繞音樂的社會網(wǎng)絡(luò)為目標(biāo)。有關(guān)音樂的主題是以用戶為中心的網(wǎng)站發(fā)展過程中自然發(fā)展出來的。有趣的是,在最初上線和開始推廣后的6到9個月,用戶增長并不成功。MySpace最初的推廣手段是在Intermix的員工(約250人)中進(jìn)行有獎競賽,讓員工們邀請他們的朋友注冊。這產(chǎn)生了一定效果,但用戶數(shù)很有限。接下來,他們利用電子郵件列表進(jìn)行郵件推廣。這有一些影響,但基本上是失敗的。這是因為電子郵件推廣不能象已經(jīng)存在的小組或組織那樣吸引能對網(wǎng)站產(chǎn)生忠實度的用戶。于是MySpace開始進(jìn)行線下推廣,對洛杉磯地區(qū)的Club、樂隊、和各種派對進(jìn)行贊助。這些努力逐漸給MySpace造成影響。更重要的是吸引了很多小的線下社區(qū)(即小組)來使用MySpace。100到1000人之間的小社區(qū)開始產(chǎn)生雪球式的病毒增長,并吸引更多的個人用戶加入。最初用戶建立起來后,MySpace開始進(jìn)一步利用Intermax的渠道和媒體關(guān)系扇風(fēng)助燃。合作伙伴的推廣結(jié)合上已有的較強(qiáng)用戶基礎(chǔ),使得MySpace從最初的成功走向騰飛。如果沒有利用傳統(tǒng)的推廣手段,MySpace恐怕不會有我們今天看到的高速增長。

為什么MySpace能如此成功,有人總結(jié)出下面幾點(diǎn)關(guān)鍵因素:

  • 給用戶更多自由設(shè)計他們的MySpace主頁,讓用戶能高度地表達(dá)自我和與朋友交流。
  • 縮短開發(fā)周期,使產(chǎn)品迅速適應(yīng)用戶要求。
  • 最初的用戶積累依靠三種手段的結(jié)合:病毒式增長、非網(wǎng)絡(luò)廣告、網(wǎng)絡(luò)傳播合作伙伴。
  • 有關(guān)產(chǎn)品和研發(fā)政策的決策,要考慮到網(wǎng)站的負(fù)載能力

OK! 上面把MySpace.com的由來大概說了一下,這對于很多處于創(chuàng)業(yè)中的朋友可能有所幫助。大體情況介紹完了,我們就來仔細(xì)分析MySpace技術(shù)細(xì)節(jié)。MySpace初期是使用Perl+Apache+MySQL架構(gòu)的,后來被Intermix內(nèi)部直接槍斃了,改用ColdFusion+Windows+Microsoft SQL Server, 因為當(dāng)時Intermix內(nèi)部的大多數(shù)開發(fā)人員更為熟悉ColdFusion。ColdFusion對我來說也是傳說中的東東,最開始聽說好像還是上大學(xué)研究adobe三劍客看到的。實際上MySpace是在2005年早期,賬戶達(dá)到9百萬后才開始使用.NETFramework來重新實現(xiàn),效果可以說是立竿見影,MySpace馬上就發(fā)現(xiàn)ASP.NET程序運(yùn)行更有效率,與ColdFusion相比,完成同樣任務(wù)需消耗的處理器能力更小。據(jù)技術(shù)總監(jiān)Whitcomb說,新代碼需要150臺服務(wù)器完成的工作,如果用ColdFusion則需要246臺。Benedetto還指出,性能上升的另一個原因可能是在變換軟件平臺,并用新語言重寫代碼的過程中,程序員復(fù)審并優(yōu)化了一些功能流程。 最終,MySpace開始大規(guī)模遷移到ASP.NET。即便剩余的少部分ColdFusion代碼,也從Cold-Fusion服務(wù)器搬到了ASP.NET,因為他們得到了BlueDragon.NET(它能將ColdFusion代碼自動重新編譯到Microsoft平臺)的幫助。

在2004年早期,MySpace用戶數(shù)增長到50萬后,當(dāng)時只有兩臺Web服務(wù)器和一個數(shù)據(jù)庫服務(wù)器,后面這臺數(shù)據(jù)庫服務(wù)器已經(jīng)已開始汗流浹背,然后重構(gòu)了數(shù)據(jù)庫的架構(gòu),采用類似MySQL的master-slave replication架構(gòu),讓兩臺slave數(shù)據(jù)庫服務(wù)器來負(fù)責(zé)read的負(fù)載,同時同步master機(jī)器最新的更新。但是數(shù)月過后,此時注冊數(shù)已經(jīng)達(dá)到1百萬至2百萬區(qū)間后,數(shù)據(jù)庫服務(wù)器開始受制于I/O容量——即它們存取數(shù)據(jù)的速度。那臺master機(jī)器已經(jīng)扛不住了。用戶的提交請求被阻塞,就像千人樂迷要擠進(jìn)只能容納幾百人的夜總會,站點(diǎn)開始遭遇“主要矛盾”。這一次的數(shù)據(jù)庫架構(gòu)按照垂直分割(Vertical Partitioning)模式設(shè)計,不同的數(shù)據(jù)庫服務(wù)于站點(diǎn)的不同功能,如登錄、用戶資料和博客。于是,站點(diǎn)的擴(kuò)展性問題看似又可以告一段落了,可以歇一陣子。垂直分割策略利于多個數(shù)據(jù)庫分擔(dān)訪問壓力,當(dāng)用戶要求增加新功能時,MySpace將投入新的數(shù)據(jù)庫予以支持它。賬戶到達(dá)2百萬后,MySpace還從存儲設(shè)備與數(shù)據(jù)庫服務(wù)器直接交互的方式切換到SAN(Storage Area NETwork,存儲區(qū)域網(wǎng)絡(luò))——用高帶寬、專門設(shè)計的網(wǎng)絡(luò)將大量磁盤存儲設(shè)備連接在一起,而數(shù)據(jù)庫連接到SAN。這項措施極大提升了系統(tǒng)性能、正常運(yùn)行時間和可靠性。當(dāng)用戶繼續(xù)增加到3百萬后,垂直分割策略也開始難以為繼。盡管站點(diǎn)的各個應(yīng)用被設(shè)計得高度獨(dú)立,但有些信息必須共享。在這個架構(gòu)里,每個數(shù)據(jù)庫必須有各自的用戶表副本——MySpace授權(quán)用戶的電子花名冊。這就意味著一個用戶注冊時,該條賬戶記錄必須在9個不同數(shù)據(jù)庫上分別創(chuàng)建。但在個別情況下,如果其中某臺數(shù)據(jù)庫服務(wù)器臨時不可到達(dá),對應(yīng)事務(wù)就會失敗,從而造成賬戶非完全創(chuàng)建,最終導(dǎo)致此用戶的該項服務(wù)無效。另外一個問題是,個別應(yīng)用如博客增長太快,那么專門為它服務(wù)的數(shù)據(jù)庫就有巨大壓力。在面對Scale up和Scale out選擇時候,MySpace當(dāng)時的決策竟然是選用Scale up,果然是有錢yin啊。應(yīng)該是想規(guī)避需要大量重寫原來軟件,以保證系統(tǒng)能在分布式服務(wù)器上運(yùn)行的風(fēng)險。不過它的scale up experience還是值得研究研究。對于某些場景來講scale up或許是個更加好的解決方案。我們這么多年來一直也享受著scale up帶來的好處,個人也感覺不久前還在用256現(xiàn)在是動不動2G,4G,xxG了,CPU也基本上是hyper-threaded, dual-core, xx-core呵呵。后來MySpace也認(rèn)識到了高端服務(wù)器極其昂貴,是購置同樣處理能力和內(nèi)存速度的多臺服務(wù)器總和的很多倍。而且,站點(diǎn)架構(gòu)師預(yù)測,從長期來看,即便是巨型數(shù)據(jù)庫,最后也會不堪重負(fù),Benedetto說,“換句話講,只要增長趨勢存在,我們最后無論如何都要走上向外擴(kuò)展的道路。” 因此,MySpace最終將目光移到分布式計算架構(gòu)——它在物理上分布的眾多服務(wù)器,整體必須邏輯上等同于單臺機(jī)器。這次,不再按站點(diǎn)功能和應(yīng)用分割數(shù)據(jù)庫,MySpace開始將它的用戶按每百萬一組分割,然后將各組的全部數(shù)據(jù)分別存入獨(dú)立的SQL Server實例。這里做的horizontal partitioning也就是我寫過的文章<<.NET架構(gòu)網(wǎng)站遇到大表該怎么辦?>>闡述的情況。好像我的規(guī)模比此時MySpace的規(guī)模還大點(diǎn)。嘿嘿,得意的笑。注意此時MySpace還不是使用.NET架構(gòu),估計是用ColdFusion扛不住了,看到.NET有那么多的優(yōu)點(diǎn),忍不住就切換到.NET Platform上了。哎,一個把持不住….?然而結(jié)果證實他們的嘗試是值得了,也成功化解了遷移帶來的巨大risk和滿足了新的快速增長負(fù)載。

通過上面一大段我們對MySpace的前期技術(shù)發(fā)展也有了一個大概的了解,同時也能學(xué)習(xí)到了一些針對高負(fù)載網(wǎng)站常見的幾個方面的解決方案。我們能夠明白Scale up和scale out的優(yōu)缺點(diǎn),Horizontal Partition和vertical Partition的作用,以及后臺數(shù)據(jù)和web server的load balance。作為一個技術(shù)人員,如果職業(yè)生涯能夠經(jīng)歷一個網(wǎng)站從幾個用戶到數(shù)千萬到數(shù)億用戶使用,也不枉費(fèi)人世走著一遭,有點(diǎn)夸張了J。

哎,上面水來水去都不是俺們哥們.NET框架的功勞,歡呼個啥呢?別介啥的一般都應(yīng)該在劇末才粉末登場對吧。.NET也是,MySpace team估計已經(jīng)感覺到他們熟悉的ColdFusion很難抗住如此快速增長的負(fù)載,而選擇.NET方案,而不是那個啥Java,呵呵。由此才可以突出俺們哥們.NET的牛x,管它多少用戶,來一百萬消滅一百萬,來一千萬消滅。。。不好意思,哥們吹的有點(diǎn)過了。。。那MySpace是怎么利用.NET來搞定它的數(shù)億用戶的負(fù)載的呢? MySpace是在2005年早期,用戶數(shù)達(dá)到9百萬后才開始使用.NET Framework來重新實現(xiàn),上文已經(jīng)講了切換到.NET后立桿見影的效果,但是當(dāng)用戶數(shù)達(dá)到1千萬時,MySpace再次遭遇存儲瓶頸問題。不過可不是.NET扛不住,而是后臺機(jī)器負(fù)載不夠均衡,導(dǎo)致某些機(jī)器過載了。具體原因之一是每數(shù)據(jù)庫1百萬賬戶的分割策略,通常情況下的確可以將壓力均分到各臺服務(wù)器,但現(xiàn)實并非一成不變。比如第七臺賬戶數(shù)據(jù)庫上線后,僅僅7天就被塞滿了,主要原因是佛羅里達(dá)一個樂隊的歌迷瘋狂注冊。最初,MySpace通過定期重新分配SAN中數(shù)據(jù),以讓其更為均衡的方法基本解決了這個問題,但這是一個人工過程,“大概需要兩個人全職工作。”Benedetto說。長期解決方案是遷移到虛擬存儲體系上,這樣,整個SAN被當(dāng)作一個巨型存儲池,不再要求每個磁盤為特定應(yīng)用服務(wù)。MySpace采用了一種新型SAN設(shè)備——來自加利福尼亞州弗里蒙特的3PARdata。當(dāng)2005年春天賬戶數(shù)達(dá)到1千7百萬時,MySpace又啟用了新的策略以減輕存儲系統(tǒng)壓力,即增加數(shù)據(jù)緩存層——位于Web服務(wù)器和數(shù)據(jù)庫服務(wù)器之間,其唯一職能是在內(nèi)存中建立被頻繁請求數(shù)據(jù)對象的副本,如此一來,不訪問數(shù)據(jù)庫也可以向Web應(yīng)用供給數(shù)據(jù)。Faint, MySpace到這個規(guī)模才想起來用Cache,真的有點(diǎn)sx了。增加緩存服務(wù)器是“一開始就應(yīng)該做的事情,但我們成長太快,以致于沒有時間坐下來好好研究這件事情。”Benedetto補(bǔ)充道。既然承認(rèn)錯誤了,就不打Benedetto的pp了。后來在2005年中期,服務(wù)賬戶數(shù)達(dá)到2千6百萬時,MySpace切換到了還處于beta測試的SQL Server 2005。轉(zhuǎn)換何太急?主流看法是2005版支持64位處理器。但Benedetto說,“這不是主要原因,盡管這也很重要;主要還是因為我們對內(nèi)存的渴求。”支持64位的數(shù)據(jù)庫可以管理更多內(nèi)存。 更多內(nèi)存就意味著更高的性能和更大的容量。原來運(yùn)行32位版本的SQL Server服務(wù)器,能同時使用的內(nèi)存最多只有4G。切換到64位,就好像加粗了輸水管的直徑。升級到SQL Server 2005和64位Windows Server 2003后,MySpace每臺服務(wù)器配備了32G內(nèi)存,后于2006年再次將配置標(biāo)準(zhǔn)提升到64G。看來MySpace還是比較喜歡用scale up的解決方案。也對,反正有$,多花點(diǎn)無所謂。后來在…...歷史車輪還會繼續(xù)向前推進(jìn),MySpace也會不斷遇到新的挑戰(zhàn),雖然這些挑戰(zhàn)我們可能一輩子都不可能遇到,但是作為一個.NET追隨者,應(yīng)該時刻追隨著這個王者的腳步,因為他是我們的領(lǐng)袖,他應(yīng)該是我們心中的信仰….

MySpace對于.NET技術(shù)的發(fā)展毋庸置疑是起了不少推動作用。因為他遇到了很多微軟自身都沒有遇到的問題,它給.NET提供了一個不斷增長的高負(fù)載的實驗平臺,來一個一個檢驗微軟的產(chǎn)品和技術(shù)。微軟在克服一個一個難題后,在下一代產(chǎn)品launch時候把這些問題fix后加入新產(chǎn)品,這樣我們這些終端客戶實際上也間接的享受到了MySpace給我們帶來的.NET技術(shù)promotion。MySpace應(yīng)該是微軟的金牌合作伙伴,在www.ASP.NET上Who is using ASP.NET?第一個就是MySpace。微軟估計開心極了,有MySpace這樣的巨無霸幫他向整個業(yè)界證明了.NET的牛x。很期望將來在中國能夠看到像MySpace這樣的網(wǎng)站,至少應(yīng)該有一些像douban使用Python這樣的互聯(lián)網(wǎng)產(chǎn)品。一枝獨(dú)秀有時不是比百花齊放更美,不是嗎?最后,如果您想成為或者已經(jīng)是.NET的fans,那么您一定要熟記下上面的關(guān)于MySpace的關(guān)鍵數(shù)字,至少能夠做到脫稿講5分鐘。下次,面對小弟請教或者xx fans挑釁時候,不用我說,你應(yīng)該知道該怎么做了。MySpace對我們來說應(yīng)該不僅僅是個互聯(lián)網(wǎng)巨無霸……

后記:多年不寫文章手腳已經(jīng)生疏了,某些段落可能不是那么的連貫,某些形容詞估計也欠推敲。請見諒,少拍點(diǎn)轉(zhuǎn)。虧得不要用筆寫,不然估計錯別字連篇,J。因為個人時間和經(jīng)歷有限,沒有辦法也沒有文學(xué)功底來完成一篇能過得去的文章,所以很多都是直接摘自互聯(lián)網(wǎng)上的文章,個人只是做了一點(diǎn)內(nèi)容的篩選和重新組織,再加上個人的一點(diǎn)感想。如果希望深入了解的朋友,建議還是應(yīng)該看一下參考文章。

 

作者:shawnliu
出處:http://www.cnblogs.com/liushouzhao/archive/2008/10/30/1322634.html

 

 

參考文章:

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

MySpace起步揭密(一)

MySpace起步揭密(二)

.NET架構(gòu)網(wǎng)站遇到大表該怎么辦?

 

下面是一張MySpace應(yīng)用所采用的產(chǎn)品的圖表:

APPLICATION

PRODUCT

SUPPLIER

Web application technology

Microsoft InterNET Information Services, .NET Framework

Microsoft

Server operating system

Windows 2003

Microsoft

Programming language and environment

Applications written in C# for ASP.NET

Microsoft

Programming language and environment

Site originally launched on Adobe's ColdFusion; remaining ColdFusion code 

runs under New Atlanta's BlueDragon.NET product.

Adobe, New Atlanta

Database

SQL Server 2005

Microsoft

Storage area NETwork

3PAR Utility Storage

3PARdata

InterNET application acceleration

NETScaler

Citrix Systems

Server hardware

Standardized on HP 585 (see below)

Hewlett-Packard

Ad server software

DART Enterprise

DoubleClick

Search and keyword advertising

Google search

Google

 

NET技術(shù)MySpace:.Net架構(gòu)網(wǎng)站的王者,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产自产一c区 | 国内国外精品影片无人区 | 欧美www| 国产亚洲婷婷香蕉久久精品 | 亚洲一区免费观看 | 国产成人在线观看网站 | 国产欧美精品专区一区二区 | 亚洲欧美卡通另类 | 999精品视频 | 欧美一区二区精品 | 国产成人网 | 老司机日日摸夜夜摸精品影院 | 天天五月天丁香婷婷深爱综合 | 亚洲综合色色图 | 欧美激情一区 | 亚洲国产精品久久久天堂 | 日韩a无吗一区二区三区 | 四虎伊人| 狠狠入 | 欧美成国产精品 | 91精品久久久久久久久中文字幕 | 国产欧美精品一区二区三区四区 | 国产欧美日韩综合精品一区二区三区 | 香蕉久久久久久狠狠色 | 久久这里精品青草免费 | 在线亚洲激情 | 免费啊v在线观看 | 一区二区三区国产美女在线播放 | 欧美福利视频网站 | 国产极品久久 | 精品国产精品 | 在线观看精品视频网站www | 色婷婷激婷婷深爱五月小说 | 大香伊人久久精品一区二区 | 综合网视频| 欧美激情性色生活片在线观看 | 亚洲精品视频在线免费 | 免费伊人 | 女人张腿给男人桶视频免费版 | 欧美成人福利视频 | 四虎成人4hutv影院 |