YY遊戲使用雲平臺的經驗及雲計算隨想

作者:YY遊戲雲平臺組

1.1 雲計算髮展趨勢

自從2006年亞馬遜AWS上線它的第一個EC2實例以來,雲計算已經在全球得到飛速發展,並且被企業用戶和個人開發者廣泛接受。RightScale公司發佈的2016年度雲計算報告[1]顯示,採訪了1060名IT專業人士,其中42%的受訪者所在公司的規模大於1000人,95%的受訪者已經在使用各類雲計算,如圖1-1所示。

YY遊戲使用雲平臺的經驗及雲計算隨想

圖1-1 調查顯示95%的受訪者在使用雲計算

RightScale公司的調查報告同時指出了2016年雲計算相對於2015年的增長趨勢,如圖1-2所示。

YY遊戲使用雲平臺的經驗及雲計算隨想

圖 1-2 2016年雲計算相對於2015年的增長趨勢

上述數據表明,2016年相對於2015年公有云的使用率僅上升了1%,而私有云的使用率攀升了14%,使用混合雲(這裡定義為同時使用公有云和私有云資源池)的比例則從58%躍升至71%。

RightScale公司的兩份數據,一份說明了雲計算的市場前景,一份說明了幾種不同類型雲平臺的發展趨勢。從我們所接觸的互聯網企業的雲計算佈局來看,也基本符合報告中描述的規律。這說明在未來的IT時代,雲計算規模會持續擴大,企業應用會更多地往雲上靠。而企業自建私有云,以及私有云跟公有云結合(混合雲),是主要發展趨勢。

再看另一份對比數據,如表1-1所示。市場研究公司Gartner稱,全球公有云服務市場規模在2016年有望達到2040億美元,比2015年的1750億美元增長16.5%[2]。

“公有云服務市場繼續呈現出高速發展的態勢。Gartner公司預計,這種發展勢頭將會持續到2017年。”Gartner公司的研究主管希德•納格(Sid Nag)在一份聲明中說,“這種強勁的發展勢頭反映了人們從傳統IT服務向雲端服務的轉變,因為企業越來越傾向於追求數字化商業戰略。”

Gartner公司指出,雖然公有云服務呈現出穩定發展的態勢,但是2016年發展速度最快的卻是IaaS(基礎架構即服務)。2016年,IaaS有望增長38.4%;到年底,IaaS市場規模有望達到224億美元。

雲應用服務(SaaS)有望實現年增長20.3%,達到377億美元。雲管理和安全服務的增長率有望達到24.7%。雲應用基礎架構服務(PaaS)也有望表現出強勁的發展勢頭,達到21.1%的增長率。雲服務呈現出的這種強勁發展勢頭,有望在未來5~7年內仍然保持下去。

表1-1 全球公有云服務預測(單位是10億美元)

YY遊戲使用雲平臺的經驗及雲計算隨想

1.2 YY遊戲使用雲平臺的經驗

自2013年起,YY遊戲[3]就使用私有云平臺服務於自身的頁遊業務。

在開發雲平臺之前,遊戲運營面臨的問題是:

  • 頁遊開服快、密度大、週期短,導致運維變更頻繁。

  • 傳統開服、合服涉及大量的運維人工操作,例如安裝服務器、配置網絡、部署遊戲、配置數據庫等。

  • 用物理機開服,資源分配不合理,一個物理機上分配較多的遊戲進程,會導致風險過高;分配較少的進程,又導致成本浪費。

  • 數據備份、監控、故障轉移在傳統模式下都成為挑戰。

針對這些痛點,我們在OpenStack的基礎上,開發了第一代雲平臺,即Cloud 1.0。雲平臺上線後,資源管理更加靈活,在性能和成本之間取得良好的均衡,並極大地增強了運維自動化能力。到現在為止,Cloud 1.0已經支撐了幾十萬遊戲用戶同時在線。

如圖1-3所示是Cloud 1.0的基礎產品架構,包括雲主機、雲存儲、雲DB、雲緩存、雲網關五大核心產品。用戶可通過控制面板訪問它們,也可通過調用API在應用程序中訪問它們。

YY遊戲使用雲平臺的經驗及雲計算隨想

圖1-3 YY遊戲Cloud 1.0的基礎產品架構

在Cloud 1.0的OpenStack實現中,虛擬計算是Nova管理的KVM,虛擬網絡是Neutron管理的VLAN供應商網絡(ProviderNetwork)。關於VLAN供應商網絡,Rackspace有一篇博客[4]描述得比較清楚,可以參考。在Cloud 1.0中我們沒有使用分佈式塊存儲服務(如Ceph)。

在Cloud 1.0中,我們並沒有實現租戶網絡,不同的遊戲廠家接入同一Flat網絡,這對隱私和安全都不利。Cloud 1.0的雲網絡架構如圖1-4所示。

雲網關是遊戲平臺中一個重要產品,請參考騰訊遊戲的TGW[5]。簡言之,雲網關有兩個重要作用:一是收斂公網IP,節省IP成本;二是集中安全防護,降低單個雲主機被DDoS攻擊的可能性。所有的雲主機都只有內網IP,運行在雲網關後面。除了雲主機外,還有云DB、雲緩存、雲存儲等配套產品,都是遊戲服務需要的。

YY遊戲使用雲平臺的經驗及雲計算隨想

圖1-4 YY遊戲Cloud 1.0的雲網絡架構

隨著雲平臺規模越來越龐大,慢慢暴露了OpenStack的一些弱點,比如結構複雜、可靠性一般、擴展性弱,導致我們在雲的可控性方面很被動,從而產生了對第二代雲平臺的需求。

那麼我們需要一個什麼樣的雲呢?首先,它是基於私有云的;其次,這個私有云一定要滿足業務特點,比如遊戲行業與金融行業,業務特點截然不同;最後,這個雲一定要可管理、可擴展、可控。對於一個平臺服務來說,存在性能短板、運行故障並不可怕,可怕的是出問題後用戶無法跟蹤和定位,從而失去可控性。

在此需求推動下,我們著手開發第二代雲平臺。正是隨著第二代雲平臺,即Cloud2.0的自主研發和上線,我們在此過程中積累了大量的實踐經驗,從而得以推動本書的形成。

1.3 雲計算隨想

本書作者之一風河,作為雲計算用戶已有多年曆史。從2011年起,就先後使用了多家公有云平臺,包括Rackspace、AWS、Linode、Vultr等。從客觀上說,雲計算帶給用戶的不只是成本優化,還有效率方面的顯著提升。

在更早期的時候,用戶的網站要麼使用Share Hosting(共享主機,如DreamHost、HostMonster),要麼使用Dedicated Server(獨立服務器,如SoftLayer、CNServers)。前者在性能、穩定性方面都存在問題,不適合流量大的站點;後者在管理上極麻煩,下單一臺服務器,短的2~3天,長的1~2周才能完成上架交付。雲計算出現後,有效地解決了這些問題,帶給用戶更穩定、更高效、更便捷的解決方案。

YY遊戲有自己的雲平臺解決方案,主要面向公司內部的遊戲運營和業務部署,既包括IaaS私有云平臺,又包括PaaS升龍部署系統。在我們自己的雲平臺上,花了不到半個小時,就建立了一個測試站點。這個站點的配置如下:

  • 雲主機:2VCPU、1GB內存、50GB硬盤、無公網IP地址

  • 雲DB:1GB內存、InnoDB、SSD盤、單實例

  • 雲網關:TCP轉發

基本上是最低配置的雲主機和雲DB,並使用了支持TCP和HTTP協議的雲網關(因為雲主機沒有配置公網IP地址)。

服務建立後,對資源的管控和監控都極為方便。如果是傳統的物理機,則要裝一堆的東西、寫一堆的腳本去完成服務器監控與備份。而對於雲主機、雲DB,這些都是一鍵式操作。如圖1-5所示是雲DB集成的監控圖。

YY遊戲使用雲平臺的經驗及雲計算隨想

圖1-5 雲DB集成的監控圖

面向用戶技術的發展趨勢,應該是越來越方便、易用。以前建立一個站點,需要專業人士來完成。而現在藉助各家雲平臺在基礎層(IaaS)、業務層(PaaS)所做的鋪墊工作,非專業人士也能在短期內建好一個站點。在飛速發展的移動互聯網時代,產品的更新迭代極快,如果產品開發能夠用現有的平臺與技術快速實現,為什麼不用呢?這也是雲平臺將來會持續存在與發展的一個原因。

而對於技術開發用戶來說,接受雲平臺、適應雲平臺也是一個必然趨勢。比如,對於我們

開發的業務,往往會關注如下幾方面問題。

  • 彈性:根據訪問規模的增減,業務彈性伸縮(Scaling)。在規模變大時,整個架構自適應Scale Up;在規模收縮時,架構Scale Down。架構裡包含Web服務器、應用服務器、數據庫服務器、緩存服務器、存儲服務器等。

  • 自動化:業務的開發、測試、發佈、部署、運行、調試整個環節,都有自動化手段輔助進行。只要執行幾個命令,就可以將代碼從本地環境發佈到遠程環境,並順利運行。不需要關注服務器怎麼分配、數據庫怎麼運行、路由(Route)怎麼調度,只要關注自己的業務邏輯是否正常即可。

  • 分佈式:隨著節點的增加,業務性能(Performance)和容量(Capability)線性增長。在節點發生故障時,自動進行故障轉移(Failover)。不管是水平擴展還是故障轉移,對用戶都是透明的,整體服務可用率高。

  • 監控:業務範圍內的每個服務對象,大到IDC、CDN、服務器、存儲,小到每個邏輯接口,都有自動化監控手段,在發生問題時第一時間通知到開發者,使其對業務運行環境(硬件、軟件、網絡)的性能、可用性指標瞭如指掌。

現在,上述問題越來越成為我們關注的重點。傳統的開發模式和服務交付方式,比如手工部署、單機運行、自主管理、集成一體(All in one),可能還繼續適用於某些業務。但是隨著開發團隊和業務規模的增長,開發人員遲早會面對上述問題。此時面向雲的開發模式和交付方式,就顯得突出和有必要了。

從傳統模式到雲模式,開發理念和實現方式有個轉變過程。不是說把一個傳統軟件扔到雲平臺上就能隨時運行。比如,業務要做到彈性和分佈式,它自身需要是狀態無關的(Stateless)。它的事務(Session)、日誌、數據、緩存都必須去本地化,使用外部獨立的存儲接口。在雲平臺上,應用節點隨時可以生成,也隨時可以銷燬。如果業務自身沒有做到無狀態,那就談不上彈性伸縮。

總體來說,面向雲平臺的業務開發模式,給我們帶來的不只是架構的變化,更是開發理念的轉變。在這種理念下,軟件開發過程更快速,軟件質量更高。用戶只要遵循一定的開發模式,平臺就會保障軟件最終運行的架構、性能、可用性和擴展性。


[1] RightScale公司2016年度雲計算報告:

http://www.rightscale.com/blog/cloud-industry-insights/cloud-computing-trends-2016-state-cloud-survey

[2] Gartner公司關於世界級公有云服務的市場研究報告:

http://www.gartner.com/newsroom/id/3188817

[3] YY遊戲是歡聚時代公司互娛事業部旗下的品牌,官網是:

http://wan.yy.com/

[4] Rackspace的博客Neutron Networking: VLAN ProviderNetworks:

https://developer.rackspace.com/blog/neutron-networking-vlan-provider-networks/

[5] 騰訊TGW:

http://wiki.open.qq.com/wiki/TGW

本文節選自YY遊戲雲平臺組新書《自主實現SDN虛擬網絡與企業私有云》第一章,本書已經在各大圖書平臺有售。

YY遊戲使用雲平臺的經驗及雲計算隨想

相關推薦

推薦中...