WindowsAzure平台提供的主要优点之一是能够在有需要时快速缩放云中的应用程序以响应波动。去年7月以前,您必须编写自定义脚本或使用其他工具(如Wasabi或MetricsHub)来启用自动伸缩。去年6月底//Build期间,ScottGuthrie宣布自动伸缩功能可在本地平台上使用(也在此文章中进行了总结)。这意味着在最常见的方案中,您不再需要亲自托管
Wasabi。从那时起,直接在 Windows Azure门户中通过配置规则来缩放应用程序变得更加简单。只需转到适用于云服务或
VM的 Scale选项卡。以下示例显示了基于
CPU利用率配置自动伸缩的旋钮。
当时,它仍处于预览状态,并且仅支持基本指标(CPU利用率和
Azure队列长度)。虽然如此,Windows Azure自动伸缩解决了大多数
Azure客户的需求。它相当简洁明了。事实上,它很简单直观,您并不需要阅读自动伸缩的教程就会使用。我们建议您在浏览其他任何选项或工具之前先考虑这点。
如果您的方案需要更多高级功能(如其他性能计数器、基于时间的限制、复合规则、增长率、自定义指标或操作),Wasabi在此期间可能仍是一个不错的选择。Wasabi的许多功能都在
Windows Azure自动伸缩团队的规划表中,在适当的时候,这些功能将会添加到未来的发行版中。至于 Wasabi,尚无推出未来发行版的计划。这与
p&p的弃用理念一致,您可以在此处阅读更多相关信息。
为帮助您了解内置自动伸缩功能的当前版本与
Wasabi 之间的不同之处,请参阅下表:
功能 |
Windows Azure自动伸缩 |
Wasabi |
已集成到 Windows Azure门户 |
是 |
否 |
支持的指标 |
CPU和队列长度 |
CPU、队列长度和其他 Windows性能计数器;当前实例计数; |
易于设置 |
极其简单(平台和门户中的内置服务) |
中等(需要托管一个组件) |
需要数据点的专用存储 |
否(这是一件好事!) |
是(可以使用 |
易于配置 |
极其简单 |
中等(需要配置存储帐户凭据和管理证书) |
对目标应用程序产生影响 |
无 |
需要启用要在 |
支持网站 |
是 |
否 |
支持云服务 (Web role/worker role) |
是 |
是 |
支持 VM角色 |
是 |
未测试 |
自定义指标 |
否,已计划 API |
|
自定义操作 |
否 |
|
冷却阶段支持 |
是 |
是 |
基于时间表的伸缩 |
否,但已计划 |
|
复合规则 |
否,当前正在考虑之中 |
是(支持表达式、嵌套函数和聚合函数) |
缩放组 |
否 |
|
合理的缩放决策历史记录 |
是 |
|
应用程序限制 |
否 |
|
可升级性 |
自动 |
手动 |
发布 |
预览版 |
RTW |
* Wasabi具有
2个旋钮:一个旋钮用于在执行任何缩放操作后启用冷却阶段,另一个用于优化围绕每小时计费界限的成本。由于 Windows Azure现在支持更精细的计费,建议不要使用
Wasabi的优化稳定装置。
在主题演讲期间,ScottGuthrie列举了
Skype的示例,它是世界上最大的 Internet服务之一。与大多数应用程序一样,Skype看到了在非高峰时段造成有未使用容量的负载波动。通过迁移到
Windows Azure并使用自动伸缩,Skype将实现
40%以上的成本节约(与运行自己的数据中心或不使用自动伸缩作比较)。
您可以在此处查看其他自动伸缩案例研究。
无论选择自动伸缩功能(推荐!)还是 Wasabi,您的应用程序仍需要专为弹性设计(有关指南,请查看Wasabi文档、为云开发多租户应用程序指南(第
3 版)和CQRSJourney指南中的大部分概念)。
自动伸缩:基于真实使用情况进行动态扩展/缩小
WindowsAzure的主要优点之一是可以动态缩放应用程序以响应不断变化的需求。但是在过去,您不得不手动更改应用程序的规模或使用其他工具(如WASABi或MetricsHub)以自动缩放应用程序。一年前,我们宣布了自动伸缩将直接内置到
Windows Azure。随着那天的发布,自动伸缩现已为云服务、虚拟机和网站启用,在那之后不久,对移动服务等一系列服务的支持也推出了。
通过自动伸缩,您可以配置
WindowsAzure 代您自动动态缩放应用程序(无需手动干预),这样就可以达到理想的性能和成本平衡。配置自动伸缩后,将定期调整响应应用程序负载运行的实例数量。目前,我们支持两个不同的负载指标:
- CPU使用百分比
- 存储队列深度(仅适用于云服务和虚拟机)
在未来的更新中,我们将对更多缩放指标启用自动伸缩。
何时使用自动伸缩
以下是很好的判断服务/应用程序是否将从使用自动伸缩中受益的标准:
- 服务/应用程序可以横向扩展(例如,可以创建多个实例副本)
- 服务/应用程序负载随着时间的推移而变化
如果您的应用程序符合这些标准,则您会希望利用自动伸缩。
如何启用自动伸缩
要启用自动伸缩,对于您希望启用的应用程序/服务,只需导航到
WindowsAzure 管理门户中的Scale选项卡。在
Scale选项卡中打开 CPU或队列(适用于云服务和
VM)的自动伸缩设置以启用自动伸缩。然后更改实例计数和目标 CPU
设置来配置要维护的自动伸缩范围。
下图演示了如何在
WindowsAzure 网站上启用自动伸缩。我已经配置了网站以便使用 1到
5个 VM实例运行。使用的确切数量将取决于
VM的总 CPU使用率(我在下面配置了使用
40-70% 的范围)。如果总 CPU超过
70%,则 Windows Azure
将自动向池中添加新的 VM(我配置了最多使用
5 个实例)。如果总 CPU低于
40%,则 WindowsAzure
将自动关闭 VM以节省成本:
打开自动伸缩后,您可以随时返回到 Scale选项卡并选择
Off以手动设置实例数量。
使用自动伸缩
通过那天的更新,您现在只需几分钟的时间就可以使 Windows Azure自动调整应用程序上正在运行的实例数量,以保持服务性能处于良好状态,且成本更低廉。
本文翻译自:
http://blogs.msdn.com/b/agile/archive/2013/07/02/windows-azure-autoscaling-now-built-in.aspx