Windows Azure可以在负载变化时动态扩展应用程序吗?

时间:2011-05-13 13:56:15

标签: windows azure load-balancing

从我在Windows Azure材料中看到的有关如何部署应用程序的内容(例如,this lab),必须在部署其应用程序时选择“角色大小”和角色实例数。

看起来很酷 - 如果对应用程序的请求数量突然增加会发生什么?

是否可以以高负载产生额外角色实例的方式部署应用程序,然后在负载变低时终止?

3 个答案:

答案 0 :(得分:8)

自动扩展目前不是内置服务,但有第三方工具可提供此服务,例如Paraleap's AzureWatch。你也可以自己滚动(这里是一个starter sample),但我不会在开始时推荐它,因为有很多事情需要考虑,例如:

  • 了解Windows Azure结算的工作原理以及每小时计费时间
  • 了解加速时间以及何时考虑缩减,而不会导致服务器弹起/停机

此外,要进行自己的扩展,您需要将该代码放在本地或您的一个角色中(最好是自己的“经理”角色)。如果在角色中,您必须确保管理代码仅在一个实例中运行(使用某种类型的blob-lock信号量或类似的东西) - 否则您将面临双重缩放的风险。

我会认真考虑一下AzureWatch的开始:每小时每个实例只需一分钱,你就可以快速启动并运行。

答案 1 :(得分:6)

此功能未包含在Azure中 - 但Microsoft可能会在将来添加一些内容。

有很多样本可以向您展示如何自己实施 - 例如见http://blogs.msdn.com/b/publicsector/archive/2011/02/18/dynamically-scale-your-windows-azure-service-instances.aspx


作为对此的更新 - Scott Gu本周在伦敦发表演讲(2011年6月),他建议自动缩放是微软积极致力于并将在不久的将来提供的东西。显然目前没有日期 - 也没有保证!

答案 2 :(得分:2)

截至2011年11月,Microsoft发布了Autoscaling Application Block(Wasabi)。看看这个。 http://aka.ms/autoscaling

它不会像其他服务(ACL,缓存,服务总线等)一样融入Windows Azure,但它是您必须托管的组件。这很容易做到,因此可以灵活地提供自己的数据收集器,指标和自定义操作。

可在此处找到几个有用的演示和演示: