Windows Azure: SQL Server Always On支持和通知中心、AutoScale等更多改进

[原文发表地址] Windows Azure: General Availability of SQL Server Always On Support and Notification Hubs, AutoScale Improvements + More

[原文发表时间] 2013-8-12

今天上午,我们发布了一些重大的更新到Windows Azure。这些新功能包括:

  • SQL Server支持:Windows Azure虚拟机支持一般可用性(包括高可用性和灾难恢复)
  • 通知中心:Windows Azure通知中心的一般可用性版本(Windows 8、Windows Phone、iOS和Android的广播推送)
  • AutoScale:基于计划的AutoScale规则和更丰富的日志记录支持
  • 虚拟机:负载均衡器的配置及管理
  • 管理服务:新门户对操作日志及警报的扩展

现在,所有这些改进都可以立即使用(注:自动定标仍处于预览,其他一切是一般可用)。下面是关于他们的详细信息。

Windows Azure虚拟机支持SQL Server AlwaysOn

我很高兴地宣布,Windows Azure支持SQL Server AlwaysOn 可用性组的一般可用性版本。我们已经更新了官方文件,在Windows Server2012上支持SQL Server2012(或更高版本)的可用性组侦听器。

对SQL Server AlwaysOn可用性组的支持,在SQL Server 2012中引入,是微软实现与SQL Server高可用性和灾难恢复的首要解决方案。SQL Server AlwaysOn可用性组支持多数据库故障转移,多个副本(在SQL Server2012中5个, SQL Server 2014中9个),可读辅助副本(可以用来卸载报表和BI应用),可配置故障转移政策,备份辅助副本,便于监控。

今天,我们很高兴地宣布,我们支持完整的SQL Server AlwaysOn可用性组技术层通过使用Windows Azure虚拟机,包括支持SQL Server的可用性组侦听器。我们真的很高兴能成为第一个全方位支持SQL Server AlwaysOn可用性组的云服务商,我们相信它们将为客户提供大量新的使用场景。

虚拟机中运行的SQLServer高可用性

现在,您可以在Windows Azure虚拟机上使用SQL Server AlwaysOn,实现高可用性和全球业务连续性。作为这种支持的一部分,你现在可以部署一个或多个可读数据库辅助副本,这不仅提高了您的SQL服务器的可用性,同时也提高了工作效率,允许您卸载BI报告任务及备份到辅助计算机。

今天的Windows Azure发布包括Windows Azure网络负载均衡器的变化,能更好地支持SQL服务器的AlwaysOn功能。今天的更新,你现在可以通过一个单一的客户端连接字符串(使用可用性组侦听器端点)连接到您的SQL Server部署环境。这会自动路由数据库连接到主副本节点 – 并且我们的网络负载均衡器在自动或手动故障转移场景中会自动更新路由请求到辅助副本节点下:

image

这个新的SQL Server可用性组侦听器支持,让你可以轻松地在Windows Azure虚拟机部署高可用性配置的SQL数据库,并充分利用完整的SQL Server功能集。它也可以确保在升级操作或修补虚拟机期间没有停机时间。

使用Windows Azure进行本地SQL Server的灾难恢复

除了在Windows Azure上启用高可用性解决方案,新的SQL Server AlwaysOn支持也可以使本地SQL Server解决方案扩大到使用Windows Azure虚拟机运行在云中的一个或多个辅助副本。这使公司能够使用高可用性灾难恢复方案 – 当本地数据中心关闭(例如:由于飓风或自然灾害,或简单的本地网络硬件故障),他们可以故障转移,并继续使用Windows Azure操作使用已部署在云中的虚拟机。

image

上图显示了这样一种情况:一个本地的SQL Server AlwaysOn可用性组已经定义了2个数据库副本 – 主副本和辅助副本(S1)。另一个辅助副本(S2)被配置在Windows Azure虚拟机里在云中运行。这个辅助副本(S2)将持续与内部部署的主副本同步数据。公司在本地的灾难事件中,可以故障转移,切换到云中副本并继续操作,而对业务没有影响。

