Windows Azure:关于BizTalk 服务,流量管理器,Azure AD应用程序访问+支持Xamarin 框架的移动服务的通用版本

[原文发表地址] Windows Azure: General Availability Release of BizTalk Services, Traffic Manager, Azure AD App Access + Xamarin support for Mobile Services

[原文发表时间] 2013-11-21 11:02 AM

今天早上我们又将一系列重大的扩展增强功能发布到Windows Azure了。这些新的功能包括:

  • BizTalk服务:通用版本
  • 流量管理器:通用版本
  • 活动目录:支持应用程序访问的通用版本
  • 移动服务:支持活动目录,支持基于Xamarin 框架使用C#语言来开发iSO和Android的应用程序,支持并发控制。
  • 通知中心:降价+调试发送支持
  • 网站:支持将诊断日志自动记录到Blob存储器
  • 存储:支持基于存储指标的报警
  • 监控:Windows Azure监控服务库预览版

所有的更新现在马上就可以使用了(这里说明一下,有些功能还只是预览版本)。下面将详细介绍这些功能:

BizTalk服务:通用版本

我非常高兴地宣布Windows Azure BizTalk服务的通用版本发布了。这个版本现在已经部署到生产环境了,支持企业SLA,得到微软支持中心的支持,已经可以在生产场景中使用了。

Windows Azure BizTalk 服务使强大的业务场景,例如供应链、基于云计算的电子数据交换和企业应用程序集成等,都能够有一个熟悉的工具集和企业级的可靠性。 它提供了一些内置支持,可以管理合作伙伴间的电子数据交换关系,也为利用现有资源建立企业应用系统集成提供了桥梁。这些现有资源包括了:已经部署的SAP、SQL Server、Oracle以及Sibel系统。您还可以选择用本地的BizTalk 服务器部署集成Windows Azure BizTalk服务--允许强大的混合企业版解决方案。

创建一个BizTalk服务

创建一个新的BizTalk服务是非常简单的--只需选择新建->应用程序服务->BizTalk服务就可以创建一个新的BizTalk服务的实例:

image

Windows Azure 将提供一个新的高可用性的BizTalk实例供您使用:

image

每个BizTalk服务实例都运行在一个专用的租借环境。一旦供应,您就可以更好地用你的供应链集成业务,也能够和合作伙伴进行EDI交互,同时可以将您的本地系统扩展到云端以促进EAI的集成。

预览和GA之间的变更

我们团队一直非常努力地为Windows Azure BizTalk服务的通用版本做准备工作。除了完成质量外,我们还根据客户在预览版的时候给的需求反馈对一系列的功能做了改进。这些改进包括:

  • 现在甚至可以在基本层和标准层使用B2B和EDI功能(在预览版中只能在高端层使用)。
  • 大大简化配置过程--现在ACS命名空间和自签名证书会为您自动创建。
  • 在Windows Azure区域支持全球部署。
  • 在BizTalk门户支持多重身份认证ID和多重部署。
  • 支持BackUp-Restore以启用业务连续性。

如果你在预览版中已经在使用BizTalk服务,你将会被自动转到GA服务,新的报价将会于2014年1月1日开始生效。

新手入门

阅读本文开始配置你的第一个BizTalk服务。BizTalk服务支持在开发人员层,使您能够以便宜的费用对EDI和EAI负载率做完整的开发和测试。想要了解更多关于该服务和新报价的东西,请阅读BizTalk服务文档

流量管理器:通用版本

我兴奋地宣布Windows Azure 流量管理器也基本可以使用了。这个版本现在已经部署到生产环境了,支持企业SLA,得到微软支持中心的支持,已经可以在生产场景中使用了。

Windows Azure 流量管理器允许您控制您发布在Windows Azure上的应用程序中的用户流量的分配。你的应用程序可以在同一个数据中心运行,也可以被分配到全球的不同区域。流量管理器的工作原理是在域名服务(DNS)中应用一个智能路由策略引擎来查询域名,并映射DNS路由到合适你的应用程序实例。

你可以使用流量管理器来提高应用程序的可用性 – 当出现问题时,用你的一个应用程序启动自动客户流量故障转移场景。你也可以使用流量管理器来提高应用程序的性能 - 通过自动引导你的用户到离他们最近的应用程序实例(例如,你可以建立流量管理器来引导在欧洲的用户到你的一个欧洲的应用程序实例,在北美的用户可以到你的一个美国的应用程序实例)。

新手入门

建立流量管理器是很简单的。只需在Windows Azure管理门户中选择新建->网络服务->流量管理器:

image

