云应用程序架构:在应用程序中构建多租户意识?

时间:2014-12-04 17:09:53

标签: azure architecture cloud

我帮助构建的所有Web应用程序都具有多租户功能,这意味着可以在同一个应用程序/数据库上托管多个客户端,而不会让他们看到对方。

既然我们可以启动新的PaaS实例来托管应用程序的另一个实例,我想知道是否有理由放弃多租户意识并且每个客户只使用一个数据库和一个Web应用程序。

我看到的优点是客户端之间的隔离更好,可能更简单的设置和客户拆解。当我们尝试生成一些租户间报告时可能会出现缺点(特定应用可能需要也可能不需要)。

我的问题是,使用云概念分离客户端真的是个好主意吗?对于真实世界的应用程序是这样的吗?

顺便说一句,如果重要,我们的新应用程序将构建在ASP.NET上并作为Azure网站托管,使用Cloudant作为数据库层。此外,预期的客户数量最多只有几百,而不是数百万。

1 个答案:

答案 0 :(得分:2)

  

现在我们可以启动新的PaaS实例来托管另一个实例   一个应用程序我想知道放弃多租户是否有意义   意识并且每个客户只使用一个数据库和一个Web应用程序。

虽然从技术上讲你可以做到 - 为每个客户部署一个单独的网站,但我预见到了一些问题:

  • Azure对可部署的资源数量有限制。例如,根据标准计划,您最多可以部署500个网站。如果您的成长超过500位客户,会发生什么?虽然你可以增加这个配额,但我怀疑它们是否会让它无限。有关订阅限制,请参阅此链接:http://azure.microsoft.com/en-in/documentation/articles/azure-subscription-service-limits
  • 管理将成为一场噩梦。假设您有一个新功能,您希望每个租户都可以使用它。在多租户方案中,您只需将更改部署一次即可。每个租户都有自己的实例,您必须为每个租户部署。