除了使用灾难恢复,辅助副本也可以被用于卸载报告应用程序和备份。这是有价值的,公司由于兼容性原因需要在数据中心外维护备份数据,使客户能够充分利用计算方案,即使在​​非灾难场景副本。

访问Windows Azure了解更多有关SQL Server AlwaysOn支持
您可以了解更多有关如何在Windows Azure上启用SQL Server AlwaysOn支持,通过阅读为在Windows Azure虚拟机上SQL Server的高可用性和灾难恢复文档。还可以查看这条TechEd2013演示文稿:SQL Server在Windows Azure WM上的高可用性和灾难恢复。我们真的很高兴能成为第一个支持全方位的SQL Server AlwaysOn场景的云提供商,我们相信它们将为客户提供大量新的使用场景。
Windows Azure 通知中心

今天我很高兴地宣布Windows Azure通知中心的一般可用性版本的发布。通知中心可以让你实时发送个性化的、跨平台的广播,发送通知到数以百万计的Windows8、Windows Phone8、IOS和Android移动设备。

我第一篇关于通知中心的博客是一月的通知中心的最初预览。从最初的预览开始,我们已经增加了许多新的特性(除了支持Windows8和iOS设备,还支持Android和Windows Phone设备),并验证该系统已准备好为您的下一个应用程序需要的任何数量的规模。
您可以使用通知中心,通过Windows Azure的移动服务或任何其他已建成的自定义移动后端(包括非Azure托管的),这使得它很容易开始利用任何现有的应用程序。
通知中心:大规模个性化的跨平台的广播推送
通知推送是移动应用的一个重要组成部分。他们是移动应用程序开发者可用的最强大的的客户参与机制。一个单一的推送通知消息发送到一个移动用户,是相对直截了当的(今天的Windows Azure移动服务已经很容易做到这一点)。但以低延迟的方式同时推送通知到数以百万计的移动用户和处理现实世界中需求,如本地化、多平台设备及与用户个性化需求要难得多。
Windows Azure的通知中心为您提供一个高度可扩展的推送通知的基础设施,可以帮助你有效地跨平台路由,个性化地对数以百万计的用户推送通知消息:
  • 跨平台。使用通知中心的一个简单API调用,您的应用程序的后端可以发送推送通知给在iOS、Windows Phone8、Windows应用商店或Android设备上运行的用户
  • 高度个性化。通知中心内置模板功能,让你的客户端可以选择希望看到通知的形状、格式和语言,同时保持你的后端代码平台的独立及真的很干净。
  • 设备令牌管理。通知中心解除了后端存储和管理渠道URI和设备令牌的需要,通过使用平台通知服务(WNS、MPNS、苹果PNS或谷歌云消息服务)。我们会为你安全地处理的PNS反馈、设备令牌到期等。
  • 高效的基于标签的多播和pub/sub路由。当注册一个通知中心时,客户端可以指定一个或多个标签来表达用户在通知中的兴趣,如一组主题(最喜欢的运动/团队、地理位置、股票代码、逻辑用户ID等)。这些标签并不需要预先规定或出售,并为应用程序提供了一个非常简单的方法为数以百万计的用户/设备与发送有针对性的通知,只需一个单一的API调用,而不需实现自己的针对用户通知的路由基础设施。
  • 超大规模。通知中心进行了优化,使得可以低延迟方式广播推送通知十万或上百万的设备。您的服务器后端可以发射一个消息到通知中心,数千/百万推送通知便可以自动传送到用户,而不需您来重新设计或共享您的应用程序。
  • 任何后端可使用。通知中心可以很容易地集成到任何后端服务器应用程序中,使用.NET或Node.js的SDK,或易于使用的REST API。它可以无缝地与使用Windows Azure移动服务的内置的应用程序。它也可以被托管在IaaS的虚拟机(Windows或Linux)上的服务器应用程序、云服务或Web站点使用。
