多租用戶解決方案中的 Azure 資源組織

Azure
Azure Resource Manager
Microsoft Entra ID

Azure 提供許多選項來組織您的資源。 在多租使用者解決方案中,當您規劃資源組織策略時,需要考慮特定的取捨。 在本文中,我們會檢閱組織 Azure 資源的兩個核心元素:租用戶隔離,並跨多個資源相應放大。 我們描述一些可支援不同租用戶隔離模型的常見部署方法。 我們也說明如何使用 Azure 的資源限制和配額,以及如何調整您的解決方案超出這些限制。

重要考慮和需求

租用戶隔離需求

當您在 Azure 中部署多租使用者解決方案時,您必須決定要將資源獻給每個租用戶,還是要在多個租用戶之間共用資源。 在本系列的多租使用者方法和 服務特定指引 章節中,我們會描述許多資源類別的選項和取捨。 一般而言,租用戶 隔離有一系列選項。 如需如何決定隔離模型的詳細資訊,請檢閱 租使用者模型以考慮使用多租用戶解決方案

調整

大部分的 Azure 資源,以及資源群組和訂用帳戶,都會施加可能會影響您調整能力的限制。 您可能需要考慮 相應放大量化封裝 ,以符合您規劃的租用戶數目或計劃的系統負載。

如果您確定不會成長到大量租使用者或高負載,請不要過度工程您的向外延展方案。 但是,如果您打算讓解決方案成長,請仔細考慮您的向外延展計劃。 請遵循本文中的指引,確定您建構調整規模。

如果您有自動化部署程式,且需要跨資源進行調整,請決定如何在多個資源實例之間部署和指派租使用者。 例如,您會如何偵測到您接近可指派給特定資源的租用戶數目? 您是否計劃在需要時及時部署新的資源? 或者,您是否會事先部署資源集區,讓資源集區可供您在需要時使用?

提示

在設計和開發的早期階段,您可能不會選擇實作自動化向外延展程式。 您仍應該考慮並清楚記錄在您成長時調整所需的程式。 藉由記錄程式,您可以更輕鬆地在未來出現需要時自動執行這些程式。

請務必避免在整個程式代碼和設定中進行任何假設,以限制您調整的能力。 例如,您可能需要在未來向外延展至多個記憶體帳戶,因此當您建置應用層時,請確定它可以根據作用中租用戶動態切換它所連線的記憶體帳戶。

要考慮的方法和模式

租用戶隔離

Azure 資源會透過階層部署和管理。 大部分的資源都會部署到訂用帳戶中包含的資源群組中。 管理群組 會以邏輯方式將訂用帳戶群組在一起。 所有這些階層層都與 Microsoft Entra 租用戶相關聯。

當您決定如何為每個租使用者部署資源時,您可能會在階層中的不同層級隔離。 每個選項都適用於特定類型的多租用戶解決方案,而且具有優點和取捨。 針對解決方案的不同元件,使用不同的隔離模型結合方法也很常見。

共用資源內的隔離

您可以選擇在多個租用戶之間共用 Azure 資源,並在單一實例上執行其所有工作負載。 檢閱您用來瞭解任何可能重要之特定考慮或選項的 Azure 服務特定指引

當您執行單一資源實例時,您必須考慮調整規模時可能達到的任何服務限制、訂用帳戶限制或配額。 例如,Azure Kubernetes Service (AKS) 叢集支持的節點數目上限,記憶體帳戶所支援的每秒交易數目上限。 當您接近這些限制時,請考慮如何 調整為多個共享資源

您也需要確保應用程式程式代碼完全瞭解多租使用者,並限制存取特定租用戶的數據。

作為共用資源方法的圖例,假設 Contoso 正在建置包含 Web 應用程式、資料庫和記憶體帳戶的多租使用者 SaaS 應用程式。 他們可能會決定部署共用資源來服務其所有客戶。 在下圖中,所有客戶都會共用一組資源。

此圖顯示所有客戶共用的單一資源集。

分隔資源群組中的資源

您也可以為每個租使用者部署專用資源。 您可以為單一租使用者部署解決方案的完整複本。 或者,您可能會在租用戶之間共用某些元件,而其他元件則專用於特定租使用者。 這種方法稱為 水平數據分割

