游戲服務器池由Azure Batch管理,負責創(chuàng)建虛擬機和開放端口。每個地區(qū)都將有自己的游戲服務器池。
體系結構關系圖
相關服務
Azure流量管理器-選擇此服務是因為它可以根據(jù)延遲情況將玩家連接到最合適的區(qū)域。
Azure Batch-它用于創(chuàng)建虛擬機和打開端口。選擇此服務是因為它可以根據(jù)您定義的參數(shù)自動縮放池。
針對Azure流量管理器使用一個資源組,并針對每個區(qū)域虛擬機群集各使用一個資源組。
體系結構注意事項
體系結構會有一些不同,具體取決于虛擬機運行的操作系統(tǒng)以及使用的是平臺映像還是自定義映像。
操作系統(tǒng)
Windows
要啟動并運行Windows Server虛擬機并準備好安排計劃,所花費的時間大約是Linux虛擬機的兩倍。
目前,Windows Server 2012的性能優(yōu)于Windows Server 2016。
值得一提的是,如果您已擁有有效的Windows本地部署許可證,可能不必支付該SKU的全部費用。
Linux
啟動并運行Linux并準備好安排計劃大約比Windows快兩倍。
平臺映像
平臺/市場映像
它們可使用安全修補程序進行更新。我們?yōu)檫@些映像提供支持。
在長期運行的池上使用平臺映像的缺點在于,映像可能會被棄用并從存儲庫中刪除,并且池可能永遠不能擴展。
自定義映像
自定義映像的啟動時間可能會有很大差別,具體取決于已提供源的自定義軟件和數(shù)據(jù)。
優(yōu)勢在于,您可以使用OSDisk中所有預安裝的軟件/數(shù)據(jù)來讓映像準備就緒。
自定義映像源磁盤可以是以下三種類型之一:1.快照,2.Manageddisk,3.VHD。
目前,我們建議使用“快照”源磁盤。存儲有擴展限制,Azure Batch一次性可擴展的虛擬機數(shù)量不得超過2500臺。
容器
如果您已在Linux容器中將游戲容器化,可以使用預先制好的映像來運行容器。請參閱在Azure Batch上運行容器應用程序,了解如何創(chuàng)建支持運行容器任務的計算節(jié)點池,然后在池中運行容器任務。
請查看此鏈接中記錄的microsoft-azure-batch發(fā)布者,了解可用的Linux映像。
部署模板
單擊下面的按鈕,將項目部署到您的Azure訂閱:
此操作將觸發(fā)模板部署,即系統(tǒng)會將BatchWithPoolDeploy.json ARM模板文件部署到您的Azure訂閱,從而創(chuàng)建必要的Azure資源。更確切地說:
創(chuàng)建一個Azure存儲帳戶。
創(chuàng)建一個與Azure存儲帳戶關聯(lián)的Azure Batch帳戶。
在D2s_v3 Windows Server 2016上創(chuàng)建一個包含5個節(jié)點(默認)的池。
該池具有一個空的開始任務,可用于啟動游戲服務器。
這可能會在您的Azure帳戶中產生相應費用。
請查看一般指南文檔,其中有一篇文章概述了Azure服務的命名規(guī)則和限制。
備注
如果您對ARM模板的工作原理感興趣,請參閱此參考體系結構中使用的每個不同服務對應的Azure資源管理器模板文檔:
Azure Batch池模板參考
分步操作
玩家的設備客戶端連接到Azure流量管理器,以傳送要查找游戲服務器的玩家請求。
Azure流量管理器連接到具有最低延遲的區(qū)域,并指向可獲取可用游戲服務器的Matchmaker。
Matchmaker包含選擇游戲服務器所需的所有信息,并且如果需要更多容量,它會主動ping Azure Batch服務以開始橫向擴展。
Azure Batch服務接收到該請求并開始橫向擴展。如果設置了自動縮放,它可能會根據(jù)已建立的規(guī)則主動開始該流程。
游戲服務器會在游戲會話結束后且服務器可用時,定期向Matchmaker發(fā)送狀態(tài)更新以及服務器的最新IP和端口。
每臺玩家設備都使用由Matchmaker提供的連接信息直接連接到游戲服務器。
游戲會話結束后,系統(tǒng)將存儲相關信息。
縮放
借助Azure Batch自動縮放,服務會動態(tài)地調整節(jié)點,隨著任務需求的增加將節(jié)點添加到池,并隨著需求的減少而移除計算節(jié)點。
您可以在計算節(jié)點池上啟用自動縮放,方法是將它與您定義的自動縮放公式相關聯(lián)。Azure Batch服務會使用該自動縮放公式來確定執(zhí)行工作負載所需的計算節(jié)點數(shù)。
您可以在創(chuàng)建池時或在現(xiàn)有池上啟用自動縮放。您還可以在已配置為自動縮放的池上更改現(xiàn)有公式。借助Azure Batch,您可以在將公式分配到池之前對它們進行評估,并監(jiān)控自動縮放的運行狀態(tài)。
或者,您可以像本例中一樣,向Matchmaker分配任務來主動告知Azure Batch何時橫向擴展。
安全注意事項
當您在虛擬網(wǎng)絡中包含Azure Batch虛擬機服務池時,需要遵循一些要求。
其他資源和示例
Azure Batch Explorer:允許您與Azure Batch服務進行交互的工具,以便在Azure Batch帳戶中查看、管理、監(jiān)控和調試實體。提供一張熱度地圖,用于查看所有運行的虛擬機及其當前狀態(tài),下面是地圖解讀方法:
白色方塊表示虛擬機處于空閑狀態(tài),可隨時接受一些工作。
黃色方塊表示虛擬機無法使用,因為它們正在啟動或關閉。
綠色方塊表示虛擬機當前正在運行工作負載。
紅色方塊表示虛擬機處于故障狀態(tài)。
定價
如果您沒有Azure訂閱,可以創(chuàng)建免費帳戶,開始使用12個月的免費服務。除非您超出這些服務的使用限制,否則無需為Azure免費帳戶中包含的這些免費服務付費。了解如何通過Azure門戶或使用情況文件查看服務使用情況。
您需要承擔運行這些參考體系結構時使用的Azure服務的費用,總金額取決于將通過分析管道運行的事件數(shù)。請參閱參考體系結構中使用的每項服務的定價網(wǎng)頁:
您還可以使用Azure定價計算器,以配置和估算您計劃使用的Azure服務的成本。