Bing新闻:使用Windows Azure通知中心为数以百万计的设备提供实时新闻
一些大型应用程序,在今天的一般可用性版本前就已经开始使用Windows Azure通知中心。其中之一是Bing新闻应用程序,在所有的Windows8和Windows Phone 8的设备都有安装。
Bing新闻应用程序需要能够通知他们的用户在瞬间突发的新闻。这是一项艰巨的任务,有以下几个原因:
  • 规模庞大:每个Windows8用户都安装了新闻应用程序安装,并在Bing后端需要每月为他们提供数以百万计的实时新闻通知
  • 基于主题的组播:广播推送通知到不同的市场,基于个人用户的爱好,需要有效的pub/sub路由和基于主题的组播逻辑
  • 跨平台推送:通知的格式和语义在移动平台之间不同,以及它们之间的跟踪通道/令牌都可以很复杂

Windows Azure通知中心完全适用于Bing新闻,现在Bing新闻应用程序正使用最新更新的通知中心每天提供推送通知到数以百万计的Windows及Windows Phone设备。

image

客户端上的Bing新闻应用程序分别为Windows8和Windows版本从Windows通知服务(WNS)和Microsoft推送通知服务(MPNS)获得适当的ChannelURIs,然后将他们注册到Windows Azure的通知中心。当一个特定的市场有突发新闻需要发送,Bing新闻应用程序使用通知中心瞬间播放相应的消息到所有的个人设备。 通过一个单独的REST调用到通知中心,他们可以筛选出对话题(如体育更新)感兴趣的客户,并将消息实时传递到数百万的客户:

image

Windows Azure处理所有复杂的pub/sub过滤逻辑,并以一个低延迟的方式有效地处理发送消息。
马上创建你的第一个通知中心
通知中心支持Free Tier的使用,允许你每个月免费对500注册设备发送100,000次操作- 这使得它很容易上手。
通过Windows Azure管理门户创建一个新的通知中心,只需选择新建 - >应用服务 - >服务总线 - >通知中心:

image

创建一个新的通知中心需要不到一分钟,一旦被创建,你进入可以看到活动仪表板视图。别的不说,仪表盘可以让你看到多少设备已经注册,有多少消息已推送到它,有多少消息已经通过它成功发送,而有多少失败了:

image

一旦你创建好中心,点击“配置”选项卡来为您的通知中心将处理的各种推送通知服务(Windows应用商店/Phone、iOS和Android)输入您的应用程序证书:

image

完成以上这些你的通知中心就可以用了。
设备注册及发送广播通知
现在通知中心创建好了,我们将要注册设备的应用程序。这个很容易 - 我们有Windows 8、Windows Phone8、Android和iOS等设备的SDK。
下面是你会写在C#Windows 8的客户端应用程序的代码,它在发送“myTag”或的“myOtherTags”标签/主题的广播通知中注册用户的兴趣:
 await hub.RegisterNativeAsync(channel.Uri, new string[] { "myTag", "myOtherTag" });


 
一旦设备被注册,当你应用程序后端发送一条消息到注册的主题/标签,它会自动接收推送通知消息。您可以通过一个Windows Azure的移动服务、自定义的.NET后端的应用程序、任何其他Node.js SDK或REST API后端的应用程序来使用通知中心。下面的代码演示了如何从一个自定义.NET后端发送消息到通知中心:

 <br>var toast = <br>@"<toast><visual><binding template=""ToastText01""><text <br>id=""1"">Hello <br>everybody!</text></binding></visual></toast>";<br>await <br>hub.SendWindowsNativeNotificationAsync(toast);


 
一个像上面一样来自您的应用程序的后端的呼叫,现在会安全地将消息发送到注册了你的通知中心的任意数量的设备。通知中心会处理所有发送的细节,不论你要发给多少用户(即使有一千万)。

