卡牌類手遊解決方案

4G 時代造就了手遊行業,而其中卡牌類手遊則是國內市場中炙手可熱的陣地。 卡牌類手遊圖形內容非常豐富,要求強大、可伸縮而且穩定的後端服務架構。此手遊解決方案提供了優質邊界網關協議 (BGP) 路由、專屬遊戲叢集資源、全球化網路布局,和進階手機應用安全防護。

推薦解決方案架構

解決方案描述

  1. 1. 遊戲服務端入口處採用負載平衡服務,隨著遊戲業務量增加,單服承載能力達到上限,隨時擴充遊戲服數量。Server Load Balancer支援4層TCP/UDP,7層http/https負載平衡,阿里雲Elastic Compute Service支援服務自身的縱向升配或Auto Scaling, 結合SLB可以實現基於ECS構建的應用程式層水平可自動調整架構,使得業務具備靈活多樣的伸縮能力。
  2. 2. 遊戲資料以及平台資料皆採用雲資料庫服務 RDS版,雲資料庫 RDS版的主備架構,避免遊戲核心資料的單點風險,同時隨著業務量的增長資料庫可以隨時熱升級。雲資料庫 RDS版提供專業的資料庫最佳化建議,包括直觀的慢SQL診斷和完整的SQL運行報告,並提供如主鍵檢查、索引檢查等多種最佳化建議,保證客戶遊戲資料和核心平台系統(如儲值,登陸系統)的平穩運行。
  3. 3. 單台Elastic Compute Service遊戲伺服器內部,平行部署兩套運行容器A、B(JAVA開發平台為例,容器為Tomcat),遊戲伺服器內部署反向 Proxy(如Nginx等),指向容器A。灰階發布代碼到B(JAVA開發平台為war包),將反向 Proxy指向B,灰階發布成功,卡牌遊戲使用者無斷線,無感知。若新發布失敗,則將反向 Proxy指回容器A,回退成功,卡牌使用者無感知。
  4. 4. 也可在阿里雲高IO SSDElastic Compute Service上自建MongoDB等資料庫服務,利用ECS SSD磁碟高速穩定的隨機讀寫能力、每秒過百兆輸送量的儲存效能,滿足NoSQL資料庫的IO需求。同時利用分布式三副本機制,提供穩固的資料可靠性。
  5. 5. 對已安裝應用軟體包的ECS雲端服務器,採用自訂鏡像、資料盤快照大量建立新伺服器,做到快速開服。


解決重大難題

隨著國內手遊行業與4G時代的興起,2013年國內卡牌類遊戲收入佔據了手遊總體收入的近一半,成為國內手遊市場的主流,2014年動作類重度卡牌手遊崛起,2015年卡牌手遊進入即時戰鬥時代。同時卡牌手遊也將迎來重度手遊的強大挑戰。面對洶湧襲來的RPG浪潮,卡牌手遊除了玩法創新,對後端服務架構也提出了更高的要求。
針對卡牌遊戲的需求和挑戰,阿里雲提出了以雲端運算平台為基礎的解決方案。該方案具有以下優勢:
高磁碟IO
SSD高速雲磁碟
由於卡牌類手遊服務端會產生並堆積大量玩家日誌,並且持久化儲存多採用MongoDB、LevelDB等NoSQL非關係型持久化產品,所以對伺服器的磁碟IO有更高的要求。
阿里雲Elastic Compute Service可以配置高IO SSD雲磁碟,擁有高速穩定的隨機讀寫能力,能夠完全滿足例如海量玩家日誌儲存的寫入效能;利用分布式三副本機制,提供穩固的資料可靠性。
快速部署,灰階發布
快速部署,灰階發布
相對RPG等“重度”手遊,卡牌遊戲開發週期較短,更容易控製成本。快速的開服、合服、滾服以及數值調整成為卡牌遊戲的常態。在多台伺服器上頻繁的部署和升級對遊戲的體驗和營運都提出了新的挑戰,需要在快速部署的同時做到灰階發布。
阿里雲伺服器全自助開通、釋放,方便的鏡像複製和大量操作功能,可以在最短時間內完成環境的部署、以及切換後剩餘資源的釋放,API操作方式更加適合全自動化營運部署的需要
靈活的頻寬計費方式
靈活的頻寬計費方式
由於卡牌遊戲大部分單區單服或多區一服,所以單台伺服器的外網流量成本和峰值較難預估,希望能做到單台伺服器流量隨用隨付。
Elastic Compute Service可以按照固定頻寬收費,也可以根據流量按小時計費,可以根據遊戲的流量特徵靈活選擇合適的計費方式。一般說來,在頻寬佔用率小於30%時,選用按流量計費可以節約更多的流量費用。
單點風險
伺服器無單點故障
垂直部署架構面臨的典型問題,當單台伺服器因各種問題宕機時,將導致至少一組區或服不可用,而宕機恢復直接關係到使用者體驗、財務流水甚至使用者留存,而往往受限於開發條件、代碼繼承、成本等因素,絕大多數遊戲還依然堅持著這種部署模式。
基於Distributed File System構建的雲平台,具備高可靠的三份資料冗餘儲存機制,時時刻刻保障資料的安全性,同時ECS伺服器自身擁有自動宕機遷移的能力,可以在故障發生時快速的通過遷移恢複服務,避免遊戲伺服器的單點故障。
Auto Scaling能力
資源Auto Scaling能力
各種類型遊戲基本上都有的共通特性,不確定的玩家線上數量對於伺服器的資源配置預估帶來了困擾,尤其在遊戲剛剛上線的推廣期或線上活動等,瞬時的訪問壓力很容易突破系統負載能力上限,而時刻保持著高配置資源無疑又造成了巨大的資源浪費,所以靈活的自動Auto Scaling能力顯得尤為重要。
阿里雲包括Elastic Compute Service、雲資料庫 RDS版在內的多款服務均支援服務自身的縱向變更配置或橫向擴充,結合Auto Scaling服務(ESS)可以實現基於業務負載情況的水平自動調整,滿足不同業務階段對資源量動態調整的需求。