当你创建一个Windows Azure流量管理器的时候,你可以指定一个“下载平衡方法” - 这表示你将使用默认的流量路由策略引擎。上面我选择了“故障转移”策略。

image

一旦你的流量管理器实例创建起来了,你可以点击“终端”选项来选择你希望流量管理器引导流量所到的应用程序或者服务终端。下面我已经加了两个虚拟机部署 -- 一个在欧洲,另一个在美国:

image

启用高可用性

流量管理器监控它里面配置的每个应用程序/服务终端的健康,并且当任何服务失败之后,会自动重新指向其他的应用程序/服务终端。

在下面的例子中,流量管理器被配置在“故障转移”策略里,也就是说默认情况下所有的流量都被设置在第一个终端(scottgudemo11),但是如果那个应用程序失败了或者出现问题了(就像下面说的),然后流量就会自动重新定位到下一个终端(scottgudemo12):

image

流量管理器允许您配置协议,端口和监听路径用于监听终端健康。你可以将你的任何网页作为监听路径,或者你可以用一个专用的监控页面,使您能实现自己的用户健康检查逻辑:

image

启动改进性能

你可以部署多个实例到你的应用程序或者服务到不同的地理区域,并且用流量管理器的“性能”负载平衡策略自动将终端客户指引到最近的应用程序。这样通过减少网络延迟体验,为终端用户提高性能:

image

在我们之前创建的流量管理器实例中,我们有一个Windows Azure的虚拟机部署在西欧和美国西部区域:

image

这就意味着当一个在欧洲的用户要访问我们的应用程序时,他们将自动被指引到西欧的应用程序实例。当一个在北美的用户访问我们的应用程序时,他们将自动被指引到美国西部的应用程序实例。

需要注意的是终端监视和故障转移是所有流量管理器负载平衡策略的一个功能,而不仅仅是“故障转移”策略。这就意味着如果上面的某个实例出问题了或者离线了,流量管理器将自动指引用户到健康的实例上。

无缝应用程序更新

你也可以单独的启用或停止你流量管理器中的每一个应用程序/服务终端。只需要选择终端,点击停止命令:

image

这样不会停止下面的应用程序 - 它只会告知流量管理器指引流量到其他地方。这使得当一个特定的应用程序/服务部署更新测试时,你可以将流量迁移走,之后服务将开始循环使用,这些都只需要点击两下。

通用性

因为流量管理器在启用高可用性应用程序中扮演着重要角色,所以流量管理器本身也要很高的可用性。那就是为什么作为通用性的一部分,我们正在为流量管理器发布一个99.99% 正常运行时间的 SLA

流量管理器在预览版的时候是免费使用的。免费政策将持续有效直到2013年12月31日。从2014年1月1日开始,我们将实行以下收费政策:

  • 每百万域名服务查询将收费0.75美元(当达到十亿之后,每百万收费将减少到0.375美元)
  • 每个服务终端每月将收费0.50美元

完整的收费信息已经发布在网站上了。此外关于流量管理器的详细信息都可以在MSDN上找到,包括详细的终端监听描述,所有的配置选择,以及用流量管理器管理REST APIs。

活动目录:应用程序访问的通用性

今年夏天我们为Windows Azure活动目录发布了加强应用程序访问的初始预览版本,它使你能够安全地实现单点登录(SSO)到SaaS的应用程序以及基于LOB的应用程序。从那时起,我们已经增加了超过500个应用程序(包括如Office365,SalesForce.com,Box,谷歌应用程序,Concur,Workday,DropBox,GitHub,等流行的应用程序)的SSO支持。

在我们上个月发布的加强版的基础上,在本周的发布中,我们激动地宣布在Windows Azure活动目录中访问应用程序的通用版本全面上市发行。现在所有的Windows Azure活动目录的用户都可以使用这些功能了,并且没有额外的费用,今天发布的功能如下:

  • 单点登录我们集成的每一个SaaS应用程序
  • 应用程序访问权限分配和移除
  • 支持用户配置和取消配置
  • 三个内置的安全报告
  • 支持管理门户

现在每个客户都可以在Windows Azure管理门户的活动目录扩展中使用应用程序访问这个功能了。

新手入门

为了集成你的活动目录和SaaS或者LOB应用程序,选择Windows Azure管理门户中的目录,移到“应用程序”选项栏,点击“增加”按钮:

image

点击“增加”按钮之后会出现一个对话框,允许你选择是要增加一个LOB应用程序,还是一个SaaS应用程序:

image

点击第二个链接将会出现一个拥有500多个流行的SaaS应用程序,在上面你可以很容易集成你的目录:

image