扩展及监控您的通知中心
一旦你建好了你的应用程序,你可以直接从Windows Azure管理门户将用户很容易地扩展到数以百万计。只要按一下通知中心里的“规模”选项卡来配置你想支持的设备和消息的数量:

image

除了扩展容量,你还可以监控和跟踪您通知及它们发送到您的客户的近50种不同的指标:

image

了解更多关于通知中心的内容
了解更多有关通知中心的内容,使用通知中心的服务页面,在这里你会发现视频教程、深入案例指导,和SDK参考的链接。
我们很高兴持续为所有的Windows Azure用户免费提供通知中心到2013年9月30日。2013年10月1日,我们将开始为通知中心消费计费。Free Tier仍可继续支持每个月免费对500注册设备发送100,000次操作。
AutoScale:定时AutoScale规则和更丰富的日志记录
今年夏天,我们推出了新的AutoScale支持到Windows Azure,使您能够自动调整网站、云服务、移动服务和虚拟机。AutoScale可让您配置Windows Azure来根据你的需要自动调整你的应用程序(无需任何人工干预),这样就可以达到理想的性能和成本的均衡。配置完成后,AutoScale会定时根据你的应用程序的负载调整正在运行的实例的数量。
今天,我们正在引入更多的AutoScale功能 - 包括根据时间计划规则来积极主动地调整你的云服务实例数的能力。
定时AutoScale规则
如果你点击云服务“缩放”选项卡,你会看到,我们现在在定时规则的基础上,已经增加了支持您配置/控制不同的调整规则。
默认情况下,你的调整设置是No scheduled times - 这意味着,你的规模设置不管任何时间/天将始终是一样的。您可以手动调整,在Scale by Metric选项中选择None - 这会显示你熟悉的传统Instance Count滑块:

image

或者,你可以根据CPU活动或Queue深度动态地自动调整。下面的截屏演示了根据WebTier角色的CPU配置了自动调整规则,表示根据CPU总率在实例1和3之间调整:

image

今天的发布也可以让你对一天的不同时间进行不同的调整设置。您可以通过点击“Set up Schedule Times”按钮启用这个功能。一个新对话框会弹出来:

image

随着今天的发布,我们现在有能力定义两个不同的日常时间表:白天和黑夜。第一个时间表,白天,在一天的开始到一天的结束期间运行(我上面已经定义为上午8时和晚上8时之间)。第二个时间表,夜间,从一天的结束到第二天开始期间运行。在Time中选择一天开始和结束的时间及时区。这个时间表遵循日光节约时间,如果是适用于该时区。将来,我们将添加基于其他类型时间的时间表。
一旦你设置了昼/夜时间表,返回到Scale页面和你可以在“时间表”下拉列表中看到,现在有两个你创建的时间表在里面:

image

现在,您可以从列表中选择任一时间表编辑对应的调整规则。例如,你可以选择白日时间表并设置云服务的实例数到5,而夜间时间表中的实例数设到3。这保证Windows Azure白天将您的服务增加到5个实例,然后夜间周期降到3个实例。
您还可以将定时Autoscale规则和基于测量的Autoscale规则结合在一起。选择CPU或Queue,您可以为适用于白天或晚上,设定不同的Autoscale规则。例如,你可以根据CPU活动将实例数范围白天设到从5到10,夜间设到从3到6点。
今天的发布只在云服务上支持定时AutoScale规则,但你会看到我们在不久的将来在各类计算资源(包括网站,移动服务+虚拟机)上启用。
AutoScale 历史记录
现在很容易知道并记录AutoScale为你的服务完成了什么:今天的发布有四个新的AutoScale历史记录功能可以帮助做到这一点。
首先, Windows Azure的操作日志功能增加了两个新的操作:AutoscaleAction和PutAutoscaleSetting。我们现在记录每次AutoScale进行规模增加或缩减行为,包括具体到新的和旧的实例计数。此外,我们会记录每次有人改变AutoScale设置 – 可以看到你团队中的谁什么时候改变了AutoScale选项。在Windows Azure管理门户中,现在这些都可以在新的管理服务节点下操作日志选项卡中看到:

image

对于云服务,我们还加入了历史记录图形显示过去7天实例的数量。通过这种方式,你可以看到在短短一个星期内AutoScale的趋向:

image

第三,如果AutoScale一次失败超过2个小时,我们会自动发送电子邮件通知服务管理员和辅助管理员:

image

第四,如果你是您的订阅的帐户管理员,现在在您的帐户的货币会显示AutoScale的账单信息:

image

如果AutoScale开启,它会告诉你当前实例计数和最大实例数的差距,及你使用它节省了多少。
如果AutoScale关闭,我们会告诉你,如果你打开AutoScale,你将节省多少。换句话说 - 我们正在更新您的账单,包括你如何能在将来付我们更少的钱的建议(请不要告诉我的老板...<g>)
虚拟机:支持配置负载均衡器监测
每一个部署在Windows Azure上的虚拟机、云服务、网站及移动服务将配备了内置的负载均衡器支持,你可以用来扩展你的应用程序规模,并实现高可用性。此负载均衡器支持内置到Windows Azure上,且不收取额外费用(其他大多数云服务提供商让你额外支付)。
今天Windows Azure的更新的包括一些不错的新功能,使它更容易来配置和管理虚拟机的负载均衡器支持,还包括支持自定义网络监测逻辑(我们的负载均衡器用来确定你的虚拟机是否健康,是否应保持负载均衡器的旋转)。
了解负载均衡器
跨多个虚拟机实例的网络流量负载均衡是非常重要的,不论是对于多个虚拟机间大规模的数据流动,还是以及您的应用程序前或后端虚拟机高可用性启用(如在前一节讨论SQL Server中的AlwaysOn)。网络监测是指Windows Azure负载均衡器检测一个或多个虚拟机实例如何失败 - 无论是由于软件或硬件故障。如果网络探测器检测到一个特定的虚拟机实例有问题,流量将自动切换到你的健康的虚拟机实例,防止客户觉得你的应用挂了。
Windows Azure负载平衡器中网络探测器的默认配置仅仅是简单地在您的负载平衡的应用程序的端口使用TCP。如下面的例子所示,每个配置了负载平衡的虚拟机在端口80接收上公共互联网(有可能是网站或网络服务)的TCP流量。通过一个简单的TCP探头,负载平衡器发送一个正在进行的消息给同一端口上的每个虚拟机,默认情况下15秒一次,检查健康情况。如果虚拟机和Web服务是健康的,它会自动回复TCP探测器一个简单的ACK到负载平衡器。当这个ACK继续,负载平衡器会继续发送流量,知道该网站是响应的。
在任何情况下,如果这个网站是不健康的,那么负载平衡器将不会接收来自网站的响应。当发生这种情况时,负载平衡器将停止发送流量到有问题的虚拟机,而是直接发送到其他的两个虚拟机实例,如下图2号虚拟机2所示。这种简单而高可用性选项,无需在VM中写任何特殊代码来回应网络探测器,而且可以保护你免受因应用程序、虚拟机或底层硬件带来的失败(注:如果Windows Azure检测到硬件故障,我们会自动将您的虚拟机实例迁移到新的服务器)。

clip_image001[4]

Windows Azure允许您配置发送网络探针的时间间隔(默认15秒)和负载平衡器使实例脱机前数字探头尝试失败的次数(默认值是2)。因此,默认情况下,30秒后没有收到来自Web服务的响应,负载平衡器会认为它不响应并停止发送流量,直到之后接收到一个健康的响应(15秒每探头*2探头)。