建議您使用資源群組來管理具有相同生命周期的資源。 在某些多租用戶系統中,將多個租用戶的資源部署至單一資源群組或一組資源群組是合理的。

請務必考慮如何部署和管理這些資源,包括 部署管線或應用程式起始租使用者特定資源的部署。 您也需要判斷如何 清楚識別特定資源與特定租用戶有關。 請考慮使用明確的 命名慣例策略資源標籤或租使用者目錄資料庫。

最好針對您在多個租用戶之間共用的資源,以及針對個別租使用者部署的資源,使用不同的資源群組。 不過,對於某些資源, Azure 會限制可部署到資源群組的單一類型資源數目。 此限制表示您可能需要隨著成長而 跨多個資源群組 進行調整。

假設 Contoso 有三個客戶(租使用者):Adventure Works、Fabrikam 和 Tailwind。 他們可能會選擇在三個租用戶之間共用 Web 應用程式和記憶體帳戶,然後為每個租使用者部署個別資料庫。 下圖顯示包含共用資源的資源群組,以及包含每個租使用者資料庫的資源群組。

此圖顯示包含共用資源的資源群組,以及另一個包含每個客戶資料庫的資源群組。

將訂用帳戶中的資源群組分開

當您為每個租使用者部署一組資源時,請考慮使用專用租使用者特定的資源群組。 例如,當您遵循 部署戳記模式時,每個戳記都應該部署到自己的資源群組。 您可以考慮將多個租使用者特定資源群組部署到共用的 Azure 訂用帳戶,這可讓您輕鬆地設定原則和存取控制規則。

您可以選擇為每個租使用者建立一組資源群組,以及針對任何共用資源建立共用資源群組。

當您將租使用者特定資源群組部署到共用訂用帳戶時,請注意每個訂用帳戶中的資源群組數目上限,以及套用至所部署資源的其他訂用帳戶層級限制。 當您接近這些限制時,您可能需要 跨多個訂用帳戶進行調整。

在我們的範例中,Contoso 可能會選擇為每個客戶部署戳記,並將戳記放在單一訂用帳戶內的專用資源群組中。 在下圖中,會為每個客戶建立包含三個資源群組的訂用帳戶。

此圖顯示包含三個資源群組的訂用帳戶,每個群組都是特定客戶的完整資源集。

個別訂用帳戶

藉由部署租使用者特定的訂用帳戶,您可以完全隔離租使用者特定資源。 此外,由於大多數配額和限制都會套用在訂用帳戶內,因此每個租使用者使用不同的訂用帳戶可確保每個租使用者都充分使用任何適用的配額。 針對某些 Azure 計費帳戶類型, 您可以以程式設計方式建立訂用帳戶。 您也可以使用 Azure 保留Azure 節省方案,跨訂用帳戶計算

讓您知道您可以建立的訂用帳戶數目。 視您與Microsoft或Microsoft合作夥伴的商業關係而定,訂用帳戶數目上限可能會有所不同,例如,如果您有 企業合約

不過,當您跨大量訂用帳戶工作時,要求增加配額可能會比較困難。 配額 API 提供某些資源類型的程式設計介面。 不過,對於許多資源類型,必須藉由 起始支援案例來要求增加配額。 當您使用許多訂用帳戶時,使用 Azure 支援 合約和支援案例也可能很困難。

請考慮將您的租使用者特定訂用帳戶分組到 管理群組 階層,以便輕鬆管理訪問控制規則和原則。

例如,假設 Contoso 決定為其三個客戶建立個別的 Azure 訂用帳戶,如下圖所示。 每個訂用帳戶都包含一個資源群組,其中包含該客戶的完整資源集。

顯示三個客戶特定訂用帳戶的圖表。每個訂用帳戶都包含一個資源群組,其中包含該客戶的完整資源集。

每個訂用帳戶都包含一個資源群組,其中包含該客戶的完整資源集。

他們會使用管理群組來簡化其訂用帳戶的管理。 藉由在 管理群組的名稱中包含 Production ,他們可以清楚地區分任何生產租使用者與非生產或測試租使用者。 非生產租用戶會套用不同的 Azure 訪問控制規則和原則。

其所有訂用帳戶都會與單一Microsoft Entra 租使用者相關聯。 使用單一Microsoft Entra 租使用者表示 Contoso 小組的身分識別,包括使用者和服務主體,可在整個 Azure 資產中使用。

