《YY游戲使用云平臺的經驗及云計算隨想》要點:
本文介紹了YY游戲使用云平臺的經驗及云計算隨想,希望對您有用。如果有疑問,可以聯系我們。
自從2006年亞馬遜AWS上線它的第一個EC2實例以來,云計算已經在全球得到飛速發展,并且被企業用戶和個人開發者廣泛接受.RightScale公司發布的2016年度云計算報告[1]顯示,采訪了1060名IT專業人士,其中42%的受訪者所在公司的規模大于1000人,95%的受訪者已經在使用各類云計算,如圖1-1所示.
圖1-1 調查顯示95%的受訪者在使用云計算
RightScale公司的調查報告同時指出了2016年云計算相對于2015年的增長趨勢,如圖1-2所示.
圖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億美元)
自2013年起,YY游戲[3]就使用私有云平臺服務于自身的頁游業務.
在開發云平臺之前,游戲運營面臨的問題是:
針對這些痛點,我們在OpenStack的基礎上,開發了第一代云平臺,即Cloud 1.0.云平臺上線后,資源管理更加靈活,在性能和成本之間取得良好的均衡,并極大地增強了運維自動化能力.到現在為止,Cloud 1.0已經支撐了幾十萬游戲用戶同時在線.
如圖1-3所示是Cloud 1.0的基礎產品架構,包括云主機、云存儲、云DB、云緩存、云網關五大核心產品.用戶可通過控制面板訪問它們,也可通過調用API在應用程序中訪問它們.
圖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、云緩存、云存儲等配套產品,都是游戲服務需要的.
圖1-4? YY游戲Cloud 1.0的云網絡架構
隨著云平臺規模越來越龐大,慢慢暴露了OpenStack的一些弱點,比如結構復雜、可靠性一般、擴展性弱,導致我們在云的可控性方面很被動,從而產生了對第二代云平臺的需求.
那么我們需要一個什么樣的云呢?首先,它是基于私有云的;其次,這個私有云一定要滿足業務特點,比如游戲行業與金融行業,業務特點截然不同;最后,這個云一定要可管理、可擴展、可控.對于一個平臺服務來說,存在性能短板、運行故障并不可怕,可怕的是出問題后用戶無法跟蹤和定位,從而失去可控性.
在此需求推動下,我們著手開發第二代云平臺.正是隨著第二代云平臺,即Cloud2.0的自主研發和上線,我們在此過程中積累了大量的實踐經驗,從而得以推動本書的形成.
本書作者之一風河,作為云計算用戶已有多年歷史.從2011年起,就先后使用了多家公有云平臺,包括Rackspace、AWS、Linode、Vultr等.從客觀上說,云計算帶給用戶的不只是成本優化,還有效率方面的顯著提升.
在更早期的時候,用戶的網站要么使用Share Hosting(共享主機,如DreamHost、HostMonster),要么使用Dedicated Server(獨立服務器,如SoftLayer、CNServers).前者在性能、穩定性方面都存在問題,不適合流量大的站點;后者在管理上極麻煩,下單一臺服務器,短的2~3天,長的1~2周才能完成上架交付.云計算出現后,有效地解決了這些問題,帶給用戶更穩定、更高效、更便捷的解決方案.
YY游戲有自己的云平臺解決方案,主要面向公司內部的游戲運營和業務部署,既包括IaaS私有云平臺,又包括PaaS升龍部署系統.在我們自己的云平臺上,花了不到半個小時,就建立了一個測試站點.這個站點的配置如下:
基本上是最低配置的云主機和云DB,并使用了支持TCP和HTTP協議的云網關(因為云主機沒有配置公網IP地址).
服務建立后,對資源的管控和監控都極為方便.如果是傳統的物理機,則要裝一堆的東西、寫一堆的腳本去完成服務器監控與備份.而對于云主機、云DB,這些都是一鍵式操作.如圖1-5所示是云DB集成的監控圖.
圖1-5? 云DB集成的監控圖
面向用戶技術的發展趨勢,應該是越來越方便、易用.以前建立一個站點,需要專業人士來完成.而現在借助各家云平臺在基礎層(IaaS)、業務層(PaaS)所做的鋪墊工作,非專業人士也能在短期內建好一個站點.在飛速發展的移動互聯網時代,產品的更新迭代極快,如果產品開發能夠用現有的平臺與技術快速實現,為什么不用呢?這也是云平臺將來會持續存在與發展的一個原因.
而對于技術開發用戶來說,接受云平臺、適應云平臺也是一個必然趨勢.比如,對于我們
開發的業務,往往會關注如下幾方面問題.
現在,上述問題越來越成為我們關注的重點.傳統的開發模式和服務交付方式,比如手工部署、單機運行、自主管理、集成一體(All in one),可能還繼續適用于某些業務.但是隨著開發團隊和業務規模的增長,開發人員遲早會面對上述問題.此時面向云的開發模式和交付方式,就顯得突出和有必要了.
從傳統模式到云模式,開發理念和實現方式有個轉變過程.不是說把一個傳統軟件扔到云平臺上就能隨時運行.比如,業務要做到彈性和分布式,它自身需要是狀態無關的(Stateless).它的事務(Session)、日志、數據、緩存都必須去本地化,使用外部獨立的存儲接口.在云平臺上,應用節點隨時可以生成,也隨時可以銷毀.如果業務自身沒有做到無狀態,那就談不上彈性伸縮.
總體來說,面向云平臺的業務開發模式,給我們帶來的不只是架構的變化,更是開發理念的轉變.在這種理念下,軟件開發過程更快速,軟件質量更高.用戶只要遵循一定的開發模式,平臺就會保障軟件最終運行的架構、性能、可用性和擴展性.
文章來自微信公眾號:云技術實踐
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/4219.html