疏遠(yuǎn)Amazon Zynga為什么建立自己的云平臺(tái)?
導(dǎo)讀:作為最成功的網(wǎng)頁游戲服務(wù)商,Zynga購買了許多Amazon上的云服務(wù)。不過,截至到2011年底,80%的服務(wù)是通過Zynga自建的數(shù)據(jù)中心完成的,在Zynga看來,Amazon的服務(wù)過于死板,浪費(fèi)資源嚴(yán)重。雖然不像Google、Facebook那樣自己設(shè)計(jì)了服務(wù)器,但Zynga還是要求服務(wù)器供應(yīng)商做了大量優(yōu)化。不僅如此,和許多成功的互聯(lián)網(wǎng)公司一樣,Zynga重新修改了Linux內(nèi)核、開發(fā)了應(yīng)用監(jiān)測(cè)程序等等。在日前舉行的Interop大會(huì)上,Zynga的基礎(chǔ)架構(gòu)CTO Allan Leinwand對(duì)公司的云計(jì)算策略做了演講,Ars進(jìn)行了報(bào)道,編譯如下:
五年前,社交游戲公司Zynga一直沿用常規(guī)的IT基礎(chǔ)設(shè)施。服務(wù)器存放在租用的數(shù)據(jù)中心的機(jī)架上。用戶喜歡Poker這樣的游戲,該游戲在2007年發(fā)布。
直到FarmVille發(fā)布,那是在2009年,1000萬用戶在六周內(nèi)訪問了FarmVille的服務(wù)器,五個(gè)月內(nèi)用戶達(dá)到了2500萬。
“我們找不到更多的電力供應(yīng),找不到足夠的服務(wù)器,我們只能對(duì)現(xiàn)有的基礎(chǔ)設(shè)施進(jìn)行優(yōu)化來滿足FarmVille的需求,”Zynga的基礎(chǔ)架構(gòu)CTO Allan Leinwand表示。
Zynga顛覆了整個(gè)IT架構(gòu),我們將IT基礎(chǔ)設(shè)置遷移到了Amazon EC2上,我們購買了虛擬的服務(wù)器和存儲(chǔ),并根據(jù)需求自由的增減。“他們確實(shí)幫我們節(jié)省了資源,幫我們順利度過了2009和2010,他們的工作令人驚訝,”Leinwand說。最終,Zynga“憑借我們自己的理想,我們做到了。我們能夠靈活的控制它更好的為我們工作。”
Zynga建立的私有云在某些方面有更高的效率,因?yàn)樗耆赯ynga的掌控之下。Zynga將所有自己租賃的、托管的服務(wù)器遷移到自己的數(shù)據(jù)中心中去,Zynga在美國東西海岸都建立了數(shù)據(jù)中心。截至到2011年,20%的Zynga的游戲用戶登錄到Zynga自己的數(shù)據(jù)中心,剩下80%的用戶依然在Amazon云服務(wù)上。
截止到2011年底,這一數(shù)據(jù)顛倒了。現(xiàn)在,80%的使用在Zynga的數(shù)據(jù)中心中,剩下20%則通過Amazon。Zynga沒有計(jì)劃完全丟棄Amazon,因?yàn)樗€是非常好的“緩沖器”以應(yīng)付突發(fā)的用戶興趣增長,例如去年Alec Baldwin開始了拒絕停止Words With Friends的計(jì)劃。
建立一個(gè)更好的Amazon
但是最主要的是,Amazon不能支持所有Zynga想做的事,而Zynga可以,因?yàn)閆ynga不需要面對(duì)成千上網(wǎng)的企業(yè),它只需要為Zynga建立最好的架構(gòu)。Leinwand在日前在拉斯維加斯舉行的Interop大會(huì)上做了主題演講,并與Ars討論了更多細(xì)節(jié)。Zynga的內(nèi)部基礎(chǔ)設(shè)施稱之為“zCloud”,它采用了CloudStack進(jìn)行管理,RightScale為其進(jìn)行設(shè)計(jì),該公司專門管理在Amazon或私有數(shù)據(jù)中心的云計(jì)算調(diào)度。
這就讓Zynga內(nèi)部的基礎(chǔ)設(shè)施和Amazon的資源可以通過一個(gè)控制后臺(tái)管理。
“當(dāng)你打算在Zynga的基礎(chǔ)設(shè)施上開啟一個(gè)虛擬機(jī)時(shí),一個(gè)下拉窗口會(huì)跳出來說:‘是前往Amazon還是zCloud?’然后你可以做出選擇,”Leinwand表示。
Leinwand表示,Zynga不打算公布使用了哪種服務(wù)器,或者建立了多少數(shù)據(jù)中心,我們只能說在東西海岸的數(shù)據(jù)中心采用了混合的設(shè)施。但總的來說,Amazon并沒有提供實(shí)例,幫助Zynga定制它的硬件和軟件以服務(wù)FarmVille、Words With Friends以及其它游戲。
Zynga的基礎(chǔ)架構(gòu)非常龐大。Leinwand表示,Zynga的數(shù)據(jù)系統(tǒng)擁有24.5萬億行記錄,1.4PB數(shù)據(jù)。用戶在游戲中的成長將導(dǎo)致Zynga對(duì)內(nèi)存進(jìn)行大量的數(shù)據(jù)讀寫操作。負(fù)載均衡器將分布的將數(shù)據(jù)分發(fā)給Web服務(wù)器,同時(shí),數(shù)據(jù)將從服務(wù)器中移動(dòng)到內(nèi)存緩存和一個(gè)高可用、大容量的長期存儲(chǔ)系統(tǒng)中。除此之外,Zynga還服務(wù)了數(shù)以百萬級(jí)的臨時(shí)游戲玩家,Zynga也為第三方游戲開發(fā)者提供社交游戲平臺(tái)。
雖然Zynga并沒有像Facebook、Google那樣走制造自己的服務(wù)器的路,但他需要從硬件供應(yīng)商那里購買服務(wù)器,供應(yīng)商需要為Zynga的基礎(chǔ)設(shè)施提供定制產(chǎn)品并進(jìn)行配置,這與Facebook的Open Compute項(xiàng)目很相似。
Leinwand表示,Zynga的在Amazon的3個(gè)服務(wù)器上的工作量,僅僅相當(dāng)于1臺(tái)自有服務(wù)器提供的工作量。這并不是說Zynga使用的大型服務(wù)器,Zynga的服務(wù)器與Amazon上的服務(wù)器相當(dāng)。其秘密就是讓大量的資源集中在一起,從而更有效率。深入的分析服務(wù)器性能、網(wǎng)絡(luò)流量趨勢(shì)以及應(yīng)用程序資源管理是件費(fèi)時(shí)費(fèi)力的事情,但卻是非常重要的。
“我們自己研發(fā)各種應(yīng)用。我們寫了內(nèi)存工具、性能分析工具,我們進(jìn)入了Linux內(nèi)核,我們使用了CentOS,并進(jìn)入了CentOS內(nèi)核找到其中的瓶頸。”
Amazon為了保證其可擴(kuò)展性,提供的服務(wù)有拘束的。舉個(gè)例子,你可以租用Amazon的一個(gè)實(shí)例,包含了一定的存儲(chǔ)和計(jì)算資源,但是如果要增加若干G內(nèi)存或者CPU,就需要購買整個(gè)實(shí)例,你將購買一部分你根本沒有用的資源。
“你不能去公共云,并在這里購買額外的64GB內(nèi)存。他們會(huì)看著你說‘買另外一個(gè)實(shí)例吧,’”Leinwand說。
Leinwand說Amazon的實(shí)例模型將導(dǎo)致過度訂購,這意味著你最終購買了比實(shí)際需要更多的存儲(chǔ)。而在Zynga內(nèi)部采用了直接訪問服務(wù)器的模式,提供了巨大的I/O性能和更高效率,他說。
當(dāng)你像Zynag一樣快速發(fā)展,每一個(gè)性能能或者效率的提升都是十分重要的。Leinwand表示,公司擁有這些服務(wù)器已經(jīng)兩年了,目前達(dá)到了100臺(tái)。在可預(yù)見的未來,仍然有一部分服務(wù)器需要由Amazon云服務(wù)提供,即使Zynga自己的數(shù)據(jù)中心爆發(fā)式增長。除此之外,供應(yīng)商的能力總是有用的,Amazon對(duì)當(dāng)下的應(yīng)用還是有價(jià)值的,即使他們不能增加內(nèi)存、不能提供更少的CPU內(nèi)核和存儲(chǔ),Leinwand表示。
“人們問了我很多問題,‘你會(huì)放棄他們的公共云服務(wù)嗎?’”Leinwand表示“我認(rèn)為我們哪兒也不會(huì)去。他們能提供非常好的緩沖。”
更新:一個(gè)讀者問了一個(gè)非常好的問題——Zynga用什么管理程序?Leinwand表示,正如你所知道的那樣,Amazon云服務(wù)用一個(gè)優(yōu)化的Xen作為管理程序。Zynga內(nèi)部采用了類似的方式。“在zCloud,我們用Citrix CloudStack管理軟件,并運(yùn)行在XenServer上,”Leinwand表示。