Azure游戲部門:一般指南和最佳實踐

來源: Microsoft Azure
作者:Microsoft Azure
時間:2020-12-30
16519
這些最佳實踐來自我們的 Azure 的體驗以及像您這樣的開發(fā)者的經(jīng)驗。

命名約定

為Azure中的任何服務挑選名稱至關重要,因為:

以后再更改名稱會很困難。

名稱必須滿足其特定資源類型的要求。

一致的命名約定讓您能夠輕松找到服務。名稱還可以指示服務在解決方案中扮演的角色。

請參閱命名約定文章,該文章概述了Azure服務的命名規(guī)則和限制,以及關于命名約定的一組基準建議。

資源組

在Azure中,所有資源都是在資源管理組中分配的。資源組提供資源的邏輯分組,使它們更易于作為集合使用,從而可以按生存期、所有者或其他條件進行管理。

有關所有詳細信息,請參閱管理資源組頁面。

Azure存儲區(qū)域

如果不同存儲資源的輸入和輸出位于不同的區(qū)域,則您需要為在區(qū)域之間移動數(shù)據(jù)支付費用。有關詳細信息,請參閱帶寬定價詳細信息。在同一區(qū)域中配對Azure服務,以避免出站數(shù)據(jù)傳輸。

提示

嘗試使用最靠近大多數(shù)用戶的區(qū)域。

安全性

在使用Azure設計、部署和管理云解決方案時,請參閱此安全最佳實踐集合。這些最佳實踐來自我們的Azure的體驗以及像您這樣的開發(fā)者的經(jīng)驗。

白皮書的各部分以單獨的文章形式發(fā)布,如下所列:

優(yōu)化標識和訪問管理

使用強大的網(wǎng)絡控制

鎖定和保護VM及計算機操作系統(tǒng)

保護數(shù)據(jù)

保護數(shù)據(jù)庫

定義和部署強大的運營安全做法

設計、構建和管理安全的云應用程序

有關其他安全最佳實踐,請參閱Azure安全最佳實踐和模式。

另請查看Azure DDoS防護:最佳實踐和參考體系結構文檔。

隱私

為了減少隱私責任足跡,請利用某些存儲用戶數(shù)據(jù)的服務所提供的功能:

您可以使用Azure Cosmos DB TTL(生存時間)使自動存儲在Azure Cosmos DB中的舊數(shù)據(jù)過期,從而設置將清除已存儲文檔的時間范圍。

您可以使用Azure Blob存儲生命周期管理策略在blob生命周期結束時刪除它們。

Azure資源管理器

利用Azure資源管理器創(chuàng)建、更新和刪除您的Azure訂閱中的資源。如果遇到問題,請參閱使用Azure資源管理器解決常見的Azure部署錯誤和解決資源提供程序注冊錯誤。

Azure事件中心分區(qū)

一旦創(chuàng)建分區(qū),將無法更改分區(qū)數(shù)。當您計劃進入生產(chǎn)階段并且可能會從大量用戶那里接收事件時,您應該事先進行一些計算,并結合負載測試和數(shù)據(jù)使用情況,找出所需的確切分區(qū)數(shù)量。

有關基于Azure事件中心設計全球范圍遙測平臺和調整其大小的完整視頻指南,請觀看此視頻。

1吞吐量單位(下文以TU表示)等于1 MB/秒或1000條消息/秒,以先達到者為準。您將需要為TU付費;要調整成本,您可以根據(jù)負載要求更改TU。

每個單獨分區(qū)的最大入口限制為1 MB/秒或1000條消息/秒,以先達到者為準。請參考以下原則來確定分區(qū)數(shù):

分區(qū)提供高可用性。如果您要向事件中心發(fā)送消息并希望發(fā)送成功,則應創(chuàng)建多個分區(qū)并使用EventHubClient.Send發(fā)送。

分區(qū)數(shù)將決定事件中心管道的寬度以及您可以接收和處理消息的速度。如果您的Azure事件中心有16個分區(qū),則其最大容量為16 TU。打個比方,分區(qū)就相當于高速公路上的車道。

TU在命名空間級別進行配置。同樣,一個事件中心命名空間可以有多個Azure事件中心。每個Azure事件中心可以有不同數(shù)量的分區(qū)。

您不能使用多于分區(qū)數(shù)的TU:如果您有3個分區(qū),則無法使用3個以上的TU。分區(qū)數(shù)通常多于TU數(shù),原因如下:

當流量增加時,您可以增加TU數(shù),但不能更改分區(qū)數(shù)。

您的并發(fā)讀取器的數(shù)量不能多于分區(qū)數(shù)。如果您需要10個并發(fā)讀取器,則需要10個分區(qū)。

提示

推薦的路徑是在開發(fā)解決方案時以1 TU為起點對分區(qū)數(shù)進行建模。完成此階段后,當您在封閉測試期間進行負載測試時,增加TU來適應您的負載。提醒一下,您可以在同一事件中心命名空間中擁有多個Azure事件中心。因此,在Azure事件中心命名空間級別具有20個TU和具有4個分區(qū)的10個事件中心的情況下,每個可以在整個Azure事件中心命名空間中提供20 MBPS。

Azure Cosmos DB

Azure Cosmos DB資源依據(jù)設置的吞吐量和存儲計費。Azure Cosmos DB吞吐量以每秒請求單位的形式表示(下文以RU/s表示)。

為了提供可預測的性能,您應該以100 RU/秒為單位預留吞吐量。您可以使用Azure Cosmos DB請求單位計算器來估計吞吐量需求。

提示

根據(jù)經(jīng)驗/最佳實踐,最大RU數(shù)不應超過最小/穩(wěn)態(tài)吞吐量的20倍。