您现在还可以配置自定义HTTP探头 - 这是一种更高级的选项。随着HTTP探头,您可以发送负载平衡器的网络探测请求到另一个网络端口而不是你正进行负载平衡的(这个端口不一定要对互联网开放 - 它最好是只有负载平衡器可以访问的私人端口)。这将需要你的服务或应用程序在这个单独的端口上被侦听并响应探查请求,在应用程序的健康的基础上。 有了HTTP探头,如果负载平衡器能收到一个来自网络探测请求的HTTP 200 OK响应,它将持续流量发送到您的虚拟机。类似上面的TCP时间间隔,默认情况下,当虚拟机不回应HTTP 200 OK30秒后(2×15秒每探针),负载平衡器会自动关闭流量旋转,直到听到下一个探测响应200OK。这种先进的选项需要在那个端口上创建监听及响应的代码,但这会给你更多的控制权在发送到您服务的流量上:

clip_image001[6]

配置负载平衡器探头设置

在今天的发布之前,配置自定义网络探头设置要求您使用PowerShell、我们的跨平台CLI工具,或根据我们的REST管理API写代码。今天的Windows Azure的发布中,我们已经添加了支持使用Windows Azure管理门户来进行配置。
您可以为新的或现有的虚拟机上的端点配置负载平衡设置。为此,您可以通过添加或编辑虚拟机上的端点。配置现有的虚拟机,选择门户网站内VM,并跳转到Endpoints 选项卡。然后添加或编辑你要对外部呼叫者开放的端点:

image

Edit Endpoint对话框中,您可以查看或更改对互联网开放的端口(及今天发布前已建立的):

image

在上面的对话框中勾选“Create Load-Balanced Set”或“Reconfigure the Load-Balanced Set”复选框,将使你进入到向导的另一个页面,显示负载平衡设置和网络探头性能:

image

现在在上面的页面中你可以更改网络探头设置是基于TCP还是基于HTTP,设定你想探测的内部端口(如果你想你的网络比您使用的公共流量服务的端口更为私有、不同),配置监测的时间间隔(默认为15秒次),以及配置机器会自动从网络旋转中移除前网络探头允许失败的次数(默认为2个故障)。
识别网络探测器问题
除了允许您创建/编辑网络探头设置,今天的Windows Azure管理门户发布还可以显示网络探头的配置有误或有问题的情况。例如,如果在虚拟机的预览期间,您创建了一个VM,并在探头未配置好前去配置负载平衡器,我们将得到一个错误图标,告诉你在load-balanced set name下缺少探头配置,这表示负载平衡设置配置不正确:

image

操作日志和即刻警报在门户中“管理服务”一节
此前Windows Azure管理门户中的“警报”和“操作日志”选项卡在“设置”扩展栏下。今天的更新,我们在Windows Azure门户将跨领域管理和监控的功能移到一个新的扩展“管理服务”。我们的目标是提高普通管理服务的发现率,同时为所有的Windows Azure服务提供更好的功能分类。在未来版本中,我们将继续丰富或添加Windows Azure的通用功能。
需要注意的是,这种变化不会影响之前配置的警报规则,只是他们出现在门户网站的位置不一样了。

image

操作日志的额外功能
到今天之前,你会发现云计算服务存储业务的经营历史。在这个版本中,我们为以下几个方面增加额外的操作历史数据:
  • 磁盘操作 - 添加和删除虚拟机磁盘
  • Autoscale:Autoscale设置的变化,Autoscale行动
  • 警报
  • SQL备份配置变化
在今年今后的更新中,我们会将所有其他服务/业务添加到这个列表中。
总结
今天的发布包含了一堆重大的功能,使您能够建立更好的云计算解决方案。如果你还没有Windows Azure帐户,您可以注册免费试用,马上开始使用所有上述功能。访问Windows Azure开发人员中心,以了解更多有关如何构建应用程序。
 

希望这对会你有所帮助,

Scott

P.S.除了博客,我也在使用Twitter快速更新和共享链接。关注我twitter.com/scottgu