多租使用者解決方案架構設計人員和開發人員的資源
多租使用者應用程式的架構
下列文章提供 Azure 上多租用戶架構的範例。
架構 | 摘要 | 技術焦點 |
---|---|---|
Azure 上的多租用戶 SaaS | Azure 上多租使用者 SaaS 案例的參考架構,此案例部署在多個區域中 | Web |
搭配多租使用者 Azure Kubernetes Service 使用 應用程式閘道 輸入控制器 (AKS) | 使用 AKS 和 AGIC 實作多租用戶範例 | Kubernetes |
所有多租用戶架構 | 列出包含多租使用者的所有架構 | 多個 |
雲端設計模式
下列 雲端設計模式 經常用於多租用戶架構。
模式 | 摘要 |
---|---|
部署戳記模式 | 部署應用程式元件的多個獨立複本(縮放單位),包括數據存放區。 |
同盟身分識別 | 將驗證委派給外部識別提供者。 |
把關 | 使用專用主機實例來保護應用程式和服務,以作為用戶端與應用程式或服務之間的訊息代理程式、驗證和清理要求,並在它們之間傳遞要求和數據。 |
佇列型負載撫平 | 使用佇列,做為工作與叫用之服務之間的緩衝區,以便順暢間歇性繁重的負載。 |
分區化 | 將數據存放區分割成一組水平數據分割或分區。 |
節流 | 控制應用程式實例、個別租用戶或整個服務所使用的資源耗用量。 |
反模式
請考慮 Noisy Neighbor 反模式,其中一個租用戶的活動可能會對另一個租用戶的系統使用產生負面影響。
Microsoft Azure Well-Architected Framework
雖然整個 Azure 架構完善的架構 對於所有解決方案都很重要,但 請特別注意可靠性要素。 雲端裝載的本質會導致應用程式通常是多租使用者、使用共用平臺服務、競爭資源和頻寬、透過因特網通訊,以及在商用硬體上執行。 這會增加暫時性錯誤和更永久性錯誤發生的可能性。
多租用戶架構指引
- 在 Azure 上建構多租用戶解決方案(影片):這段影片討論如何在 Azure 上設計、架構及建置多租用戶解決方案。 如果您要建置 SaaS 產品或其他多租使用者服務,當您規劃高效能、租用戶隔離及管理部署時,需要考慮很多問題。 此研討會旨在建置多租使用者或 SaaS 應用程式的開發人員和架構設計人員,包括啟動和 ISV。
- Azure Friday - 在 Azure 上建構多租使用者解決方案(影片):這段來自 Azure 的影片討論如何在 Azure 上設計、架構及建置多租使用者軟體即服務 (SaaS) 解決方案。
- 加速和取消風險您的 SaaS 旅程(影片):此影片提供轉換至軟體即服務 (SaaS ) 傳遞模型的指引 - 無論您是從內部部署解除和轉移現有解決方案到 Azure,考慮多租用戶架構,或想要將現有的 SaaS Web 應用程式現代化。
Azure 服務的資源
治理和合規性
- 組織和管理多個 Azure 訂用帳戶:請務必考慮如何管理 Azure 訂用帳戶,以及如何將租用戶資源配置給訂用帳戶。
- 跨租使用者管理體驗:身為服務提供者,您可以使用 Azure Lighthouse 來管理資源的多個客戶,從您自己的Microsoft Entra 租使用者。 您可以使用 Azure 委派的資源管理,跨受控租用戶執行許多工作和服務。
- Azure 受控應用程式:在受控應用程式中,資源會部署到由應用程式發行者所管理的資源群組。 資源群組存在於取用者的訂用帳戶中,但發行者租使用者中的身分識別可以存取資源群組。
計算
- Azure Kubernetes Service 中叢集隔離的最佳做法:AKS 可讓您彈性地執行多租使用者叢集,並隔離資源。 若要最大化您對 Kubernetes 的投資,您必須先瞭解並實作 AKS 多租使用者和隔離功能。 這個最佳做法文章著重於叢集操作員的隔離操作。
- Azure Kubernetes Service 中叢集安全性和升級的最佳做法:當您在 Azure Kubernetes Service (AKS) 中管理叢集時,工作負載和數據安全性是一個關鍵考慮。 當您使用邏輯隔離執行多租使用者叢集時,尤其需要保護資源和工作負載存取。
網路
私人連結
- 來自提供者 (SaaS ISV) 和取用者觀點的 Azure Private Link 服務說明和示範:查看 Azure Private Link 服務功能的影片,可啟用多租使用者服務提供者(例如建置 SaaS 產品的獨立軟體廠商)。 此解決方案可讓取用者使用取用者自有 Azure 虛擬網路的私人 IP 位址來存取提供者的服務。
- 搭配 Azure Private Link 服務的 TCP Proxy 通訊協定 v2 — 深入探討:呈現 TCP Proxy 通訊協定 v2 的影片,這是 Azure Private Link 服務的進階功能。 在多租使用者和 SaaS 案例中很有用。 影片示範如何在 Azure Private Link 服務中啟用 Proxy 通訊協定 v2。 它也會示範如何設定 NGINX 服務,以讀取原始用戶端的來源私人 IP 位址,而不是 NAT IP,以透過私人端點存取服務。
- 使用 NGINX Plus 從 Azure Private Link 服務譯碼 Proxy 通訊協定 TLV:影片會查看如何使用 NGINX Plus 從 Azure Private Link 服務取得 TCP Proxy 通訊協定 v2 TLV
linkIdentifier
。 影片示範如何擷取和譯碼私人端點聯機的數值linkIdentifier
,也稱為LINKID
。 此解決方案適用於需要識別建立連線之特定取用者租使用者的多租使用者提供者。 - SaaS 私人連線模式:範例解決方案說明使用 Azure 受控應用程式自動核准私人端點連線的方法。
Web
- SaaS 解決方案的宣告型路由:本文討論反向 Proxy 的使用方式,以協助租使用者路由和將要求對應至租使用者,增強 SaaS 解決方案中的後端服務管理。
記憶體和數據
- 使用 Azure Cosmos DB 大規模設計和建置多租使用者 SaaS 應用程式(影片):瞭解如何使用 Azure Cosmos DB 設計和優化多租使用者 SaaS 應用程式。 此會話會探索與租用戶隔離、成本優化和全域散發相關的重要設計考慮。 此會話的內容適用於您擁有大量小型 B2C 租使用者,或大量高度扭曲的 B2B 租使用者。
- Azure Cosmos DB 和多租用戶系統:一篇部落格文章,討論如何建置使用 Azure Cosmos DB 的多租用戶系統。
- Azure Cosmos DB 階層式分割區索引鍵:藉由使用階層式分割索引鍵,也稱為子分割,您就能以多個分割區索引鍵層級原生方式分割容器。 這可為使用綜合數據分割索引鍵的多租使用者案例或工作負載啟用更理想的數據分割策略。
- Azure SQL 資料庫 多租使用者 SaaS 資料庫租用模式:一組文章說明使用 Azure SQL 資料庫 的多租使用者 SaaS 應用程式可用的各種租用模型。
- 在 Azure SQL 上為大型 SaaS 提供者執行 100 萬個資料庫:Microsoft Dynamics 365 和 Power Platform:部落格文章,說明 Dynamics 365 小組如何大規模管理資料庫。
- 使用超大規模資料庫 適用於 PostgreSQL 的 Azure 資料庫 設計多租用戶資料庫
- 水平、垂直和功能性數據分割:在許多大規模和多租用戶解決方案中,數據會分割成可分開管理和存取的數據分割。 資料分割可以改善延展性、減少爭用,以及最佳化效能。 它也可以提供一種機制來分割數據、依使用模式和租使用者。
- Azure 服務的數據分割策略:本文說明在各種 Azure 數據存放區中分割數據的一些策略。
- 使用 適用於 PostgreSQL 的 Azure 資料庫 超大規模 Citus 建置多租使用者應用程式 (影片)
- 使用 Azure Cosmos DB 的多租使用者應用程式 (影片)
- 使用 Azure Cosmos DB 和 Azure 建置多租使用者 SaaS(影片):真實世界的案例研究,說明多租使用者 SaaS 初創公司 Whally 如何在 Azure Cosmos DB 和 Azure 上從頭開始建置現代化平臺。 Whally 會顯示它們與分割、數據模型化、安全多租使用者、效能、從變更摘要到 SignalR 等即時串流相關的設計和實作決策,全都使用 Azure App 服務 上的 ASP.NET Core。
- Azure SQL 資料庫 上 SaaS 應用程式的多租用戶設計模式 (影片)
傳訊
- Azure 事件方格 網域:Azure 事件方格 網域可讓您大規模管理多租使用者事件架構。
- 服務匯流排 範例:使用 Azure 服務匯流排 的跨租用戶通訊:示範如何在中央提供者與一或多個客戶(租用戶)之間進行通訊的 Azure 服務匯流排 範例實作。
身分識別
- Microsoft Entra 標識符中的租用:Microsoft Entra ID 有自己的多租使用者概念,其是指跨多個Microsoft Entra 目錄運作。 當開發人員使用 Microsoft Entra 應用程式時,他們可以選擇將其應用程式設定為單一租使用者或多租使用者,以支援不同的案例。
- 使用 Azure AD B2C 的自訂品牌身分識別解決方案:Azure Active Directory B2C 是客戶身分識別存取管理解決方案,每天可支持數百萬用戶和數十億個驗證。
- 使用 Microsoft 身分識別平台 端點建置多租使用者精靈:此範例應用程式示範如何使用 Microsoft 身分識別平台 端點,在長時間執行的非互動式程式中存取Microsoft商務客戶的數據。 它會使用 OAuth2 用戶端認證授與來取得存取令牌,然後用來呼叫 Microsoft Graph 並存取組織數據。
- 使用 Microsoft Entra ID 驗證和授權多租使用者應用程式:瞭解 Microsoft Entra ID 如何讓您改善多租使用者案例中的雲端原生應用程式功能。
- Azure 架構逐步解說:針對 B2C 案例建置多租使用者 Azure 架構:逐步解說使用 Azure Active Directory B2C 和 API 管理 的多租使用者行動應用程式背後的架構。
- 在 SaaS 解決方案中使用 Microsoft Entra ID 定義和實作許可權、角色和範圍:本文涵蓋三個主要概念,這些概念與 Microsoft Entra 驗證和授權相關,可供 SaaS 提供者使用。 它涵蓋應用程式角色功能、委派和應用程式許可權,以及範圍功能。
分析
- 使用 Power BI 內嵌式分析的多租使用者解決方案:設計包含 Power BI Embedded 的多租使用者應用程式時,您必須仔細選擇最符合您需求的租用模型。
IoT
- IoT 中樞 裝置布建服務中的多租使用者:多租使用者IoT解決方案通常會使用分散於各個區域的IoT中樞群組來指派租用戶裝置。
AI/ML
- 多租使用者 SaaS 應用程式和 Azure 認知搜尋 的設計模式:本文件討論使用 Azure 認知搜尋 建置的多租使用者應用程式租用戶隔離策略。
- 多租使用者方式的 ML 管線解決方案:此部落格文章說明如何使用 Azure 機器學習 工作區,設計 Azure 機器學習 管線來支援多個租使用者。
社群內容
Kubernetes
- 適用於 Kubernetes 的三個租用模型:Kubernetes 叢集通常供組織中的數個小組使用。 本文說明 Kubernetes 的三個租用模型。
- 瞭解 Kubernetes 多重租用:Kubernetes 不是現成的多租用戶系統,而且需要自定義設定。 本文說明 Kubernetes 多租用戶類型。
- Kubernetes 多租使用者 – 最佳做法指南:Kubernetes 多租使用者是組織隨著 Kubernetes 使用量分散而越來越感興趣的主題。不過,由於 Kubernetes 不是明確多租用戶系統,因此設計多租使用者 Kubernetes 實作可能會很困難。 本文說明這些挑戰,以及如何克服這些挑戰,以及 Kubernetes 多租使用者的一些實用工具。
- Capsule:Kubernetes 多租用戶簡化:Capsule 可協助您在 Kubernetes 叢集中實作多租使用者和原則型環境。 它不是平臺即服務(PaaS)供應專案,而是使用上游 Kubernetes 的微服務型生態系統,採用極簡設計方法。
- 跨平面:雲端原生控制平面架構:Crossplane 可讓您使用 Kubernetes 型方法,為自己的解決方案建置控制平面。
參與者
本文由 Microsoft 維護。 原始投稿人如下。
主要作者:
- John Downs |首席軟體工程師
- Paolo Salvatori |適用於 Azure 的主要客戶工程師 FastTrack
- 阿森·弗拉基米爾斯基 | 適用於 Azure 的主要客戶工程師 FastTrack
- 拉布琳娜愛 |主要客戶工程經理,適用於 Azure 的 FastTrack
若要查看非公開的 LinkedIn 設定檔,請登入 LinkedIn。