前言
随着遊戲市場的火爆,遊戲行業逐漸向精品化、IP 化、多樣化的格局邁進,這也對遊戲開發者提出了更高的要求。如何保證遊戲性能穩定,為玩家提供流暢的開黑體驗?這個雙11,準備嘗試用下華為雲的服務,沉浸式感受遊戲雲端部署解決方案的強大。

1、遊戲架構介紹
1.1服務器架構
不同的公司有不同的遊戲服務器架構,所以部署的具體細節大多不相同,但是基本的部署準備還是一樣的,先看下我們的遊戲架構,方便讀者朋友了解後續的準備工作。

1.1.1服務器角色具體介紹
Client:遊戲客戶端。
Gate:網關服,這裡不承載遊戲的鍊接,僅僅做遊戲服務器的地址發放,玩家從gate服獲取正式遊戲服的ip和端口。
Game:玩家主要在的遊戲服務器隻有一個。
Room:房間服,玩家匹配進入戰鬥後将進入戰鬥服,如果戰鬥多可以做動态擴展。
Gm:後台管理服務器,可以做活動的發布或者管理玩家數據。
Redis:主要用來做緩存,避免數據庫的頻繁訪問壓力。
Mysql:主要用來做數據的持久化。
1.1.2玩家數據流
玩家(client)通過http方式訪問gate服務器,獲取game服務的ip和端口。
client通過拿到的ip和端口直連game服務器,這樣玩家就登錄進了服務器。
當玩家操作角色進行匹配戰鬥的時候,匹配成功後會将需要的數據傳入room服務器,所有的戰鬥指令也會被傳入room服務。
當玩家需要查詢數據時,比如想獲得背包,game服會先像redis查詢,如果數據不存在,則像mysql查詢,查詢到數據後會存入緩存。
當玩家角色數據發生變化時,比如獲得了新的道具,這個時候需要操作數據庫,game服務器會先更新數據庫然後更新緩存。
當發布活動和修改玩家數據的時候使用gm,通過發布指令到game服。
1.1.3服務間交互協議
http協議:主要發生在訪問場景比較少的地方,client和gate,game和Gm之間。
dubbo協議:主要使用在内部服務器之間交互數據,簡單直接,像操作本地方法一樣。
Webscoket:主要用在client和game之間,因為這是一個網頁遊戲的服務器,所以使用了websocket。
1.2部署方式
這裡使用docker的方式,原因有幾點:
标準化應用發布,避免環境帶來的問題。
節約時間,方便快速部署和啟動。
團隊同學比較熟悉,降低犯錯的可能性。
2、部署準備
2.1環境準備
2.1.1機器準備
對服務器的配置做了一個表統計,準備好服務器就好,下表是參考華為雲官網。
注:具體價格實際以官網價為準

2.1.2解決方案構成
·彈性雲服務器ECS:是一種雲上可随時自助獲取、可彈性伸縮的計算服務,幫助打造安全、可靠、靈活、高效的應用環境。
·彈性負載均衡ELB:将訪問流量自動分發到多台雲服務器,擴展應用系統對外的服務能力,實現更高水平的應用容錯。
·雲數據庫 RDS for MySQL:擁有即開即用、穩定可靠、安全運行、彈性伸縮、輕松管理、經濟實用等特點,讓客戶更加專注業務發展。
·分布式緩存服務Redis版:業界支持Arm和x86雙架構的Redis雲服務,支持雙機熱備的HA架構,提供單機、主備、Proxy集群、Cluster集群、讀寫分離實例類型,滿足高讀寫性能場景及彈性變配的業務需求。
·雲日志服務 LTS:提供一站式日志采集、秒級搜索、海量存儲、結構化處理、轉儲和可視化圖表等功能,滿足應用運維、網絡日志可視化分析、等保合規和運營分析等應用場景。
·DDoS防護 AAD:提供全球化服務,以應對DDoS攻擊挑戰,可提供毫秒級攻擊響應、多維度行為分析及機器學習、防禦策略自動調優、識别各種複雜DDoS攻擊,以保護您的業務連續性。
·彈性公網IP EIP:彈性公網IP(Elastic IP)提供獨立的公網IP資源,包括公網IP地址與公網出口帶寬服務。可以與彈性雲服務器、裸金屬服務器、虛拟IP、彈性負載均衡、NAT網關等資源靈活地綁定及解綁,提供訪問公網和被公網訪問能力。擁有多種靈活的計費方式,滿足不同業務場景訴求
·文檔數據庫服務DDS: 文檔數據庫DDS兼容MongoDB協議,在華為雲高性能、高可用、高安全、可彈性伸縮的基礎上,提供了一鍵部署,彈性擴容,容災,備份,恢複,監控等服務能力。目前支持分片集群(Sharding)、副本集(ReplicaSet)和單節點(Single)三種部署架構。
2.2鏡像準備
鏡像的準備打包推送到私有倉庫,具體的方法可以使用一些插件,也可以使用Jenkins,或者手動推送,無論哪種方式,這裡準備下可能需要用到的手動命令。
2.2.1安裝docker服務

2.2.2打包鏡像
将jar包拷貝到和dockerfile相同目錄下,執行下面命令,打包鏡像。

2.2.3将鏡像打包為本地文件
鏡像導出為壓縮包,方便傳輸。

2.2.4解包鏡像
登錄到服務器之後,将上面的文件拷貝到本機,使用下面的命令将鏡像導入到當前機器;

2.3部署腳本