选择一个你想要启用SSO的应用程序,然后点击确定按钮。这样将会用你的目录注册该应用程序:

image

之后你可以快速的建立单点登录支持,使你的活动目录能够自动给SaaS应用程序配置账户。这使得你的活动目录下的用户能够方便使用他们的企业/活动目录账户登录到SaaS应用程序中。

另外为了使你的员工能够更加方便的登录到应用程序(至少要有一个用户名/密码),这个单点登录支持也能使企业的数据更加安全。如果员工离开了该公司,他们的活动目录账户将会被停用/删除,他们将失去所有的SaaS应用程序的访问权限。活动目录的IT管理员也会有选择性的选择我们在九月份发布的多因素认证支持来要求员工在登录SaaS应用程序时使用第二种认证方式(例如一个手机应用程序或者手机短信的确认)来确保更加安全和单一的访问。Windows Azure多因素认证服务和我们今天发布的SaaS支持结合的非常好 – 字面上来看你可以为任何SaaS应用程序在几分钟之内建立全部的安全支持(完整的多因素认证支持)。

你可以在这里学习更多我们提供的关于Azure Directory的东西,同时你也可以在Windows Azure AD 论坛对于今天的发布提出问题或者提供反馈信息。

移动服务:活动目录集成,支持Xamarin框架,支持并发控制

企业现在渐渐开始移动交付他们的在线商业应用程序。今天我们将要介绍一些关于移动服务令人兴奋的更新,使得建立一个移动LOB应用程序更加简单。

在Windows Azure活动目录中集成移动服务的预览版本

我很高兴的宣布在移动服务中支持Windows Azure 活动目录的预览版本发布了。有了这一支持,移动商务应用程序可以使用同样的易于移动服务的认证体验,使他们的员工能够用他们的企业活动目录证书登录到他们的移动应用程序。

有了这一功能,Windows Azure 活动目录成为又一个在移动服务中支持身份认证的提供者,就像我们身边已经支持此服务的其他提供者(包括微软账户,Facebook账户,谷歌ID和Twitter ID)。你只需要在一个移动服务中点击“身份认证”选项就可以启用活动目录支持:

image

如果你是一个对Windows Azure 活动目录支持感兴趣的企业开发人员,请发信到:mailto:mobileservices@microsoft.com与我们联系注册私有预览版。

用Xamarin和移动服务跨平台连接应用程序

我们早期曾与Xamarin合作交付了一个移动服务SDK,它可以很容易地增加功能到基于 Xamarin框架用C#语言编写的 IOS和Android应用程序中,如存储,认证,推送通知等。之后,成千上万的开发人员下载了该SDK,享受到以Windows Azure作为后端用C#来构建跨平台的移动应用程序的好处。最近,作为Visual Studio 2013发布的一部分,微软宣布了与Xamarin的广泛合作,包括Xamarin平台的可移植类库支持

在今天的发布中,我们为移动服务增加了两个额外的更新:

  • 交付一个已更新的移动服务可移植类库(PCL)SDK,包括对Xamarin.iOS和Xamarin.Android的支持。
  • 新的关于Xamarin.iOS和Xamarin.Android的快速入门项目会直接显示在Windows Azure管理门户中。

这些更新使得构建与跨平台移动应用程序的云连接变得更加简单。

Xamarin和移动服务的新手入门

如果你导航到你的Windows Azure移动服务的快速启动页面,你会看到一个新的选项Xamarin:

image

想要开始Xamarin和移动服务,你只需要点击上面圈住的链接,安装Xamarin工具,然后下载我们在快速启动页面直接提供的Xamarin启动项目:

image

下载完成之后,解压并且在Visual Studio2013中打开。然后会提示你将Visual Studio实例与Mac进行配对,以便你可以在iOS上构建和运行应用程序。请到这里了解安装过程的详细说明。

一旦安装完成了,你可以选择iPhone模拟器作为目标,然后在Visual Studio点击F5键开始运行和调试iOS应用程序:

image

Xamarin和Windows Azure移动服务的结合使得在Visual Studio中用C#构建iOS和安卓应用程序变得难以置信的简单。想要了解更多信息请看看我们的教程和文档。

支持并发控制

今天发布的移动服务还增加了对并发控制的支持。有了并发控制,你的应用程序可以检测和解决不同用户提交的冲突的更新。例如,如果一个用户要从移动服务表格中拿到一个记录进行编辑,同时另一个用户已经更新了这个记录,要是没有并发控制的支持,第一个用户将会覆盖第二个用户更新的数据。有了并发控制,冲突的更改就能被捕获到,你的应用程序也可以给用户提供一个选择,是手动的解决这个冲突,还是实施一个解决方案。

