2012-01-26 54 views
1

在Azure上处理多个部署的最优雅的方式是什么?在Azure上处理多个部署

我们将设置多个不相关的客户。每个客户都需要他们自己的独立数据库,由于我们没有多租户运行,我们也必须为每个客户提供他们自己的天蓝色应用程序。

处理这个问题的最佳方法是什么?是否为每个用户创建一个新帐户并跟踪每个帐户?还是有一个主账户?如果是这样,我该怎么做?

回答

1

我讨厌这样说,但我认为在获得多租户以某种身份工作方面你会取得最大的成功。为每个客户建立一个单独的数据库,然后有一些代理哪些数据库属于哪个客户的代理并不是一个可怕的想法,而且仍然是多租户。但是,在Azure中,为所有客户维护一个代码库和一个部署是关键。如果您尝试为每个客户部署和运行单独的代码库,那么您将不会喜欢Azure体验(或坦率地说,任何其他环境)。

对不起,HTH。

2

在您实施了适当的多用户应用程序变体之前,您可以为每个客户使用单独的订阅,也可以将其作为临时使用,在单个订阅中使用多个角色。

多个角色最大的问题是,当您添加新客户时,您必须重新部署。您可以使用多个升级域或stage-and-VIP-swap来避免停机,但它不是一个理想的模式。不仅仅是因为不必要的部署是有风险的,而且它确实使配置管理过程复杂化了。

在短期内,我会坚持单独订阅。消耗的总资源以及成本与在单个订阅中运行多个角色没有多大区别。它也将使计量和计费更容易。我只希望你谈论的是少数客户,而不是数千人!

与此同时,您可以集中所有努力,转向全多租户模式。我正在编写一些关于这个的博客文章,所以如果我记得,我会在我完成时更新我的​​答案。

+0

其实,你现在可以添加和删除角色而无需重新部署。这是2011年10月宣布的 - http://blogs.msdn.com/b/windowsazure/archive/2011/10/19/announcing-improved-in-place-updates.aspx。 –

1

多租户应用程序并不总是直截了当,因为您需要仔细查看身份验证/授权,跨租户的资源利用率,租户间的计量等情况。另外,如果您的应用程序出现故障,所有租户都是受影响,这可能会影响多个客户的SLA。然后是数据库模式:您可以坚持每个租户一个数据库,或创建一个具有某种租户ID字段类型的数据库。

我真的同意其他答案,因为多租户应用程序是理想的方法,特别是在成本管理和代码库一致性方面。但是,假设您坚持单租户应用程序:

  • 为每个客户创建一个单独的部署。
  • 如果您正在管理帐户并为客户开帐单,请使用单一订阅,直至达到容量。对多个订阅没有好处。
  • 如果客户部署和维护应用程序,让他们用自己的订阅

你有几个优点,具有单点部署模式:

  • 能力来部署补丁/定制给单个客户而不是整个客户群
  • 明确的客户计费:无论部署成本如何,该成本100%适用于特定客户。
  • 能够扩大/缩小,以满足特定客户的业务需求
  • 一个客户的无风险滥用系统和挨饿了其他客户
+0

如果您想开始了解多租户应用程序如何在Windows Azure中工作,那么我建议您阅读本书... http://www.amazon.com/Developing-Applications-Microsoft-Platform-Practices/dp/0735656061/REF = sr_1_1?即= UTF8&QID = 1327607366&SR = 8-1 –