命名約定
為Azure中的任何服務(wù)挑選名稱至關(guān)重要,因為:
以后再更改名稱會很困難。
名稱必須滿足其特定資源類型的要求。
一致的命名約定讓您能夠輕松找到服務(wù)。名稱還可以指示服務(wù)在解決方案中扮演的角色。
請參閱命名約定文章,該文章概述了Azure服務(wù)的命名規(guī)則和限制,以及關(guān)于命名約定的一組基準(zhǔn)建議。
資源組
在Azure中,所有資源都是在資源管理組中分配的。資源組提供資源的邏輯分組,使它們更易于作為集合使用,從而可以按生存期、所有者或其他條件進(jìn)行管理。
有關(guān)所有詳細(xì)信息,請參閱管理資源組頁面。
Azure存儲區(qū)域
如果不同存儲資源的輸入和輸出位于不同的區(qū)域,則您需要為在區(qū)域之間移動數(shù)據(jù)支付費用。有關(guān)詳細(xì)信息,請參閱帶寬定價詳細(xì)信息。在同一區(qū)域中配對Azure服務(wù),以避免出站數(shù)據(jù)傳輸。
提示
嘗試使用最靠近大多數(shù)用戶的區(qū)域。
安全性
在使用Azure設(shè)計、部署和管理云解決方案時,請參閱此安全最佳實踐集合。這些最佳實踐來自我們的Azure的體驗以及像您這樣的開發(fā)者的經(jīng)驗。
白皮書的各部分以單獨的文章形式發(fā)布,如下所列:
優(yōu)化標(biāo)識和訪問管理
使用強(qiáng)大的網(wǎng)絡(luò)控制
鎖定和保護(hù)VM及計算機(jī)操作系統(tǒng)
保護(hù)數(shù)據(jù)
保護(hù)數(shù)據(jù)庫
定義和部署強(qiáng)大的運營安全做法
設(shè)計、構(gòu)建和管理安全的云應(yīng)用程序
有關(guān)其他安全最佳實踐,請參閱Azure安全最佳實踐和模式。
另請查看Azure DDoS防護(hù):最佳實踐和參考體系結(jié)構(gòu)文檔。
隱私
為了減少隱私責(zé)任足跡,請利用某些存儲用戶數(shù)據(jù)的服務(wù)所提供的功能:
您可以使用Azure Cosmos DB TTL(生存時間)使自動存儲在Azure Cosmos DB中的舊數(shù)據(jù)過期,從而設(shè)置將清除已存儲文檔的時間范圍。
您可以使用Azure Blob存儲生命周期管理策略在blob生命周期結(jié)束時刪除它們。
Azure資源管理器
利用Azure資源管理器創(chuàng)建、更新和刪除您的Azure訂閱中的資源。如果遇到問題,請參閱使用Azure資源管理器解決常見的Azure部署錯誤和解決資源提供程序注冊錯誤。
Azure事件中心分區(qū)
一旦創(chuàng)建分區(qū),將無法更改分區(qū)數(shù)。當(dāng)您計劃進(jìn)入生產(chǎn)階段并且可能會從大量用戶那里接收事件時,您應(yīng)該事先進(jìn)行一些計算,并結(jié)合負(fù)載測試和數(shù)據(jù)使用情況,找出所需的確切分區(qū)數(shù)量。
有關(guān)基于Azure事件中心設(shè)計全球范圍遙測平臺和調(diào)整其大小的完整視頻指南,請觀看此視頻。
1吞吐量單位(下文以TU表示)等于1 MB/秒或1000條消息/秒,以先達(dá)到者為準(zhǔn)。您將需要為TU付費;要調(diào)整成本,您可以根據(jù)負(fù)載要求更改TU。
每個單獨分區(qū)的最大入口限制為1 MB/秒或1000條消息/秒,以先達(dá)到者為準(zhǔn)。請參考以下原則來確定分區(qū)數(shù):
分區(qū)提供高可用性。如果您要向事件中心發(fā)送消息并希望發(fā)送成功,則應(yīng)創(chuàng)建多個分區(qū)并使用EventHubClient.Send發(fā)送。
分區(qū)數(shù)將決定事件中心管道的寬度以及您可以接收和處理消息的速度。如果您的Azure事件中心有16個分區(qū),則其最大容量為16 TU。打個比方,分區(qū)就相當(dāng)于高速公路上的車道。
TU在命名空間級別進(jìn)行配置。同樣,一個事件中心命名空間可以有多個Azure事件中心。每個Azure事件中心可以有不同數(shù)量的分區(qū)。
您不能使用多于分區(qū)數(shù)的TU:如果您有3個分區(qū),則無法使用3個以上的TU。分區(qū)數(shù)通常多于TU數(shù),原因如下:
當(dāng)流量增加時,您可以增加TU數(shù),但不能更改分區(qū)數(shù)。
您的并發(fā)讀取器的數(shù)量不能多于分區(qū)數(shù)。如果您需要10個并發(fā)讀取器,則需要10個分區(qū)。
提示
推薦的路徑是在開發(fā)解決方案時以1 TU為起點對分區(qū)數(shù)進(jìn)行建模。完成此階段后,當(dāng)您在封閉測試期間進(jìn)行負(fù)載測試時,增加TU來適應(yīng)您的負(fù)載。提醒一下,您可以在同一事件中心命名空間中擁有多個Azure事件中心。因此,在Azure事件中心命名空間級別具有20個TU和具有4個分區(qū)的10個事件中心的情況下,每個可以在整個Azure事件中心命名空間中提供20 MBPS。
Azure Cosmos DB
Azure Cosmos DB資源依據(jù)設(shè)置的吞吐量和存儲計費。Azure Cosmos DB吞吐量以每秒請求單位的形式表示(下文以RU/s表示)。
為了提供可預(yù)測的性能,您應(yīng)該以100 RU/秒為單位預(yù)留吞吐量。您可以使用Azure Cosmos DB請求單位計算器來估計吞吐量需求。
提示
根據(jù)經(jīng)驗/最佳實踐,最大RU數(shù)不應(yīng)超過最小/穩(wěn)態(tài)吞吐量的20倍。
您可以立即提高到初始設(shè)置吞吐量的2倍。您可以異步增加到任何吞吐量值,最高異步提高到1M(通過支持票證可進(jìn)一步提高)。
您可以立即降低到初始設(shè)置吞吐量的10倍(總范圍為20倍)。但在某些情況下,有可能降低到此范圍以外。
有關(guān)詳細(xì)信息,請參閱在Azure Cosmos容器和數(shù)據(jù)庫上設(shè)置吞吐量。
Azure存儲帳戶限制
Azure存儲具有某些限制,詳見Azure訂閱服務(wù)限制頁面。
如果您的游戲需求超出了單個存儲帳戶的可伸縮性目標(biāo),您可以構(gòu)建應(yīng)用程序以使用多個存儲帳戶。然后,您可以跨這些存儲帳戶對數(shù)據(jù)對象進(jìn)行分區(qū)。
Azure存儲資源管理器
Azure存儲資源管理器是一種工具,可讓您輕松管理Azure存儲資源。上傳、下載和管理blob、文件、隊列、表和Azure Cosmos DB實體。輕松訪問以管理您的虛擬機(jī)磁盤。支持Windows、MacOS和Linux。
Azure流分析單位
選擇特定作業(yè)所需的流單位(下文以SU表示)的數(shù)量取決于作業(yè)中定義的輸入和查詢分區(qū)配置。最佳實踐是分配多于所需數(shù)量的SU。Azure流分析處理引擎以分配額外內(nèi)存為代價對延遲和吞吐量進(jìn)行優(yōu)化。
通常,最佳實踐是對于不使用PARTITION BY的查詢,從6個SU開始,然后使用試錯法(即:傳入具有代表性的數(shù)據(jù)量后,檢查SU%利用率指標(biāo),然后修改SU數(shù))確定最佳數(shù)量。流分析作業(yè)所能使用的最大流單元數(shù)取決于為作業(yè)定義的查詢中的步驟數(shù),以及每一步中的分區(qū)數(shù)??稍诖颂幜私庥嘘P(guān)這些限制的詳細(xì)信息。
有關(guān)選擇合適數(shù)量的SU的詳細(xì)信息,請參閱下面的頁面:縮放Azure流分析作業(yè)以增加吞吐量
備注
選擇特定作業(yè)所需的SU數(shù)目時,需根據(jù)輸入的分區(qū)配置以及為作業(yè)定義的查詢來決定。您可以為一項作業(yè)選擇最多達(dá)到您的配額的SU。默認(rèn)情況下,對于特定區(qū)域中的所有分析作業(yè),每個Azure訂閱有多達(dá)200 SU的配額。要使訂閱的SU數(shù)量超出此配額,必須與Microsoft支持聯(lián)系。每個作業(yè)的SU的有效值為1、3、6,以6為增量遞增。
此外,Azure流分析使用可變大小批次處理事件和寫入輸出。通常,Azure流分析引擎不會一次寫入一條消息,而是使用批處理來提高效率。當(dāng)傳入和傳出事件的發(fā)生率都很高時,它將使用較大的批次。當(dāng)出口速率較低時,它將使用較小的批次,以保持較低的延遲。請參閱輸出批次大小頁面,該頁面介紹一些關(guān)于輸出批次的Azure流分析注意事項。
Azure Database for MySQL
使用Azure Database for MySQL開發(fā)“云-本機(jī)”游戲應(yīng)用程序時,重試邏輯和連接池是必不可少的組件。將Azure Database for MySQL數(shù)據(jù)庫游戲構(gòu)建為檢測和重試斷開的連接和失敗的事務(wù)至關(guān)重要。當(dāng)應(yīng)用程序重試時,應(yīng)用程序的連接將透明地重定向到新創(chuàng)建的實例,該實例接管發(fā)生故障的實例。Azure內(nèi)部使用網(wǎng)關(guān)將連接重定向到此新實例。發(fā)生中斷時,整個故障轉(zhuǎn)移過程通常需要數(shù)十秒鐘。由于重定向是由網(wǎng)關(guān)內(nèi)部處理的,因此外部連接字符串對于客戶端應(yīng)用程序保持不變。大多數(shù)游戲應(yīng)用程序?qū)ρ舆t的要求都很低,因此強(qiáng)烈建議為運行在Azure Database for MySQL上的游戲應(yīng)用程序使用連接池。如果不使用連接池,在會話結(jié)束時打開和關(guān)閉連接可能會導(dǎo)致額外的延遲開銷。請參閱管理連接,了解如何在訪問數(shù)據(jù)庫時合理使用連接。
關(guān)于縱向擴(kuò)展或收縮:當(dāng)縱向擴(kuò)展或收縮Azure Database for MySQL時,將創(chuàng)建具有指定大小的新服務(wù)器實例。現(xiàn)有數(shù)據(jù)存儲與原始實例分離,然后附加到新實例。在縮放操作期間,數(shù)據(jù)庫連接將發(fā)生中斷??蛻舳藨?yīng)用程序斷開連接,打開的未提交事務(wù)將被取消。客戶端應(yīng)用程序重試連接或建立新連接后,網(wǎng)關(guān)將連接定向到新調(diào)整大小的實例。有關(guān)詳細(xì)信息,請參閱縮放資源。
以下鏈接介紹容量、存儲引擎支持、權(quán)限支持、數(shù)據(jù)操作語句支持以及數(shù)據(jù)庫服務(wù)中的功能限制。
值得注意的是,當(dāng)可用存儲空間不足5 GB或設(shè)置存儲的5%時,服務(wù)器會被標(biāo)記為只讀,建議您設(shè)置警報以在服務(wù)器存儲空間接近閾值時通知您,以便您可以避免進(jìn)入只讀狀態(tài)。有關(guān)詳細(xì)信息,請參閱有關(guān)如何設(shè)置警報的文檔。
Azure容器實例
通常,建議在Windows上通過Azure容器實例使用Linux,因為Windows容器通常是較重的部署映像,需要更長的時間來啟動和加載。此外,通過Azure容器實例使用Linux還能提供一些Windows當(dāng)前尚不支持的功能集,例如虛擬網(wǎng)絡(luò)。