Azure平台:上下缩放实例

时间:2010-01-25 22:09:20

标签: batch-file azure cloud multiple-instances

注意:如果您熟悉Azure定价模型,只需跳转到“问题”部分。

Microsoft将从February 1, 2010开始收取使用Azure平台的费用。每月账单将取决于带宽,存储和其他因素。用于计算账单的因素包括计算时间。 然而,后一个因素具有误导性的名称:它应该被命名为实例托管时间。引用windows azure定价页面:

  

在开发和测试应用程序时,开发人员希望删除未用于最小化计算小时计费的计算实例

因此,您认为它不是计算小时数,而是正常运行时间您需要支付的费用。在阅读MSDN论坛中对this question的官方回复后,疑问完全消失:

  

我可以确认每个实例(任何角色)都是重要的,并且您拥有实例活动计数的所有时间(无论他们有多少“活动”)。如果应用程序具有两个Web角色实例和两个辅助角色实例,则将为四个实例付费

每个实例每小时0.12美元,使用N个实例的应用程序平均每个实例平均需要24 * 30 * 0.12 * N /月=〜$ 86 /月。 如果您希望99.9%的正常运行时间service level agreement适用,那么当您考虑到不能少于2个实例这一事实时,小网站的情况就会恶化。

因此,一个小型,计算能力低廉的网站可能不是Azure的目标市场。但对于批处理过程,负担可能会消失。

问题

仅在计算能力和“计算小时数”计费方面说,Azure是一个很好的托管选项,适用于每月只运行几个小时的批处理过程,当且仅当您可以轻松扩展(和向下!)实例数量。所以:

  • 是否可以以编程方式扩展和缩小Azure中的实例数量?除手动更改配置文件外还有其他选项吗?
  • 是否存在缩小实例数量的非明显问题?
  • Azure花了多少时间来“确认”缩小您的应用程序?

关于后一个问题:假设你有大量实例(比如1000)运行45分钟的极端情况。如果Azure在流程结束后的15分钟内无法注意到缩小,则将向您收取另外1000个计算时间的费用。

4 个答案:

答案 0 :(得分:4)

你是对的,你要支付正常工作时间,而不是计算时间。

要警惕的一件事是你支付部分时间而没有任何比例,所以如果你迅速扩大和缩小,你就会吃完整个小时。

正如其他人所提到的,您可以在应用程序中以编程方式向上和向下扩展。但是,一般来说,特定角色只能访问自己的度量标准(除非将度量标准保存到存储中),加上任何全局资源度量标准(队列长度等),因此根据CPU利用率等进行扩展可能很困难。

一台机器需要花费几分钟时间才能开始向上扩展。目前没有提供旋转的SLA。微软已经表示实例会在不同的时间出现,所以如果你做一个非常大规模的扩展操作,可能是所有实例可用之前的重要时间;但有些情况几乎可以立即获得。在完全旋转之前,您不需要为实例付费。

缩小几乎立即发生,但您无法控制缩小时使用的实例,因此,如果50%的实例处于空闲状态且您缩减了50%,则可能会终止所有活动实例,并且需要在以前空闲的实例上重新启动该工作。您必须确保您的设计支持良好的重新启动工作(如果您使用队列超时,这可能主要是自动发生)

有一些第三方解决方案开始出现,旨在帮助扩展。我所看到的看起来很有前途的是来自http://paraleap.com/的AzureWatch,它提供了一些基于利用率,队列长度,时间表等自动向上/向下扩展Web和工作者角色的东西。

答案 1 :(得分:3)

稍微警告一下,我的评论不是基于在Windows Azure上运行生产应用程序;到目前为止,我只是愚弄了它并阅读了文档。

  

是否可以以编程方式扩展和缩小Azure中的实例数量?

是的,但是AFAIK Azure本身不会向上和向下扩展,您必须通过Web服务调用这样做(与使用UI手动完成相同)。请参阅此MSDN doc,“托管服务”部分,并从那里继续阅读。

Hudson CI server这样的东西可以很容易地扩展到基本的工作队列监控。也许你需要更丰富的功能;整个“企业服务总线”世界有很多这样的系统。

  

是否存在缩小实例数量的非明显问题?

HMN。您需要考虑锁定,即如何确保每个工作人员将队列保持在一致状态并在关闭之前完成其任务?

此外,从Azure价目表中可以看出:“部分计算小时数称为完整小时数。”。

  

Azure花了多少时间来“确认”缩小您的应用程序?

老实说,我不知道,但假设你的应用程序干净地退出了它的工作,我假设最多只需几分钟。他们足够快地实例化新服务器,我猜测启动新服务器比关闭服务器需要更多时间。

尝试测试一下。制作一个便宜的帐户,启动一些服务器,关闭它们等等。构建一个小应用程序原型(或使用Azure示例应用程序之一)并感受它。

另一个方面是:您有什么保证能够随时扩展?目前,任何云计算供应商AFAIK都没有这样的保证;但亚马逊在这方面有着相当不错的记录。 Azure是一种新产品,我们不知道微软的容量估算有多好,即我们不知道它们在未来几个月内的表现如何。我期待这是一个无问题;微软会很好地解决这个问题 - 但我还没有这方面的证据。

答案 2 :(得分:3)

截至2013年6月26日,Windows Azure包含了平台中的自动缩放功能。目前只是在预览中,只支持2个指标(CPU利用率和队列长度),它非常直观且易于启用。 Check it out

答案 3 :(得分:2)

是的,现在使用新发布的Autoscaling Application Block,程序化扩展和缩小Azure中的实例数量比以往更容易。

请参阅我对thread的详细解答。