你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文为多租户解决方案的架构师和开发人员提供一系列链接和资源。
多租户应用程序的体系结构
以下文章提供了 Azure 上的多租户体系结构的示例。
体系结构 | 摘要 | 技术重点 |
---|---|---|
Azure 上的多租户软件即服务 (SaaS) | Azure 上的多租户 SaaS 方案的参考体系结构,该体系结构部署在多个区域 | 网络 |
将应用程序网关入口控制器(AGIC)与多租户 Azure Kubernetes 服务(AKS)群集配合使用 | 如何使用 AKS 和 AGIC 实现多租户的示例 | Kubernetes |
所有多租户体系结构 | 列出所有包含多租户的体系结构 | 多个 |
云设计模式
以下云设计模式经常在多租户体系结构中使用。
图案 | 摘要 |
---|---|
部署戳模式 | 部署应用程序组件的多个独立副本(或缩放单元),包括数据存储。 |
联合标识 | 将身份验证委托给外部标识提供者。 |
守门员 | 通过使用专用主机实例来保护应用程序和服务,该实例充当客户端与应用程序或服务之间的中转站,验证和清理请求,并在它们之间传递请求和数据。 |
基于队列的负载调控 | 使用一个队列,该队列充当任务与它调用的服务之间的缓冲区,以便平滑间歇性密集型负载。 |
分片 | 将数据存储划分为一组水平分区或分片。 |
限制 | 控制应用程序实例、单个租户或整个服务使用的资源消耗。 |
反模式
考虑 吵闹邻居反模式,在这种情况下,一个租户的活动可能会对另一个租户使用系统产生负面影响。
Microsoft Azure 架构良好的框架
如果设计 SaaS,请使用 适用于 SaaS 的 Microsoft Azure Well-Architected Framework 工作负载 来获取特定于 SaaS 解决方案的可作体系结构指南。
Well-Architected 框架的全部功能对于所有解决方案(包括多租户体系结构)都很重要,但请特别注意可靠性支柱。 云托管的性质会导致应用程序通常是多租户、使用共享平台服务、竞争资源和带宽、通过 Internet 通信,并在商品硬件上运行。 此环境会增加暂时性故障和更永久性故障发生的可能性。
多租户体系结构指导
在 Azure 上设计架构多租户解决方案(视频):此视频介绍如何在 Azure 上设计、架构和构建多租户解决方案。 如果构建 SaaS 产品或其他多租户服务,在规划高性能、租户隔离和部署管理时需要考虑很多问题。 此会话面向构建多租户或 SaaS 应用程序的开发人员和架构师,包括初创公司和 ISV。
Azure Friday - 在 Azure 上构建多租户解决方案 (视频):Azure 上的此视频介绍如何在 Azure 上设计、架构和构建多租户 SaaS 解决方案。
加速并降低您的 SaaS 旅程风险(视频):此视频提供了有关如何过渡到 SaaS 交付模型的指南,无论您是在将现有解决方案从本地迁移到 Azure、还是考虑多租户架构,抑或是将现有的 SaaS Web 应用程序进行现代化。
有关 Azure 服务的资源
使用以下资源帮助你在 Azure 上构建多租户体系结构。
管理和符合性
组织和管理多个 Azure 订阅:请务必考虑如何管理 Azure 订阅以及如何将租户资源分配给订阅。
跨租户管理体验:作为服务提供商,可以使用 Azure Lighthouse 从自己的Microsoft Entra 租户中管理多个客户的资源。 通过使用 Azure 委派资源管理,可以在托管租户间执行许多任务和服务。
Azure 托管的应用程序:在托管应用程序中,资源将部署到应用发布者管理的资源组。 资源组在使用者的订阅中,但发布者租户中的标识有权访问该资源组。
计算
AKS 中群集隔离的最佳做法:AKS 提供了运行多租户群集和隔离资源的灵活性。 为了最大化 Kubernetes 的投资回报,必须首先了解并实施 AKS 多租户和隔离功能。 本最佳做法文章向群集操作员重点介绍隔离。
AKS 中群集安全性和升级的最佳做法:在 AKS 中管理群集时,工作负荷和数据安全性是一个关键考虑因素。 使用逻辑隔离运行多租户群集时,保护资源和工作负荷访问至关重要。
网络
Azure 专用链接
- 从提供商 (SaaS ISV) 和消费者的角度看 Azure 专用链接服务说明和演示:一段视频,介绍了支持多租户服务提供商(例如构建 SaaS 产品的独立软件供应商)的 Azure 专用链接服务功能。 此解决方案让使用者能够使用自己的 Azure 虚拟网络的专用 IP 地址访问提供者的服务。
- 带有 Azure 专用链接服务的 TCP 代理协议 v2 - 深入探讨:一段视频,深入探讨了 TCP 代理协议 v2,这是 Azure 专用链接服务的高级功能。 在多租户和 SaaS 方案中都非常有用。 这段视频向你展示了如何在 Azure 专用链接服务中启用代理协议 v2。 它还向你展示了如何配置 NGINX 服务以读取原始客户端的源专用 IP 地址(而不是 NAT IP),以通过专用终结点访问服务。
-
使用 NGINX Plus 解码来自 Azure 专用链接服务的代理协议 TLV
linkIdentifier
:一段视频,介绍如何使用 NGINX Plus 从 Azure 专用链接服务获取 TCP 代理协议 v2 TLV,然后。 该视频演示如何提取和解码专用终结点连接的数字linkIdentifier
(也称为LINKID
)。 此解决方案对于需要识别建立连接的特定使用者租户的多租户提供商很有用。 - SaaS 私密连接模式:一个示例解决方案,说明了使用 Azure 托管应用自动化审批专用终结点连接的方法之一。
网络
- SaaS 解决方案的基于声明的路由:本文介绍了反向代理的使用,以方便租户路由和将请求映射到租户,从而增强 SaaS 解决方案中后端服务的管理。
存储和数据
使用 Azure Cosmos DB 大规模设计和构建多租户 SaaS 应用 (视频):了解如何使用 Azure Cosmos DB 设计和优化多租户 SaaS 应用程序。 此会话探讨与租户隔离、成本优化和全局分发相关的关键设计注意事项。 此会话的内容适用于无论您是拥有大量小型企业对消费者(B2C)租户还是少量高度集中的企业对企业租户。
Azure Cosmos DB 和多租户系统:讨论如何构建使用 Azure Cosmos DB 的多租户系统的博客文章。
Azure Cosmos DB 分层分区键:通过使用分层分区键(也称为子分区技术),可在本机使用多个级别的分区键对容器进行分区。 此方法为使用综合分区键的多租户方案或工作负荷启用更最佳的分区策略。
Azure SQL 数据库多租户 SaaS 数据库租户模式:一组文章介绍了可用于多租户 SaaS 应用程序的各种租户模型,使用 Azure SQL 数据库。
为大型 SaaS 提供程序在 Azure SQL 上运行 100 万个数据库:Microsoft Dynamics 365 和 Power Platform:一篇博客文章,介绍了 Dynamics 365 团队如何大规模管理数据库。
水平、垂直和功能数据分区:在许多大规模的多租户解决方案中,数据被划分为可以单独管理和访问的分区。 分区可以改善可伸缩性、减少争用,以及优化性能。 它还可以提供一种按使用模式和租户划分数据的机制。
Azure 服务的数据分区策略:此文介绍了在各种 Azure 数据存储中对数据进行分区的一些策略。
使用 Azure Cosmos DB 和 Azure 构建多租户 SaaS (视频):一个真实案例,介绍了多租户 SaaS 初创公司 Whally 如何从头开始在 Azure Cosmos DB 和 Azure 上构建新式平台。 Whally 显示了它们与分区、数据建模、安全多租户、性能和从更改源到 SignalR 的实时流式处理相关的设计和实现决策,所有这些都使用 Azure 应用服务上的 ASP.NET Core。
消息传送
Azure 事件网格域:Azure 事件网格域使您能够大规模管理多租户事件架构。
使用 Azure 服务总线进行跨租户通信:Azure 服务总线的示例实现,演示如何在中心提供商与一个或多个客户(或租户)之间进行通信。
身份
Microsoft Entra ID 中的租户:Microsoft Entra ID 有自己的多租户概念,即跨多个 Microsoft Entra 目录运行。 当开发人员使用 Microsoft Entra 应用时,他们可选择将其应用配置为单租户或多租户,从而支持不同的场景。
使用 Microsoft 标识平台终结点构建多租户守护程序:此示例应用程序演示如何使用 Microsoft 标识平台终结点在长时间运行的后台进程中访问微软商业客户的数据。 它使用 OAuth2 客户端凭据授权获取访问令牌,然后使用该令牌调用 Microsoft Graph 并访问组织数据。
使用 Microsoft Entra ID 对多租户应用进行身份验证和授权:了解如何通过 Microsoft Entra ID 在多租户场景中增强云原生应用的功能。
在 SaaS 解决方案中使用 Microsoft Entra ID 定义和实现权限、角色和范围:本文介绍与 SaaS 提供程序可以使用的 Microsoft Entra 身份验证和授权相关的三个主要概念。 它涵盖应用程序角色功能、委派和应用程序权限以及范围功能。
分析
- 使用 Power BI 嵌入式分析的多租户解决方案:设计包含 Power BI Embedded 的多租户应用程序时,必须仔细选择最适合需求的租赁模型。
物联网
- IoT 中心设备预配服务中的多租户:多租户 IoT 解决方案通常使用一组分散在各个区域的 IoT 中心来分配租户设备。
AI 和机器学习
设计安全多租户 Retrieval-Augmented 生成(RAG)推理解决方案的指南:本文档介绍如何在多租户解决方案中应用 RAG 模式,其中需要将特定于租户的数据用于推理。
多租户 SaaS 应用程序和 Azure AI 搜索的设计模式:本文档介绍使用 AI 搜索生成的多租户应用程序的租户隔离策略。
多租户方式机器学习管道的解决方案:此博客文章介绍了如何使用 Azure 机器学习工作区设计 Azure 机器学习管道来支持多个租户。
社区内容
Kubernetes
Kubernetes 的三个租户模型:Kubernetes 群集通常由组织中的多个团队使用。 此文介绍了 Kubernetes 的三种租户模型。
了解 Kubernetes 多租户:Kubernetes 不是现成的多租户系统。 它需要自定义配置。 本文介绍了 Kubernetes 多租户类型。
Kubernetes 多租户最佳实践指南:随着 Kubernetes 的使用不断扩展,越来越多的组织对 Kubernetes 多租户解决方案产生了兴趣。然而,由于 Kubernetes 并不是一个明确的多租户系统,设计多租户的 Kubernetes 实现可能会很具挑战性。 本文探讨了这些挑战、提供了克服这些挑战的方法,并介绍了一些用于 Kubernetes 多租户的有用工具。
胶囊:简化 Kubernetes 多租户管理:Capsule 有助于在您的 Kubernetes 集群中实现多租户和基于策略的环境。 它不是一个“平台即服务 (PaaS)”产品,而是一个基于微服务的生态系统,且采用了极简设计方法并仅使用上游 Kubernetes。
跨平面:云原生控制平面框架:跨平面使你能够使用基于 Kubernetes 的方法为自己的解决方案构建控制平面。
贡献者
Microsoft维护本文。 以下参与者撰写了本文。
主要作者:
- John Downs | 首席软件工程师
- Paolo Salvatori | FastTrack for Azure 首席客户工程师
- Arsen Vladimirskiy | FastTrack for Azure 首席客户工程师
- LaBrina Loving | FastTrack for Azure 首席客户工程经理
若要查看非公开的LinkedIn个人资料,请登录LinkedIn。