当你创建一个新的表格的时候,你会注意到这里增加了3个系统属性栏来支持并发控制:(1)_版本,保持记录版本,(2)_创建时间,这个记录被插入进来的时间,(3)_更新时间,记录最后被更新的时间。

image

你要想在你的应用程序中使用并发控制,只需要在你的代码中做以下两个更改:

第一,在你的数据模型中加一个版本属性,就像下面的代码片段显示的那样。当更新表中同一个记录的时候,移动服务将会用这个属性来检测冲突:

    1: public class TodoItem 
    2: { 
    3:         public string Id { get; set; } 
    4:  
    5:         [JsonProperty(PropertyName = "text")] 
    6:         public string Text { get; set; } 
    7:  
    8:         [JsonProperty(PropertyName = "__version")] 
    9:         public byte[] Version { get; set; } 
   10: } 

第二,更改你的应用程序使得它可以通过捕获新的异常移动服务前置条件失败异常来处理冲突。移动服务将会返回这个错误,包括冲突项目的服务器版本。然后你的应用程序将会决定退回到哪个版本的服务器以避免这个检测到的冲突。

要想学习更多关于并发控制的东西,可以看我们新的移动服务并发控制教程。也可以检查我们今天的发布中增加的新的支持客户ID的特性 - 这将使得处理多样化的数据模型场景变得更加简单(包括碎片支持)。

通知中心:减价和调试发送改进

在八月分的时候我宣布发布Windows Azure通知中心的通用版本 - 一个强大的移动推送通知服务,它使得发送大容量的推送通知到任何移动设备变得更加简单(包括Windows Phone,Windows 8, iOS和安卓设备)。任何的移动应用程序终端(包括用Windows Azure 移动服务构建的)和在云端或本地运行的终端都可以使用通知中心。

价格更新:从通知中心付费等级中移除对活动设备的限制

为了简化通知中心的定价模式,同时节省客户成本,我们打算解除以前对活动设备的数量的限制。例如,原来通知中心标准级别的消费现在的价格是每月一百万推送只需要75美元,每月五百万推送只需199美元(每天按比例分配)。

从12月15日开始,所有的支付级别都将有机会享受这些降价待遇。这里有更多关于定价的详细信息。

具有调试发送功能的故障排除推送通知

故障排除的推送通知有时候是比较棘手的,因为有很多的组件被包含在里面:你的后台,通知中心,平台通知服务,以及你的客户端应用程序。

为了解决这个问题,在今天的发布中我们增加了一个功能,可以很方便地直接从Windows Azure管理门户发送测试通知。只需要在每个通知中心中导航到新的调试选项栏,指定你是想要给所有的注册设备发送广播还是只为特定的目标设备/设备组提供一个标志(或者是标志表达式),指定你想要发送的通知的有效负载,然后点击“发送”。例如:下面我选择给所有使用iOS版本并且已经在我应用程序中注册了“运动成绩”订阅的用户发送一个测试通知消息为例来演示:

image

通知发送后,你会收到一个你的通知发送到的所有设备的注册清单和依据平台通知服务(WNS,MPNS,APNS,和GCM)发送的指定通知的结果。这样将使得调试问题更加简单。

通知中心的入门帮助,请访问通知中心的文件中心

网站:支持将诊断日志自动记录到Blob存储器

在九月份的时候我们发布了一个Windows Azure网站的更新,使HTTP日志能够自动保存到Windows Azure Blob存储器

今天,我们也更新了网站,使它同样支持将Web站点的应用程序的诊断日志保存至Blob 存储器。这样就能很容易的将你的诊断日志以文本形式保存,文本形式可以无限期存储(因为存储帐户可以保存大量的数据),并且以后您还可以用这些文本来执行丰富的数据挖掘/数据分析。这也使得快速诊断和理解你的代码中可能存在的问题变得更加简单。

在你的代码中增加诊断说明

下面是一个简单的例子,讲的是如何将System.Diagnostics中内置的.NET跟踪API应用到Web应用程序指令代码中。在下面的案例中,我添加了简单的跟踪语句用以记录它调用某个特定的方法(可能是取消调用一个需要花费一段时间的远程服务或数据库)所花费的时间:

image

加入这样的装备代码能让您更容易快速确定在应用程序生产环境中,导致延迟的可能原因。通过记录性能数据,也使得分析随着时间的推移程序的性能趋势成为可能(如分析第99个百分位数的延迟是什么,等等)

在Windows Azure Storage中以Blob的形式保存诊断日志文件

