我正在寻找关于软件架构中可扩展性的模式和最佳实践的一些资源,这需要以下意义上的多租户:
在多个应用程序为用户的不同阶段提供服务的环境中。
我真的在这里寻找一般原则,比如站立,自动化,工具和配置的方法,因为它们与扩展到其他用户群/迭代有关。
答案 0 :(得分:4)
有很多观点需要讨论,因为你的问题是广义的
1.1基于用户
如果您计划允许用户自定义配置应用程序,则必须按用户维护它们,如果一个用户可以访问不同公司[多租户中的租户],您将还必须通过租户和用户组合隔离数据
有各种级别,例如用户翻转开关,打开和关闭功能,甚至在用户级别许可产品。前者仅需要基于用户的自由裁量权。但是,后者可能需要像模型这样的工作流程,用户可以从其管理员提出功能请求,管理员批准该功能,然后用户可以访问新请求的功能
1.2租赁基础
如果是基于租赁的自定义模型,则会有多个级别,例如让公司[租户]订阅计划以获取对各种应用程序功能的访问权限。
此外,租户必须配置公司工作区,例如提供付款的信用卡详细信息,公司特定电子邮件的电子邮件配置等。这还涉及ON / OFF开关的翻转,这反过来使功能更加有效动态
关于您计划的几个应用程序,它们确实需要SSO以及跨应用程序的配置和公司特定数据流。可以存在公司[租户]特定数据库,需要存储和维护Azure Shard Map或类似的数据库
有一个代码库扩展,可以由您的PaaS提供商(如Azure)按需配置。但是,应用程序需要以某种方式开发,以便它可以支持数据库分区和扩展。这必须考虑数据隔离等因素。
有各种PaaS提供商需要根据您的出现和未来/预测用户群来决定,然后可以决定并选择相同的。
微软为下面的多租户提供了一些很好的文章
https://msdn.microsoft.com/en-us/library/aa479086.aspx
https://msdn.microsoft.com/en-us/library/dd430340.aspx
侧边栏还有许多链接,可以帮助您学习更多知识并选择方法。
HTH