在Azure上处理多个部署

时间:2012-01-26 02:57:52

标签: azure azure-sql-database

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

我们将拥有多个无关的客户。每个客户都需要自己独立的数据库,因为我们没有多租户启动和运行,我们也必须为每个客户提供他们自己的天蓝色应用程序。

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

3 个答案:

答案 0 :(得分:2)

在您实施适用于您的应用程序的多租户变体之前,您可以为每个客户使用单独的订阅,或者作为临时订阅,在单个订阅中使用多个角色。

多个角色的最大问题是,当您添加新客户时,您将不得不重新部署。您可以使用多个升级域或阶段和VIP交换来避免停机,但这不是理想的模式。尤其是因为不必要的部署存在风险,并且确实使配置管理过程变得复杂。

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

与此同时,您可以集中精力转向完整的多租户模式。我正在写一些关于这方面的博客文章,所以如果我记得的话,我会在完成后更新我的答案。

答案 1 :(得分:1)

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

对不起,HTH。

答案 2 :(得分:1)

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

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

  • 为每个客户创建单独的部署。
  • 如果您正在管理帐户并向客户收费,请先进行一次订阅,直至达到容量。多个订阅没有优势。
  • 如果客户正在部署和维护应用,请让他们使用自己的订阅

单部署模型有一些优势:

  • 能够将补丁/自定义部署到单个客户而非整个客户群
  • 明确的客户账单:无论部署成本如何,该成本都是100%适用于特定客户。
  • 能够扩展/扩展以满足特定客户的流量需求
  • 没有一个客户滥用系统和匮乏其他客户的风险