为了使诊断日志能够直接自动写入Blob存储器,只需要使用Windows Azure门户导航到网站选项,点击配置选项栏。然后导航到其中的应用程序诊断部分。从今天开始,你就可以通过配置将“应用程序日志”保存到blob存储器里面。要做到这一点,只需要将按钮“打开”,然后选择你想要保存的日志(错误,冗长,信息等等):

image

点击绿色的“管理blob存储器”按钮,将弹出一个对话框,允许你配置你想要存储诊断日志到哪个blob存储账户:

image

一旦这些做完了就点击“确定”按钮,然后点击“保存”。现在当你的应用程序开始运行的时候,诊断数据将会自动被保存到你的blob存储账户中。

查看应用程序诊断数据

当你的应用程序开始运行的时候,诊断数据几乎是立刻被保存下来的(我们有一个跟踪侦听器,在web站点中可自动进行上述操作,并且允许你每秒记录成千上万的诊断信息)。

你可以使用任何支持Windows Azure Blob存储的标准工具来查看和下载这些日志。下面我使用CloudXplorer工具来查看我的blob存储账户:

image

应用程序诊断日志以.csv文本文件格式保存。Windows Azure 网站自动在blob容器子文件夹里保存这些文件,该文件对应到网站操作的年->月->日->小时(这使得你想找到特定的文件变得更加容易)。

因为它们是.csv文本文件,所以你可以使用各种各样的工具或者用户自定义脚本打开/操作这些日志文件(如果你想要快速分析大量数据,你甚至可以用Windows Azure HDIsight来快速建立一个Hadoop集群)。以下是用Excel打开上述诊断文件的一个简单的例子:

image

注意上面的日期/时间,信息等级,应用程序名字,web服务器实例ID,事件,以及进行和线程ID都被保存了,此外还保存了我用来记录DoSomething方法的延迟的自定义信息。

运行时开启诊断

今天的更新使得记录你的诊断跟踪信息到blob存储变得超级简单(除了已经支持的HTTP日志)。以上步骤是开启诊断必需做的。

每个Windows Azure 存储账户可以储存100TB,同时Windows Azure网站提供了一个有效保存日志的方法,也可以在生产环境中让诊断一直开启,记录你在应用程序中做得每个事情。有了这些保存的数据,你就可以更方便地了解你的应用程序的健康状况,有问题出现的时候就可以进行调试,同时随着时间的推移对他们进行分析使他们变得更好。

存储:支持基于存储指标的警报

在今天的版本中我们增加了支持基于存储指标的警报规则。如果你已经启用了存储分析指标,你现在就可以在这些指标中配置警报规则。

你可以通过在Windows Azure管理门户选择管理服务->警报选项来创建一个存储指标的警报规则。单击添加规则按钮,然后在创建规则对话框中选择存储作为服务类型,选择你想要启用警报的存储帐户,它就在存储服务的旁边(blob,table,queue)。

image

然后选择Blob服务指标,配置阈值和发送推送通知的电子邮件地址:

image

一旦设置并启用成功,警报将会被列入在警报选项卡中:

image

该规则对存储指标起到监控作用,一旦触发上述配置的阈值,就会自动发送一封警报电子邮件。

监控:Windows Azure监控服务库的预览版

今天我们正在发布一个新的Windows Azure 监控服务库的预览版本。这个程序库允许你得到监控指标,并以编程方式配置警报并为您的服务自动优化规则。

我们现在拥有的监控服务客户端包括:

image

我们列举一个使用AlertsClient程序库创建警报规则的示例。对于创建警报规则,首先,你需要指定你要创建警报的服务和操作警报规则的指标。其次,你需要指定达到警报阈值时需要的条件和采取的行动的规则设置。下面的代码显示了如何以编程方式执行此操作:

image

当以上编码执行时,监控警报系统会自动配置而不用手动在管理门户进行任何操作。现在,你可以编写类似的代码来检索有关服务或设置自动优化规则。这使得完全自动执行任务变得很容易。

通过nuget安装

这个监控服务库已经可以 通过nuget使用了。因为它现在还是预览模式,所以当你获取安装包的时候,你需要添加-IncludePrerelease开关。

image

文档

想要关于警报,自动优化和标准的客户端API文档,可以访问这里

总结

今天的发布包含很多重大的功能,使您能够构建更好的云解决方案。如果您还没有一个Windows Azure 账户,你可以登录免费试用,并开始使用上面讲述的所有功能。之后你可以访问Windows Azure开发人员中心,以了解更多有关如何用Windows Azure构建应用程序的说明。

希望这些能够帮助到你

Scott

附:除了写博客外,我现在还使用Twitter来快速更新和共享链接。请跟我到这里: twitter.com/scottgu