注:上述是開發環境,環境變量有些是默認,在正式環境部署時候需要動态調整。
2.4注意點
gate服務器需要開通公網ip。
excel配置文件要提前規劃,在docker腳本中挂載。
docker挂載的數據目錄和日志目錄需要提前規劃。
每個服務器内部的端口映射要提前規劃。
環境變量需要在腳本中修改,包括mysql和redis數據庫地址,需要鍊接的服務器ip和端口,以及相關的服務器配置等。
3、正式部署
3.1環境調研
遊戲痛點:
新遊、海量玩家在線,高并發訪問擴容不及時;
網絡時延高,遊戲卡頓、玩家掉線;
自建周期長成本高,無法彈性伸縮。
大多遊戲服務器屬于計算密集型的,所以遊戲服務器雲廠商選擇核心點有以下幾條:
資源擴容能力,能及時擴容,根據需求靈活購買資源,實現動态擴展、成本優化,支持遊戲開服、擴服、并服等場景的業務運行。
計算能力卓越,同類型ECS高于友商15%,PPS;容器快速發放,性能對比開源高20%,BMS可5分鐘發放。
安全防禦,華為雲提供了單線路T級DDoS高防IP服務以及百萬QPS級CC防護,基于黑客攻擊機器學習、業務風控大數據智能隔離等AI能力,保障中手遊遊戲長期安全運行。
簡化雲上運維工作,平台為遊戲客戶提供7x24小時服務,專項保障、專家支持,确保重大活動業務穩定。不僅能夠實現快速部署,而且華為雲雲遊戲管理服務平台可對遊戲内容、遊戲使用時長進行管控,所有雲遊戲運營商客戶均可快速接入華為雲雲遊戲管理服務平台,獲得全套自動化部署環境;還可通過遊戲開發及運營一體化,确保在用戶實時在線的場景下即可完成遊戲優化和體驗升級,讓産品整體交付效率提升。
資費,好用且便宜是每個公司的追求,降本增效,多種計費模式,起步預算低,按需使用,用多少付多少,有效緩解企業初創資金壓力,更省錢。
總結:華為雲遊戲雲端部署解決方案,提供覆蓋全球的雲基礎設施,支撐千萬級玩家同時在線穩定運行,助力遊戲企業打造精品化遊戲,保障遊戲彈性部署和無憂運維。
3.2套餐購買
下面是在官網套餐截圖,可以作為參考配置,等到正式生産環境的時候根據資源動态配置。
注:點擊可看大圖



3.3華為雲核心優勢彙總
數據庫能力:高并發場景,性能穩定性優于友商Mysql主備切換效率優于友商。
海外區域亞太覆蓋:華為網絡質量(時延和丢包)總體優于友商(除日韓、越南、台灣)。
計算能力:ECS——同類型ECS高于友商15%,PPS;容器——快速發放,性能對比開源高20%。
網絡能力:内網帶寬轉發效率,ELB億級并發。
安全防護:華為雲打造租戶隔離的安全平台,并提供完善的安全服務保障業務和數據安全,為您的遊戲保駕護航。
極簡運維:雲上運維工作,平台為遊戲客戶提供7x24小時服務,專項保障、專家支持,确保重大活動業務穩定。
高數據可靠性:ECS服務通過商業和技術上的合理努力,承諾單實例維度每服務周期服務可用率不低于99.975%;單區域多可用區維度每服務周期服務可用率不低于99.995%;基于分布式架構的、可彈性擴展的虛拟塊存儲服務,具有高數據可靠性,高I/O吞吐能力,能夠保證任何一個副本故障時快速進行數據遷移恢複,避免單一硬件故障造成數據丢失。
3.4機器環境準備
3.4.1安裝docker
遠程登錄到機器之後,切換到root用戶,執行下面的命令,安裝docker環境

3.4.2拷貝文件到目标機器
文件列表如下:
鏡像文件,根據2.2中相關命令,拷貝到本地,如果用私有倉庫,則不需要執行此步驟。
拷貝配置文件到機器,将所有的excel配置文件拷貝到機器,并在啟動腳本中配置挂載
啟動腳本,在規劃的目錄下創建并修改啟動腳本,設置相應的參數。
3.4.3腳本執行
在所有的文件都準備好之後,切換到腳本所在目錄,可以直接啟動腳本,下面以game為例

3.4.4驗證服務器正常
首先查看所有服務器的日志是否有報錯異常,然後使用特殊賬号進行登錄,驗證服務器功能正常
驗證點:
可以正常登錄
可以匹配戰鬥
http接口正常
服務器操作正常
主要業務邏輯正常
驗證以上邏輯後通知測試同學進行功能測試。
3.4.5開服
待測試同學測試通過後,通過gm設置服務器狀态為開服狀态,部署流程結束。
4、總結
九層之台,起于壘土。華為雲在遊戲領域的發力,并非一日之計。
好的雲服務廠商可以讓事情更簡單、更容易,華為雲值得作為。
華為雲遊戲雲端部署解決方案,提供覆蓋全球的雲基礎設施,支撐百萬級玩家同時在線穩定運行,結合雲上運維運營,助力遊戲企業實現業務的快速上線和彈性擴展,有效應對遊戲的突發性需求和遊戲企業出海發展需求。
目前華為雲雙11營銷季正在進行中,衆多雲上優選的産品及爆款解決方案誠意滿滿,即日起至11月30日,登錄華為雲官網可享10000元上雲禮包,更有認證付費抽獎、服務支持計劃等福利玩法,全面助力中小企業高效上雲。機不可失時不再來,感興趣的小夥伴快去看看吧!
免責聲明:本文僅代表作者個人觀點,與每日科技網無關。其原創性以及文中陳述文字和内容未經本站證實,對本文以及其中全部或者部分内容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關内容。
本網站有部分内容均轉載自其它媒體,轉載目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責,若因作品内容、知識産權、版權和其他問題,請及時提供相關證明等材料并與我們聯系,本網站将在規定時間内給予删除等相關處理.

