多租户可扩展性模式

Patterns of multi-tenant scalability

我正在寻找一些关于软件架构可扩展性模式和最佳实践的资源,这在以下意义上需要多租户:

在多个应用程序为用户体验的不同阶段提供服务的环境中。

我真的在这里寻找一般原则,例如站立、自动化、工具和配置的方法,因为它们与扩展到其他用户有关 bases/iterations。

你的问题很宽泛,有几个观点可以讨论

  1. 自定义配置

1.1 基于用户

如果您打算允许用户自定义配置应用程序,则必须基于每个用户维护它们,并且如果一个用户可以访问不同的公司[多租户中的租户],您还必须按租户和用户组合隔离数据

有多种级别,例如用户翻转开关打开和关闭功能,甚至在用户级别许可产品。前者仅需要基于用户的自由裁量权。然而,后者可能需要一个像模型这样的工作流程,用户可以从他的管理员那里提出对某项功能的请求,管理员批准该请求,然后用户可以访问新请求的功能

1.2 基于租赁

在基于租户的定制模型的情况下,将有多个级别,例如让公司 [租户] 订阅计划以获得对各种应用程序功能的访问权限。

此外,租户必须配置公司工作区,例如提供用于付款的信用卡详细信息、公司特定电子邮件的电子邮件配置等。这还涉及打开/关闭开关的翻转,从而实现功能工作更有活力

  1. 关于您计划的几个应用程序,它们确实需要 SSO 以及跨应用程序的配置和公司特定数据流。可以有需要存储和维护的公司[租户]特定数据库,可以使用 Azure Shard Map 或类似数据库

  2. 有一个代码库扩展,可以由您的 PaaS 提供商(如 Azure)按需配置。但是,应用程序需要以一种方式开发,以便它可以支持数据库分区和缩放。这必须考虑数据隔离等因素

有多种 PaaS 提供商需要根据您现有和未来/预测的用户群来决定,然后可以决定和选择相同的提供商。

Microsoft 在下面给出了一些关于多租户的不错的文章

https://msdn.microsoft.com/en-us/library/aa479086.aspx

https://msdn.microsoft.com/en-us/library/dd430340.aspx

侧边栏还有大量链接,可帮助您了解更多信息和选择方法。

HTH