Zynga:從Amazon公共云到zCloud私有云
譯文【51CTO快譯】Facebook平臺上最大的社交游戲公司之一的Zynga已經將大部分自家用戶從Amazon網絡服務(AWS)遷移到自主打造的私有云平臺中,說是為了最大限度提高其社交游戲網絡的可靠性與性能表現。
Zynga公司基礎設施CTO Allan Leinwand在一次采訪中表示,截至2011年年末,Zynga公司已經將接近80%的日常活躍用戶交付自有基礎設施進行托管;而就在2011年年初,同樣比例的用戶群體還處于Amazon公共云的支持之下。
他將Amazon服務視為“一輛四門轎車”,而Zynga公司在對自身網絡進行精心調整之后所推出的zCloud則完全可以被比作超級跑車。
“我們當然也很喜愛四門轎車,但必須承認這是一種用于應對多種使用需求的車型——購物、帶孩子都是這類車需要照顧到的情況。相比之下,我更愿意把zCloud當作能在社交游戲賽道上全速馳騁的超跑,這套平臺完全是為速度而生。”
Leinwand此前曾于周三在加州圣何塞舉辦的CloudConnect大會上與IDG新聞服務媒體談及這一話題,當時他描述了“開心農場”與“多人填字游戲”項目的開發者如何在過去一年中重新審視當前計算基礎設施。他還在自己的 博客 中發文詳細進行了一番論述。
Amazon公共云+zCloud私有云的混合云時代
根據他的爆料,Zynga公司現在擁有1000臺全天候運轉的服務器,業務內容涵蓋了從數據傳輸到具體執行的諸多方面;而且在將業務從Amazon遷移到自家私有云平臺之后,該公司所使用的物理服務器已經減少了三分之一。
Zynga公司將繼續以混合云的方式使用Amazon服務,而Leinwand也坦言在未來相當長的一段時間內,Zynga尚無意降低對Amazon的依賴程度。不過目前該公司正嘗試將Amazon服務當成處理突發情況的后備方案,而非支持日常業務的主要處理平臺。
“我們非常贊賞Amazon服務所帶來的業務靈活性;能有這樣的方案可用令人十分安心,”他表示。
Zynga的這一舉動可能標志著該公司有志于進一步提升性能,在未來采用這套新的云平臺,并有針對性地進行云服務開發。
“當前我們所使用的云平臺存在弊端,它不具備對基礎設施即服務體系進行定制及調整的能力,所以我們很難針對自身業務對其做出適當改動,”Leinwand指出。
“對于廣大真正希望采用云計算并將數據中心業務外包出去的IT人士而言,必須提前為之準備充分的控制措施。這絕不是危言聳聽,而是我們在業務實踐中的經驗之談。”
Zynga公司已經開始嘗試把游戲交付自有服務器進行托管,不過一旦這套搭配設施無法滿足需求,處理工作將馬上被轉移到Amazon云平臺中。公司業務發展的拐點出現在2009年“開心農場”項目啟動之時,用戶數量在六周之內就從零激增至千萬級別。
從那時起直到去年年初,Zynga公司一直在將新游戲部署至云端;只有在性能需求量盡在掌握之后,他們才嘗試利用自有服務器加以運行。
但這種安逸的現狀并未阻礙他們繼續打造自己的zCloud平臺,創建過程使用到了來自Cloud.com的軟件以及來自RightScale的各類管理工具。
zCloud的成長
在過去的一年中,Zynga公司的自有數據中心在處理能力方面有了顯著提升。Leinwand并未給出詳細數據,但他坦言為了打造冗余系統,公司已經分別在東、西海岸的多個地點部署了設施。
到2011年下半年,zCloud設施的電力供給徹底落實到位,根據Leinwand的說法,目前他們的供電系統能夠支持“166個國際空間站”。
為了提高系統可靠性,Zynga公司將自己的網絡與Amazon及Facebook設置為光纖直連。Amazon去年遭受的大規模停機故障給Zynga敲響了警鐘。
“盡管游戲服務沒有因為停機的發生而受到嚴重影響,但這樣的事件讓一直比較依賴云平臺的我們開始嘗試改變建立基礎設施的方式,”Leinwand指出。
如今Zynga公司著手打造自己的專用工具,幫助相關部門了解CPU、內存以及I/O使用率與游戲程序的配合狀態,又是哪些因素給Web服務器、內存緩存以及存儲系統帶來最大的工作壓力。
經過不懈努力,Zynga公司在優化工作取得了驕人的成果——原本要靠租用三臺Amazon物理服務器達成的任務,在zCloud中只需一臺設備即可完成。
“這并不是說Amazon網絡服務的品質有問題或者他們使用的服務器性能低下,真正的原因在于我們對zCloud平臺進行了合理化、性能優化方面的諸多調整,使其能夠完全適應社交游戲的實際需求。”
系統架構
Zynga公司使用的是一套三層系統。舉例來說,當某位用戶進行“多人填字游戲”時,他實際上是通過Web服務器進入游戲、游戲版面上的變動保留在內存緩存中,而游戲狀態則由多塊硬盤組成的冗余存儲機制進行保存。
由于應用程序大多是以PHP編寫,因此Zynga公司目前使用的是一套名為Membase的開源平臺。該平臺前端使用memcache,后端則采用No-SQL數據庫。
過去他們曾使用MySQL負責存儲工作,但并沒有用到那些復雜的查詢功能;而Membase在內存與存儲體系中的全面應用使系統層數有所減少,這讓系統管理員的工作變得更為輕松。
Leinwand的團隊編寫了一系列自動化工具,使得Zynga公司能夠在短時間內安裝上千臺服務器。他們并沒有像微軟及其它一些大型在線廠商那樣使用容器機制,而是依靠由積分器供應商提供的機柜式服務器構成設施儲備,并在需要時迅速補充到基礎設施中來。
Zynga公司還與合作伙伴一道設計出一款專為特定應用程序打造的服務器——Leinwand并沒有透露具體細節——不過總體來說它可能使用的是標準x86硬件。
“我們的合作伙伴是一家臺灣公司,理念上的契合使雙方的配合相當令人滿意,”他如是說。
原文:Zynga makes dramatic shift from public cloud
更新:根據另一篇報道,目前Zynga大約是80%在其zCloud上,20%在Amazon平臺上。