WindowsAzure平台提供的主要优点之一是能够在有需要时快速缩放云中的应用程序以响应波动。去年7月以前,您必须编写自定义脚本或使用其他工具(如WasabiMetricsHub)来启用自动伸缩。去年6月底//Build期间,ScottGuthrie宣布自动伸缩功能可在本地平台上使用(也在此文章中进行了总结)。这意味着在最常见的方案中,您不再需要亲自托管
Wasabi。从那时起,直接在 Windows Azure门户中通过配置规则来缩放应用程序变得更加简单。只需转到适用于云服务或
VM的 Scale选项卡。以下示例显示了基于
CPU利用率配置自动伸缩的旋钮。

当时,它仍处于预览状态,并且仅支持基本指标(CPU利用率和
Azure队列长度)。虽然如此,Windows Azure自动伸缩解决了大多数
Azure客户的需求。它相当简洁明了。事实上,它很简单直观,您并不需要阅读自动伸缩的教程就会使用。我们建议您在浏览其他任何选项或工具之前先考虑这点。

如果您的方案需要更多高级功能(如其他性能计数器、基于时间的限制、复合规则、增长率、自定义指标或操作),Wasabi在此期间可能仍是一个不错的选择。Wasabi的许多功能都在
Windows Azure自动伸缩团队的规划表中,在适当的时候,这些功能将会添加到未来的发行版中。至于 Wasabi,尚无推出未来发行版的计划。这与
p&p的弃用理念一致,您可以在此处阅读更多相关信息。

为帮助您了解内置自动伸缩功能的当前版本与
Wasabi 之间的不同之处,请参阅下表:

功能

Windows Azure自动伸缩

自 2013年
6月 26日起

Wasabi

自 2013年
6月 26日起

已集成到 Windows Azure门户

支持的指标

CPU和队列长度

CPU、队列长度和其他 Windows性能计数器;当前实例计数;

易于设置

极其简单(平台和门户中的内置服务)

中等(需要托管一个组件)

需要数据点的专用存储

否(这是一件好事!)

(可以使用
Azure Blob 存储或本地文件存储或自定义)

易于配置

极其简单

中等(需要配置存储帐户凭据和管理证书)

对目标应用程序产生影响

需要启用要在
WAD 中捕获的相关性能计数器

支持网站

支持云服务 (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的主要优点之一是可以动态缩放应用程序以响应不断变化的需求。但是在过去,您不得不手动更改应用程序的规模或使用其他工具(如WASABiMetricsHub)以自动缩放应用程序。一年前,我们宣布了自动伸缩将直接内置到
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

http://weblogs.asp.net/scottgu/archive/2013/06/27/windows-azure-general-availability-release-of-web-sites-mobile-services-new-autoscale-alerts-support-no-credit-card-needed-for-msdn-subscribers.aspx#10382459

Windows Azure 自动伸缩已内置的更多相关文章

  1. SpringBoot怎么自动部署到内置的Tomcat的?

    先看看SpringBoot的主配置类的main方法: main方法运行了一个run()方法,进去run方法看一下: /** * 静态帮助程序,可用于从中运行{@link SpringApplicati ...

  2. windows下python3.7.2内置venv虚拟环境下pyinstaller错误问题

    起因 开发一直使用python -m venv .pyenv 方式创建虚拟环境,在利用pyinstaller打包发布应用时,出现错误 3178 INFO: Warnings written to C: ...

  3. 阻止YII 1.0自动加载内置JQUERY库

    有些时候我们会在项目中用到很多js库, 因为Yii 1.0框架会默认自动加载一些自带核心库, 很容易引起冲突问题, 下面的代码就展示了如何在Yii 1.0框架下取消jQuery自动加载. Open C ...

  4. 探索 Windows Azure 网站中的自动伸缩功能

     去年10月,我们发布了若干针对 WindowsAzure平台的更新,其中一项更新是添加了基于日期的自动伸缩调度支持(在不同的日期设置不同的规则). 在这篇博客文章中,我们将了解自动伸缩的概念,并 ...

  5. Windows Azure公有云服务相关方案

    http://www.cnblogs.com/sennly/p/4139675.html 1.公有云平台服务简介 Windows Azure 是一个灵活而开放的云平台,通过该平台,您可以在数据中心快速 ...

  6. Windows内置安全主体

    转自:https://blog.csdn.net/xcntime/article/details/51746148 导读:对于Windows内置安全主体特别需要注意的是:你无法创建.重命名和删除它们, ...

  7. 在 Windows Azure 网站中进行纵向扩展和横向扩展

    编辑人员注释:本文章由 Windows Azure 网站团队的项目经理 Byron Tardif 撰写. 当您开始一个新的 Web 项目,或者刚刚开始开发一般的网站和应用程序时,您可能希望从小处着手. ...

  8. [转]Windows Azure安全概述

    本文转自:http://blogs.msdn.com/b/azchina/archive/2011/03/06/windows_5f00_azure_5f00_security_5f00_overvi ...

  9. 在 Visual Studio 2010 中开发和部署 Windows Azure 应用程序

    原文 在 Visual Studio 2010 中开发和部署 Windows Azure 应用程序 在 Visual Studio 2010 中开发和部署 Windows Azure 应用程序 Jim ...

随机推荐

  1. Python框架

     Django.Pylons & TurboGears & repoze.bfg.Tornado & web.py.Bottle & Flask.Quixote(豆瓣用 ...

  2. 事件绑定之.bind()

    .bind(eventType[,eventData],handler(eventObject)) 描述:为一个元素绑定一个事件处理程序,bind()绑定方法的时候元素必须已经存在. -eventTy ...

  3. Case when 的用法,简单Case函数

    Case when 的用法,简单Case函数 简单CASE表达式,使用表达式确定返回值. 语法: CASE search_expression WHEN expression1 THEN result ...

  4. 转:CSS3 Flexbox 布局介绍

    转:CSS3 Flexbox 布局介绍 Flexbox是一个用于页面布局的全新CSS3模块功能.它可以把列表放在同一个方向(从左到右或从上到下排列),并且让这些列表能延伸到占用可用的空间.较为复杂的布 ...

  5. C++实现Http Post请求

    参考资料: http://apps.hi.baidu.com/share/detail/39003388 http://blog.csdn.net/yc0188/article/details/474 ...

  6. 2016 Multi-University Training Contest 4 总结

    第四场多校队伍的发挥还是相当不错的. 我倒着看题,发觉最后一题树状数组可过,于是跟队友说,便开始写,十分钟AC. 欣君翻译01题给磊哥,发现是KMP裸题,但是发现模板太旧,改改后过了. 11题是一道毒 ...

  7. [LeetCode][Python]Add Two Numbers

    # -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com'https://oj.leetcode.com/problems/add-two ...

  8. ios webview 加载含有中文的URL网页显示白屏

    1. ios中的webview加载的URL不可以含有中文,解决办法说将中文字符转码, 如下: - (NSString *)URLEncodeString { NSCharacterSet *set = ...

  9. JS isArray记录

    var isArray=Function.isArray||function(0){ return typeof o === "object" && Object. ...

  10. asp.net 使用my97 datepicker实现前后两个日期的范围界定

    说明:日期选择后,前面的日期小于等后面的日期,后面的日期大于等于前面的日期.点点看就知道了:) - 这里将周末日期不可选.代码如下: <html xmlns="http://www.w ...