個別Microsoft Entra 租使用者中的個別訂用帳戶

您也可以手動為每個租使用者建立個別Microsoft Entra 租使用者,或將資源部署到客戶Microsoft Entra 租使用者內的訂用帳戶。 不過,使用多個Microsoft Entra 租使用者,可讓您更難以驗證、管理角色指派、套用全域原則,以及執行許多其他管理作業。

警告

我們建議不要為大多數多租用戶解決方案建立多個Microsoft Entra 租使用者。 跨Microsoft Entra 租使用者的工作引進了額外的複雜度,並減少調整和管理資源的能力。 一般而言,此方法只會由代表其客戶操作 Azure 環境的受控服務提供者 (MSP) 使用。

在您努力部署多個Microsoft Entra 租使用者之前,請考慮您是否可以改為在單一租用戶內使用管理群組或訂用帳戶來達成需求。

如果您需要在系結至多個Microsoft Entra 租使用者的訂用帳戶中管理 Azure 資源,請考慮使用 Azure Lighthouse 來協助跨Microsoft Entra 租使用者管理您的資源。

例如,Contoso 可以為每個客戶建立個別Microsoft Entra 租使用者和個別的 Azure 訂用帳戶,如下圖所示。

此圖顯示每個 Contoso 租使用者的Microsoft Entra 租使用者,其中包含訂用帳戶和所需的資源。Azure Lighthouse 會連線至每個Microsoft Entra 租使用者。

Microsoft Entra 租用戶會針對每個 Contoso 的租用戶進行設定,其中包含訂用帳戶和所需的資源。 Azure Lighthouse 會連線至每個Microsoft Entra 租使用者。

Bin 封裝

無論您的資源隔離模型為何,請務必考慮解決方案在多個資源之間相應放大的時機和方式。 您可能需要在系統負載增加或租用戶數目增加時調整資源。 請考慮 量化封裝 ,以針對您的需求部署最佳的資源數目。

提示

在許多解決方案中,比較容易一起調整整個資源集,而不是個別調整資源。 請考慮遵循 部署戳記模式

資源限制

Azure 資源具有 在解決方案規劃中必須考慮的限制和配額 。 例如,資源可能支援並行要求數目上限或租使用者特定的組態設定。

您設定和使用每個資源的方式也會影響該資源的延展性。 例如,假設假設有一定數量的計算資源,您的應用程式可以成功回應每秒定義的交易數目。 除此之外,您可能需要向外延展。效能測試可協助您識別資源不再符合需求的時間點。

注意

即使您使用支援多個實例的服務,仍適用調整為多個資源的原則。

例如,Azure App 服務 支援相應放大方案的實例數目,但您可以調整單一方案有多遠有限制。 在大規模的多租用戶應用程式中,您可能會超過這些限制,而且需要部署更多 App Service 方案以符合您的成長。

當您在租用戶之間共用部分資源時,您應該先根據需求來判斷資源所支援的租用戶數目。 然後,部署所需的資源數量,以處理租用戶總數。

例如,假設您部署 Azure 應用程式閘道 做為多租使用者 SaaS 解決方案的一部分。 您可以檢閱應用程式設計、測試應用程式閘道負載下的效能,並檢閱其設定。 然後,您可以判斷單一應用程式閘道資源可以在100個客戶之間共用。 根據貴組織的成長計劃,您預期第一年內將150個客戶上線,因此您必須規劃部署多個應用程式網關來服務預期的負載。

顯示兩個應用程式閘道的圖表。第一個閘道專用於客戶 1 到 100,而第二個閘道則專用於客戶 101 到 200。

在上圖中,有兩個應用程式閘道。 第一個閘道專用於客戶 1 到 100,而第二個閘道則專用於客戶 101 到 200。

資源群組和訂用帳戶限制

無論您使用共用或專用資源,請務必考慮限制。 Azure 會限制可 部署到資源群組Azure 訂用帳戶中的資源數目。 當您接近這些限制時,您必須規劃跨多個資源群組或訂用帳戶進行調整。

例如,假設您將每個客戶的專用應用程式閘道部署到共用資源群組。 對於某些資源,Azure 支援 將最多800個相同類型的資源部署到單一資源群組。 因此,當您達到此限制時,您必須將任何新的應用程式閘道部署到另一個資源群組。 在下圖中,有兩個資源群組。 每個資源群組都包含800個應用程式閘道。

顯示兩個資源群組的圖表。每個資源群組都包含800個應用程式閘道。

跨資源群組和訂用帳戶的 Bin 套件租使用者

您也可以跨資源、資源群組和訂用帳戶套用 bin 封裝概念。 例如,當您有少量的租使用者時,您可能能夠部署單一資源,並在所有租用戶之間共用。 下圖顯示將 Bin 封裝成單一資源。

顯示將 Bin 封裝成單一資源的圖表。

隨著您成長,您可能會接近單一資源的容量限制,並相應放大至多個 (R) 資源。 下圖顯示跨多個資源的 bin 封裝。

此圖顯示跨多個資源的 Bin 封裝。

經過一段時間,您可能會達到單一資源群組中的資源數目限制,然後將多個 (R) 資源部署到多個 (G) 資源群組。 下圖顯示跨多個資源在多個資源群組中的 bin 封裝。

此圖顯示跨多個資源在多個資源群組中的 Bin 封裝。

隨著您成長得更大,您可以跨多個 (S) 訂用帳戶進行部署,每個訂用帳戶都包含具有多個 (R) 資源的多個 (G) 資源群組。 下圖顯示跨多個資源、多個資源群組和訂用帳戶的 Bin 封裝。

此圖顯示跨多個資源、多個資源群組和訂用帳戶的 Bin 封裝。

藉由規劃向外延展策略,您可以調整為極大量的租使用者,並維持高階負載。

標籤

資源標籤可讓您將自定義元數據新增至 Azure 資源,這對於管理和追蹤成本很有用。 如需詳細資訊,請參閱 使用資源標籤配置成本。

部署堆疊 (部分機器翻譯)

部署堆疊可讓您根據一般存留期將資源分組在一起,即使它們跨越多個資源群組或訂用帳戶也一樣。 當您部署租使用者特定資源時,部署堆疊很有用,特別是當您有部署方法需要將不同類型的資源部署到不同位置時,因為規模或合規性考慮。 如果單一租使用者已下架,部署堆疊也可讓您輕鬆地移除與單一租用戶相關的所有資源。 如需詳細資訊,請參閱 部署堆疊

要避免的反模式

  • 未規劃調整規模。 請確定您已清楚瞭解您將部署的資源限制,以及隨著負載或租用戶數目增加,哪些限制可能會變得重要。 規劃如何在調整規模時部署其他資源,並測試計劃。
  • 不打算收納套件。 即使您不需要立即成長,也請規劃在一段時間內跨多個資源、資源群組和訂用帳戶調整 Azure 資源。 避免在應用程式程式代碼中做出假設,就像未來可能需要調整為多個資源時有單一資源一樣。
  • 調整許多個別資源。 如果您有複雜的資源拓撲,可能會變得難以個別調整每個元件。 遵循部署戳記模式,將解決方案調整為單位通常更簡單。
  • 不需要時,為每個租使用者部署隔離的資源。 在許多解決方案中,為多個租使用者部署共用資源更有成本效益且更有效率。
  • 無法追蹤租使用者特定資源。 如果您部署租使用者特定資源,請確定您瞭解哪些資源會配置給哪些租使用者。 此資訊對於合規性目的、追蹤成本以及取消布建資源而言很重要,如果租使用者已下架。 請考慮使用資源標籤來追蹤資源上的租用戶資訊,並考慮使用部署堆疊將租使用者特定資源分組到邏輯單元中,而不論其位於的資源群組或訂用帳戶為何。
  • 使用個別Microsoft Entra 租使用者。 一般而言,無法布建多個Microsoft Entra 租使用者。 跨 Microsoft Entra 租使用者管理資源很複雜。 更輕鬆地跨連結至單一Microsoft Entra 租用戶的訂用帳戶進行調整。
  • 當您不需要調整時,階層架構。 在某些解決方案中,您確定永遠不會成長超過特定規模的層級。 在這些案例中,不需要建置複雜的調整邏輯。 不過,如果您的組織計劃成長,則您必須準備好調整規模,可能很快就會通知。

參與者

本文由 Microsoft 維護。 原始投稿人如下。

主體作者:

其他投稿人:

若要查看非公開的 LinkedIn 設定檔,請登入 LinkedIn。

下一步

檢閱 成本管理和配置 方法。