可以通过多种方式在 Azure 中设计和生成多租户解决方案。 有一种极端情况是可以在所有租户之间共享解决方案中的每个资源。 另一个极端是,可以为每个租户部署独立资源。 为每个租户部署单独的资源似乎很简单,并且适用于少量租户。 但是,它通常不提供成本效益,并且很难管理资源。 这些极端情况之间也有各种适合的方法,它们都需要再规模、隔离、成本效益、性能、实现复杂性和可管理性之间权衡。
在本部分中,我们将讨论构成解决方案的 Azure 服务的主要类别,包括计算、存储和数据、网络、部署、标识、消息传递、人工智能和机器学习以及 IoT。 对于每个类别,我们概述了在设计多租户解决方案时可以考虑的关键模式和方法,以及一些要避免的反模式。
部署戳模式
部署标记模式通常用于多租户解决方案。 它涉及为单个租户或一组租户部署专用基础结构。 单个标记可能服务多个租户,或者可能专用于单个租户。
使用单租户标记时,部署标记模式往往易于实现,因为每个标记可能不知道其他标记,因此无需将多租户逻辑或功能内置到应用程序层中。 当每个租户都有自己的专用标记时,此模式提供最高程度的隔离,并能缓解近邻干扰问题。 它还提供根据自己的要求配置或自定义租户的选项,例如位于特定的地缘政治区域或具有特定的高可用性要求。
使用多租户标记时,需要考虑其他模式来管理标记中的多租户,并且近邻干扰问题仍适用。 但是,通过使用部署标记模式,可以随着解决方案的增长而继续缩放。
部署标记模式用于为单个租户提供服务时,最大问题通常是基础结构的成本。 每个标记都需要有自己的单独的基础结构集,并且基础结构不会与其他租户共享。 还需要确保为标记部署的资源足以满足该租户工作负荷的峰值负载。 确保定价模型抵消租户基础结构的部署成本。
当你拥有少量租户时,单租户标记通常效果良好。 随着租户数量的增长,管理一组单租户标记可能越来越困难(将此案例研究作为示例)。 还可以应用部署标记模式来创建多租户标记,这可以为资源和成本共享带来好处。
若要实现部署标记模式,请务必使用自动化部署方法。 根据部署策略,可以使用声明性基础结构即代码(如 Bicep 文件或 Terraform 模板)在部署管道中管理标记。 或者,可以考虑生成自定义代码来部署和管理每个标记,例如使用 Azure SDK。
目标受众
本部分中的文章适用于解决方案架构师和多租户应用程序的首席开发人员,包括开发 SaaS 解决方案的独立软件供应商 (ISV) 和初创公司。 本部分中的大部分指南都是通用的,适用于类别中的多个 Azure 服务。
后续步骤
建议先查看多租户解决方案中资源组织的方法,然后再查看有关 Azure 服务特定类别的指导。