您可以立即提高到初始設置吞吐量的2倍。您可以異步增加到任何吞吐量值,最高異步提高到1M(通過支持票證可進一步提高)。

您可以立即降低到初始設置吞吐量的10倍(總范圍為20倍)。但在某些情況下,有可能降低到此范圍以外。

有關詳細信息,請參閱在Azure Cosmos容器和數(shù)據(jù)庫上設置吞吐量。

Azure存儲帳戶限制

Azure存儲具有某些限制,詳見Azure訂閱服務限制頁面。

如果您的游戲需求超出了單個存儲帳戶的可伸縮性目標,您可以構建應用程序以使用多個存儲帳戶。然后,您可以跨這些存儲帳戶對數(shù)據(jù)對象進行分區(qū)。

Azure存儲資源管理器

Azure存儲資源管理器是一種工具,可讓您輕松管理Azure存儲資源。上傳、下載和管理blob、文件、隊列、表和Azure Cosmos DB實體。輕松訪問以管理您的虛擬機磁盤。支持Windows、MacOS和Linux。

Azure流分析單位

選擇特定作業(yè)所需的流單位(下文以SU表示)的數(shù)量取決于作業(yè)中定義的輸入和查詢分區(qū)配置。最佳實踐是分配多于所需數(shù)量的SU。Azure流分析處理引擎以分配額外內存為代價對延遲和吞吐量進行優(yōu)化。

通常,最佳實踐是對于不使用PARTITION BY的查詢,從6個SU開始,然后使用試錯法(即:傳入具有代表性的數(shù)據(jù)量后,檢查SU%利用率指標,然后修改SU數(shù))確定最佳數(shù)量。流分析作業(yè)所能使用的最大流單元數(shù)取決于為作業(yè)定義的查詢中的步驟數(shù),以及每一步中的分區(qū)數(shù)??稍诖颂幜私庥嘘P這些限制的詳細信息。

有關選擇合適數(shù)量的SU的詳細信息,請參閱下面的頁面:縮放Azure流分析作業(yè)以增加吞吐量

備注

選擇特定作業(yè)所需的SU數(shù)目時,需根據(jù)輸入的分區(qū)配置以及為作業(yè)定義的查詢來決定。您可以為一項作業(yè)選擇最多達到您的配額的SU。默認情況下,對于特定區(qū)域中的所有分析作業(yè),每個Azure訂閱有多達200 SU的配額。要使訂閱的SU數(shù)量超出此配額,必須與Microsoft支持聯(lián)系。每個作業(yè)的SU的有效值為1、3、6,以6為增量遞增。

此外,Azure流分析使用可變大小批次處理事件和寫入輸出。通常,Azure流分析引擎不會一次寫入一條消息,而是使用批處理來提高效率。當傳入和傳出事件的發(fā)生率都很高時,它將使用較大的批次。當出口速率較低時,它將使用較小的批次,以保持較低的延遲。請參閱輸出批次大小頁面,該頁面介紹一些關于輸出批次的Azure流分析注意事項。

Azure Database for MySQL

使用Azure Database for MySQL開發(fā)“云-本機”游戲應用程序時,重試邏輯和連接池是必不可少的組件。將Azure Database for MySQL數(shù)據(jù)庫游戲構建為檢測和重試斷開的連接和失敗的事務至關重要。當應用程序重試時,應用程序的連接將透明地重定向到新創(chuàng)建的實例,該實例接管發(fā)生故障的實例。Azure內部使用網(wǎng)關將連接重定向到此新實例。發(fā)生中斷時,整個故障轉移過程通常需要數(shù)十秒鐘。由于重定向是由網(wǎng)關內部處理的,因此外部連接字符串對于客戶端應用程序保持不變。大多數(shù)游戲應用程序對延遲的要求都很低,因此強烈建議為運行在Azure Database for MySQL上的游戲應用程序使用連接池。如果不使用連接池,在會話結束時打開和關閉連接可能會導致額外的延遲開銷。請參閱管理連接,了解如何在訪問數(shù)據(jù)庫時合理使用連接。

關于縱向擴展或收縮:當縱向擴展或收縮Azure Database for MySQL時,將創(chuàng)建具有指定大小的新服務器實例?,F(xiàn)有數(shù)據(jù)存儲與原始實例分離,然后附加到新實例。在縮放操作期間,數(shù)據(jù)庫連接將發(fā)生中斷。客戶端應用程序斷開連接,打開的未提交事務將被取消??蛻舳藨贸绦蛑卦囘B接或建立新連接后,網(wǎng)關將連接定向到新調整大小的實例。有關詳細信息,請參閱縮放資源。

以下鏈接介紹容量、存儲引擎支持、權限支持、數(shù)據(jù)操作語句支持以及數(shù)據(jù)庫服務中的功能限制。

值得注意的是,當可用存儲空間不足5 GB或設置存儲的5%時,服務器會被標記為只讀,建議您設置警報以在服務器存儲空間接近閾值時通知您,以便您可以避免進入只讀狀態(tài)。有關詳細信息,請參閱有關如何設置警報的文檔。

Azure容器實例

通常,建議在Windows上通過Azure容器實例使用Linux,因為Windows容器通常是較重的部署映像,需要更長的時間來啟動和加載。此外,通過Azure容器實例使用Linux還能提供一些Windows當前尚不支持的功能集,例如虛擬網(wǎng)絡。

立即登錄,閱讀全文
版權說明:
本文內容來自于Microsoft Azure,本站不擁有所有權,不承擔相關法律責任。文章內容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權,請聯(lián)系管理員(zzx@kchuhai.com)刪除!
掃碼登錄
打開掃一掃, 關注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
個人VIP
小程序
快出海小程序
公眾號
快出海公眾號
商務合作
商務合作
投稿采訪
投稿采訪
出海管家
出海管家