2

我为最终用户 Azure 应用程序构建了一个实用程序(启动任务)。该启动任务将通过 REST API(托管在东亚)将来自该 webrole 应用程序(根据最终用户选择托管在任何区域)中的一些数据发布到数据库(托管在东亚)。

因此,如果最终用户将他们的应用程序托管在同一地区(东亚),那么 Azure 不会向我和最终用户传输数据(如果我理解错误,请纠正我)。

在另一种情况下,如果最终用户将他们的应用程序托管在另一个区域,那么最终用户将需要将数据传输到另一个区域的 REST API 上。

我为降低成本所做的工作,我在所有区域设置了 REST API,并在启动任务中告诉用户根据他们要部署应用程序的区域设置特定 REST API 的路径。现在在这种情况下,最终用户不需要为数据传输支付任何费用,但是我的 REST API(托管在不同区域)会将数据传输到数据库(托管在东亚),因此我需要为此以及托管 REST API 付费在所有地区,以降低最终用户成本。

在上述情况下,有没有办法使用共享数据库来降低成本并删除所有区域上托管的多个 REST API?另外请建议是否存在更好的解决方案来降低我和最终用户的成本。

4

3 回答 3

1

有趣的场景:您基本上是让您的最终用户为自己部署应用程序到选择的区域?通过 REST API 上传数据库的目的是什么:备份,还是用于实时数据?

我不明白的一件事是关于共享数据库的问题。根据您的描述,已经有一个共享数据库,因为每个用户都通过 REST API 将数据推送到东亚的单个数据库。这不正确吗?

根据您提供的信息,所有数据都转到一个数据中心,我看到 3 个选项,其中两个您已经指出:

  1. 用户在 8 个数据中心中的任何一个中托管应用程序,您在一个数据中心中托管 REST API。在这种情况下,用户在本地和应用程序之间获得最佳本地应用程序性能,用户为您的 API 的出口付费,并且用户在跨数据中心传输数据时可能会看到延迟。
  2. 用户在 8 个数据中心中的任何一个中托管应用程序。您在所有数据中心托管 REST API。用户的数据可以免费传输到本地 REST API,而且速度非常快。但是,您随后将数据传输到东亚数据库,如果用户不在东亚托管,这将花费您的出口带宽。此外,您现在还需要花费许多额外的 REST API 实例。
  3. 用户仅在东亚托管,以及您的 REST API 和数据库。所有数据中心带宽都是免费且快速的。用户可能会看到从本地连接到应用程序的延迟,具体取决于他们所在的位置。

在每种情况下,您都让用户部署他们自己的托管服务,然后该服务与您的对话。是否可以通过让他们都访问相同的托管服务但使用不同的凭据来优化用户成本?

对于您的成本,在每个数据中心托管一个 REST API 似乎是一笔不小的开支,因为您需要在每个数据中心至少运行 2 个实例才能获得 Windows Azure 的正常运行时间 SLA。但是......同样,我并不完全了解您的应用程序的场景。

于 2012-05-25T11:09:29.320 回答
0

我认为在这种情况下,最好让客户提供自己的数据库。如果您需要使用自己的数据库,则很难为您节省成本。您可以使用托管在不同数据中心的多个数据库。但显然这需要更多的成本。您也可以使用单个数据库,但是不可避免地会有一些用户从另一个数据中心传输数据。但是,您可以通过提高产品价格来要求用户支付费用。但看起来最好让用户提供他们自己的数据库(如果他们愿意,他们甚至可以选择本地数据库)。这也有助于提高安全性,因为不会共享用户的数据。

此致,

明旭。

于 2012-05-29T08:48:59.813 回答
0

根据我的理解,情况似乎有点奇怪。如果您要提供最终用户可以使用自己的 Windows Azure 帐户托管的软件包,为什么还要让他们使用自己的数据库呢?还是您的意思是您向最终用户提供项目的源代码作为示例?无论如何,我认为最好让最终用户提供他们自己的数据库帐户。如果您想为自己设计一个 REST API,请将其托管在您自己的 Windows Azure 服务中。请不要将软件包分发给您的最终用户。此外,有关计费的更多信息,您还可以通过https://support.microsoft.com/oas/default.aspx?prid=14234&st=1&wfxredirect=1&sd=gn联系我们的客户支持。

此致,

明旭。

于 2012-05-28T11:11:03.953 回答