【问题标题】:Cloud application architecture: Build multi-tenant awareness into the application?云应用架构:在应用中构建多租户意识?
【发布时间】:2014-12-04 17:09:52
【问题描述】:

我帮助构建的所有 Web 应用程序都支持多租户,这意味着可以在同一个应用程序/数据库上托管多个客户端,而无需让它们相互看到。

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

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

我的问题是,使用云概念来分离客户端真的是个好主意吗?对现实世界的应用程序是否做过类似的事情?

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

【问题讨论】:

    标签: azure architecture cloud


    【解决方案1】:

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

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

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

    【讨论】:

    • 该应用程序的潜在客户将是大公司,因此 500 已经是非常多的客户。但我同意这是需要考虑的重要一点。我将更新问题以澄清预期的客户数量。
    • 如何为数百名客户部署更新?您必须确保在 web.config 中为每个客户端正确配置了 DB 连接字符串,并具有构建/部署脚本。有一个错误,你就干杯:)
    • 是的,你是对的,连接字符串会有所不同。这是很重要的一点!
    猜你喜欢
    • 2016-02-28
    • 2020-10-11
    • 2015-01-05
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 2020-09-17
    • 2011-05-25
    相关资源
    最近更新 更多