MEDC in Las Vegas
Windows Azure:新计划程序服务,读取访问同步冗余存储以及监测更新
[原文发表地址] Windows Azure: New Scheduler Service, Read-Access Geo Redundant Storage, and Monitoring Updates
[原文发表时间] December 12, 2013 12:41 PM
今天早上我们推出了windows Azure的另一组增强功能。今天的新功能包括:
- 程序调度:新的windows Azure计划程序服务
- 存储:新的同步读写冗余存储方案
- 监测:windows Azure服务的监测及诊断的增强功能
所有的这些改进现在都可以使用(注意有些功能仍然是在预览)。下面是有关他们的更多详细信息:
程序调度:新的windows Azure计划程序服务
我很高兴宣布我们可以预览新的Windows Azure调度服务。Windows Azure调度服务允许你安排启用HTTP/S端点的任务或者按你制定的任何计划向存储队列上发送信息。使用调度程序,你可以创建可靠的调用Windows Azure内部或外部服务的任务并且按照常规计划立刻运行或者设置他们在未来某刻运行。
想要开始使用调度程序,首先你需要在Windows Azure Preview 页面上为预览进行注册。一旦在预览页中注册成功后,你可以登陆到管理门户并且开始使用它。
创建一个调度任务
一旦你在你的订阅中启用调度预览,你可以用以下几个简短步骤很容易的创建一个新的任务。
在Windows Azure门户管理网站内单击 新建-> 服务程序 -> 调度 –> 自定义创建:
选择一个你想要运行任务的Windows Azure 区域,之后选择一个已有的任务收集器或者创建一个新的并把任务加进去:
之后你就能定义你的任务操作。在本例中,我们会创建一个向web站点发送GET 请求的HTTP 操作(你也可以使用其他的HTTP协议,像HTTPS)。
对于处理长时间的请求或者在脱机状态启用某项服务,你也许更期望给存储队列添加一些信息而不是坚持启用一个Web 服务。要给存储队列添加信息你只需要选择存储队列作为你的操作,之后创建或选择一个存储帐号及队列用来发送请求:
一旦你定义了你要执行的任务,你现在会想要为它设定循环执行时间表。循环任务可以像立即运行一样简单(对于测试比较有用),在将来的特定时间运行,或者是在一个循环的时间表里面:
一旦任务被创建好,它会被列在任务视图里。
任务视图显示关于所有任务故障/错误信息的摘要——你可以通过单击历史选项卡来获取更多详细信息(包括对于任何基于HTTP任务的HTTP响应的头信息和内容)。
我鼓励你去试试调度程序——我相信你会发现它是一个很有用的方法来可靠的执行自动化任务。以下链接提供了更多关于如何使用它的信息(以及如何用命令行或你自己的程序来自动创建任务):
存储:新的可读地理冗余存储方案
我很高兴地宣布我们新的可读地理冗余存储方案预览版的发布。RA-GRS是对于我们的Windows Azure复制式的地理存储的一个重大改进。今天之前,我们的Geo-Replacated存储选项中内置支持自动复制你的存储数据(Bolb,队列,表)从一个主要地区到另一个地区(例如:美国东部到美国西部),但是不提供对于辅助地区数据的访问除非在发生灾害时需要对存储群集体转移。
今天的更新使你总是可读你的辅助存储备份。这使得你可以在你的主存储位置发生临时故障的时候立即访问你的数据(以及在你的应用程序里内置支持自动处理读取失败的故障)。今天的更新还支持你来测试及跟踪你数据的备份,以便你很容易地验证备份(这在后台异步发生)。
启用读取权限
为了启用RA-GRS支持,你需要在Windows Azure Preview 页面上注册读取访问地理冗余存储预览。一旦你注册到预览中,你可以登录到门户管理网站并且很容易浏览到你的存储账户的配置面板来启用读取权限:
一旦启用,你可以访问你的辅助存储端点位置在myaccountname-secondary.<service>.core.windows.net. 您可以为辅助存储位置使用和主存储端相同的访问键。
对于RA-GRS的其他详细信息以及如何使用它的示例,
请在下面的地址阅读存储博客:
https://blogs.msdn.com/b/windowsazurestorage/archive/2013/12/04/introducing-read-access-geo-replicated-storage-ra-grs-for-windows-azure-storage.aspx
监测:windows Azure的监测及服务诊断的增强功能
今天的更新包括对Windows Azure监测及诊断能力方面的几个不错的增强功能:
高级SQL数据库指标监测
今天的更新可以使你监视高级SQL数据库的CPU和IO活动指标,以及在高级和标准数据库中的存储活动指标。你可以在MSDN上找到更多信息。
更新Web站点诊断
以前,当你为你的web服务器配置HTTP日志的存储位置时,你可以选择一个已经存在blob容器。
此版本中,你可以为你的web服务器日志创建一个单独的新的blob容器,在Windows Azure管理门户中进行统一的配置。你通过简单的导航可以在你的Web站点上找到配置选项卡,单击管理存储按钮之后选择创建一个新的blob容器选项。
对于Windows Azure移动服务的操作历史支持
Windows Azure的操作日志功能允许你审核记录你的Windows Azure服务执行的管理操作。你可以在管理门户的管理服务扩展中单击操作日志选项卡来查看他们:
今天的更新我们为Windows Azure移动服务添加了超过20条新的日志行为,这些行为会显示在操作日志列表中。
摘要
今天的版本包含了一批很棒的功能,能够让你创建更好的云计算解决方案。如果你尚未有Windows Azure的账户,你可以注册一个免费试用帐号并开始使用今天的所有功能。然后访问Windows Azure Developer Center来更深入了解如何用它来创建应用程序。
希望这对你有用,
Scott
Windows Azure服务总线的AMQP支持发布声明
[原文发表地址] Announcing the release of AMQP support with Windows Azure Service Bus
[原文发表时间] 2013-5-23 7:42 AM
在过去的五年中,微软和其他公司一起致力于开发高级消息队列协议(AMQP)标准。这20多家公司包括技术供应商,有红帽、威睿,及像摩根大通、瑞士信贷一样的企业。目标是建立一个开放的、线级的消息传送协议标准,使不同的供应商之间的互操作更加简单。回到2012年十月,OASIS标准组织宣布通过AMQP 1.0为OASIS标准,在同一天,我们发布了执行AMQP1.0的Windows Azure服务总线的预览。
今天,我很高兴地宣布AMQP 1.0支持在Windows Azure服务总线已经发布,并正式供应(GA)--它已经可以实际投入应用,为企业SLA支持。
可互操作的消息
这次发布意义重大。随着支持AMQP 1.0,你现在可以使用Windows Azure服务总线来创建这样的应用程序,它可以使用各种各样的消息库、使用不同的语言或者在不同的操作系统上运行—现在都可以使用高效的、二进制、线级协议来进行通信。
因为AMQP 1.0定义了一种可移植的数据表现形式,这意味着从.NET程序发送到服务总线的消息可以被Java程序或者Python/Ruby/PHP脚步读取而不丢失任何结构或消息内容。在Java中,标准的Java消息服务(JMS)API是支持的,因此可以直接把已存在的Java应用程序从任何其它的JMS提供端移植到服务总线。
最终的结果是产生了强力的中间件,可以用来创建分布式系统,将跨内部部署/云环境或者跨多个云提供商运行的应用程序连为一体。
演示如何使用AMQP来创建一个Pub/Sub解决方案
为了突出使用这个新的信息支持是多么的容易,我将演示如何创建一个简单的.NET控制台应用程序,它采用发布/订阅消息模式来发送消息到由Java,Python和PHP编写的接收端应用程序。Windows Azure服务总线现在提供了pub/sub消息传递所有必要的支持,以便于使用开放的AMQP协议和已经存在的消息传递框架。
.NET发送端应用程序将消息发送给服务总线"主题"--是持久的消息传递中介。不像队列,队列中的每一个消息由单个消费者应用程序处理,而主题提供一对多的窗体通信,采用发布/订阅模式。它允许注册多个订阅到主题—当一个消息发送到主题时,每个订阅可以独立处理该消息。
你可以把每个订阅想象为虚拟的持久队列,它接收发送给主题的消息副本。你可以选择为主题上的任何订阅注册过滤规则,允许主题订阅过滤/限制接收发送给主题的消息。使你能够跨越大数量的用户和应用程序选择性处理大数量的消息。
在这个方案中我们将让.NET控制台应用程序发送消息到"scottmessages"主题,然后为这三个监听应用程序设置各自的订阅分别由Java 、Python和PHP编写--来接收并处理消息。
步骤1 :创建一个服务总线主题和三个订阅
我们的第一步是使用Windows Azure门户来创建服务总线主题。
我们将在"scottgu-ns"命名空间中创建一个主题 "scottmessages"。Windows Azure管理门户使这很容易做--只要单击"新建"按钮和导航到应用程序服务(App Services)->服务总线(Service Bus)->主题(Topic)->快速创建选项(Quick Create option)(你也可以以编程的方式和命令行来创建):
一旦"scottmessages"主题创建好,我们点进去就看到一个熟悉的Windows Azure监测仪表盘视图:
然后我们将为主题创建三个订阅--一个对应一个我们的监听器。我们将这些命名为"java"、"python"、"php"来和每个应用程序所使用的语言对应(注意:我们可以按我们需要的任何命名--我使用这些名字只是想让它更清楚哪个对应哪个)。我们可以编程来实现,或者通过单击门户命令栏中的"创建订阅(Create Subscription)"按钮。这会弹出一个对话框让我们为我们想要创建的订阅命名:
第二个对话框屏幕允许我们自定义订阅属性像默认消息生存时间(在它被删除前停留在队列中的时间)、锁和会话设置,等等:
单击ok按钮将为我们的主题创建一个订阅。我们将重复这个步骤来再创建两个订阅,这样我们就有了我们想要的三个订阅了:
等我们做完了这个,当一条消息发送到"scottmessages"主题时它将持久的排队等候每个订阅。持久等候意味着当消息发送到后消费者应用程序不再需要积极地监听订阅。消息将自动排队等候订阅应用程序来处理当它们连接上后。这启用了一个非常强大的、松散耦合的应用架构,允许你可以跨越庞大数量用户和应用程序的选择性处理大量消息。
步骤2 : 编写 .NET发送应用程序
现在我们已经创建好了服务总线主题和订阅,我们将写一个简单的.NET应用程序来发送消息给主题。
在最近版本的服务总线.NET客户端库中AMQP是支持的,你可以通过NuGet获取到--https://nuget.org/packages/WindowsAzure.ServiceBus/.要求2.1.0版本或者更新的。只要健入"安装WindowsZaure.ServiceBus包"来下载和把它添加到你的.NET应用程序。
下面的代码是一个简单的.NET控制台应用程序提示用户在控制台应用程序输入消息内容,然后应用程序使用服务总线.NET API来发送每个用户输入的消息到我们上面创建的"scottmessages"服务总线主题:
上面的代码是使用NET的ConnectionManaer类从app.config文件中导入配置设置。我使用这种方法来获得我
们的服务总线主题的连接字符串(并避免在代码中的硬编码)。这是我用来指定字符串的App.cofig文件:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> <appSettings> <add key="Microsoft.ServiceBus.ConnectionString" value="Endpoint=sb://scottgu-ns.servicebus.windows.net/;SharedSecretIssuer=owner;
SharedSecretValue=sSDdaewGUo3/wsaewtjhELlCi1y3SRwjFMX01tz2c/AXw=;TransportType=Amqp" /> </appSettings> </configuration>
注意:你可以在Windows Azure门户中获取服务总线主题的连接字符串,通过选中主题( Topic )然后
单击在门户下方命令栏里的"访问密钥( Access Key )"按钮。需要注意的是配置.NET客户端库使用
AMQP ,我追加" ;TransportType=Amqp "到连接字符串中。
运行控制台应用程序
现在让我们一起运行.NET控制台应用程序。点击F5生成一个控制台应用程序,我们现在可以键入消息发送到主题。这儿是一些简单的输入:
上面输入的每一条消息被发送到服务总线主题--它将在我们创建的来处理消息的三个订阅中依次生成一个消息副本来持久排队。
步骤3 : 编写一个Java应用程序监听器
现在让我们一起来编写一个java应用程序,它将会连接到其中的一个订阅并且处理消息。
在Java中标准的消息API是JMS—Java消息服务。JMS不指定任何关于底层的传输,因此不同的JMS产品使用不同的协议来和它们各自的消息代理交流。我将使用Apache的一个标准JMS提供程序,它使用AMQP 1.0作为底层的协议。使用这个库,Windows Azure服务总线变成了一个开放的标准JMS提供程序!
你可以在https://people.apache.org/~rgodfrey/qpid-java-amqp-1-0-client-jms.html获取Apache AMQP提供程序。下列的四个分布存档的JAR文件需要添加到你的Java类路径(CLASSPATH),当生成和运行应用程序的时候会使用到:
- geronimo-jms_1.1_spec-1.0.jar
- qpid-amqp-1-0-client-[version].jar
- qpid-amqp-1-0-client-jms-[version].jar
- qpid-amqp-1-0-common-[version].jar
我们然后可以编写后面的Java代码,那将使用标准的 JMS通信API来连接到我们的服务总线订阅和处理队列中的消息:
请注意Apache JMS提供程序使用一个简单的基于JNDI提供程序的文件来配置JMS"管理的对象",包括连接的细节和消息实体的物理命名的映射逻辑。这是我使用的servicebus.properties文件,它将连接字符串细节嵌入到Windows Azure服务总线主题:
connectionfactory.SBCF = amqps://owner:sSDdaYGUo3%2FwpewtjhELlCi1y4SSwjFGX01tz2c%2FAXw%3D@scottgu-ns.servicebus.windows.net
topic.EntityName = scottmessages
此属性文件定义了一个ConnectionFactory "SBCF",它包含了从服务总线连接字符串的构成部分。格式如下所示:
amqps://[username]:[password]@[namespace].servicebus.windows.net
在上面的格式中,[username]对应发布者,[password]是一个发布者密钥的URL编码格式。你必须手动将发布者密钥的URL编码化。一个有用的URL编码工具在https://www.w3schools.com/tags/ref_urlencode.asp。
运行Java 应用程序
当我们运行这个应用程序,它将连接到我们的服务总线主题的"Java"订阅和产生下面的输出:
Receiving messages. Press enter to stop.
Message From Scott > Red Shirts are cool
Message From Scott > Cross-platform messaging is so simple with AMQP and Service Bus
Message From Scott > Windows Azure Rocks!
Shutting down.
请注意我们使用.NET发送到主题的消息如何被Java应用程序无缝的处理掉!
流行的Java框架像Spring和JEE使用JMS来集成不同的通信系统--你现在可以使用这些框架编写组件,由Windows服务总线来驱动通信系统,一样无缝的互操作和集成其它语言和框架。
步骤4 :创建一个Python应用程序监听器
现在让我们一起编写一个Python应用程序,它将连接到另一个订阅并且处理消息。我们将Python应用程序托管在Linux虚拟机上。
我们可以使用Windows Azure可以非常容易得创建Linux虚拟机。只要在门户选中新命令(New command),使用电脑(Computer)->虚拟机(Virtual Machine)->快速创建选项来创建一个CentOS虚拟机(Quick Create option to create a CentOS virtual machine):
一旦虚拟机预备我们可以SSH到它来配置和安装程序。
在我们的Linux虚拟机上安装Proton库
针对Python和PHP应用程序,我们将使用Apache的Proton客户端库,可以在https://qpid.apache.org/proton/download.html下载。Proton库提供一个AMQP 1.0组件库,我们将用它来和Windows Azure服务总线通信。Proton分布文档的README文件详细介绍了安装依赖项和生成Proton需要的步骤。这是我使用Linux虚拟机命令行的操作步骤的总结:
1)编辑yum配置文件(/etc/yum.conf)和注释掉排除核心头部更新((# exclude=kernel*)。这是安装gcc编译器必需要做的
2)安装各种必备包:
>> yum install gcc cmake libuuid-devel
>> yum install openssl-devel
>> yum install swig python-devel ruby-devel php-devel java-1.6.0-openjdk
>> yum install epydoc
3)下载Proton库
>> wget https://www.bizdirusa.com/mirrors/apache/qpid/proton/0.4/qpid-proton-0.4.tar.gz
4)从分布存档中提取Proton代码
>> tar -xvf qpid-proton-0.4.tar.gz
5)使用下面的步骤生成和安装代码,采取自README文件
在你找到README文件的路径下运行:
mkdir build
cd build
# Set the install prefix. You may need to adjust depending on your
# system.
cmake -DCMAKE_INSTALL_PREFIX=/usr ..
# Omit the docs target if you do not wish to build or install
# documentation.
make all docs
# Note that this step will require root privileges.
sudo make install
做完这一切,Proton将会安装在机器上和准备好供您使用。这是我编写用来接收来自我们Windows Azure 服务总线主题"python"订阅消息的Python代码:
import sys from proton import Messenger, Message broker = "amqps://owner:sSDdaYHUo3/wpewtjhEDlCi1y6SRwjFMX01tz2c/AXw=@scottgu-ns.servicebus.windows.net" entityName = "scottmessages/Subscriptions/python" messenger = Messenger() messenger.subscribe("%s/%s" % (broker, entityName)) messenger.start() msg = Message() while True: messenger.recv(10) while messenger.incoming: try: messenger.get(msg) except Exception, e: print e else: print "Message From Scott > %s" % msg.body messenger.stop() print "Done"
以上需要注意的几件事:
amqps://[issuer-name]:[issuer-key]@[namespace].servicebus.windows.net
- 我们接收消息的实体名字(entityName)是这格式
[topic-name]/Subscriptions/[subscription-name]。
现在当我们运行上面的python脚本(从我们的Linux虚拟机)我们将使用AMQP连接到Windows Azure服务总线,可以看到从我们的.NET应用程序发布的消息:
其中一件真的非常酷的事情是上面的应用程序是使用Python在Linux虚拟机上运行,它利用开源的AMQP库,且只使用了开放的AMQP协议来和Windows Azure 服务总线消息系统通信。
步骤5 :创建一个PHP应用程序监听器
现在让我们一起完成编写PHP应用程序,连接到我们最后的主题订阅并且处理消息。我们将这个PHP应用程序托管在上面我们使用的同一台Linux虚拟机上,使用Python使用的同一个Proton库。这是在PHP中使用的代码:
这是当我们在Linux虚拟机上运行命令行时输出的内容:
总结
以上的例子演示了使用开放的AMQP协议连接到Windows Azure服务总线是如何的简单及现有的AMQP 1.0已为各个团体所支持。
新的AMQP支持在Windows Azure服务总线将使生成功能强大的分布式应用程序更加简单,实现跨多系统并互操作。和上面的一样一件很酷的值得注意的事是,因为它是在不同语言之间交换的,消息是如何保存的。此示例使用的是简单的文本字符串作为主体,但是同样也适用于更复杂的消息格式,包括列表和映射。AMQP 1.0可移植数据表现形式实现了这一点。
在这里有一些关于服务总线支持AMAP 1.0更多的信息连接:
- David Ingham关于服务总线的演讲和AMQP 1.0 在2012//build/ conference
如果你还没有一个Windows Azure账号,你可以免费尝试注册一个并今天就开始使用以上所讲的所有特性。
希望这对会你有所帮助,
Scott
除了博客,我也在使用推特快速更新和共享链接。关注我:twitter.com/scottgu
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服务的实例:
Windows Azure 将提供一个新的高可用性的BizTalk实例供您使用:
每个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管理门户中选择新建->网络服务->流量管理器:
当你创建一个Windows Azure流量管理器的时候,你可以指定一个"下载平衡方法" - 这表示你将使用默认的流量路由策略引擎。上面我选择了"故障转移"策略。
一旦你的流量管理器实例创建起来了,你可以点击"终端"选项来选择你希望流量管理器引导流量所到的应用程序或者服务终端。下面我已经加了两个虚拟机部署 -- 一个在欧洲,另一个在美国:
启用高可用性
流量管理器监控它里面配置的每个应用程序/服务终端的健康,并且当任何服务失败之后,会自动重新指向其他的应用程序/服务终端。
在下面的例子中,流量管理器被配置在"故障转移"策略里,也就是说默认情况下所有的流量都被设置在第一个终端(scottgudemo11),但是如果那个应用程序失败了或者出现问题了(就像下面说的),然后流量就会自动重新定位到下一个终端(scottgudemo12):
流量管理器允许您配置协议,端口和监听路径用于监听终端健康。你可以将你的任何网页作为监听路径,或者你可以用一个专用的监控页面,使您能实现自己的用户健康检查逻辑:
启动改进性能
你可以部署多个实例到你的应用程序或者服务到不同的地理区域,并且用流量管理器的"性能"负载平衡策略自动将终端客户指引到最近的应用程序。这样通过减少网络延迟体验,为终端用户提高性能:
在我们之前创建的流量管理器实例中,我们有一个Windows Azure的虚拟机部署在西欧和美国西部区域:
这就意味着当一个在欧洲的用户要访问我们的应用程序时,他们将自动被指引到西欧的应用程序实例。当一个在北美的用户访问我们的应用程序时,他们将自动被指引到美国西部的应用程序实例。
需要注意的是终端监视和故障转移是所有流量管理器负载平衡策略的一个功能,而不仅仅是"故障转移"策略。这就意味着如果上面的某个实例出问题了或者离线了,流量管理器将自动指引用户到健康的实例上。
无缝应用程序更新
你也可以单独的启用或停止你流量管理器中的每一个应用程序/服务终端。只需要选择终端,点击停止命令:
这样不会停止下面的应用程序 - 它只会告知流量管理器指引流量到其他地方。这使得当一个特定的应用程序/服务部署更新测试时,你可以将流量迁移走,之后服务将开始循环使用,这些都只需要点击两下。
通用性
因为流量管理器在启用高可用性应用程序中扮演着重要角色,所以流量管理器本身也要很高的可用性。那就是为什么作为通用性的一部分,我们正在为流量管理器发布一个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管理门户中的目录,移到"应用程序"选项栏,点击"增加"按钮:
点击"增加"按钮之后会出现一个对话框,允许你选择是要增加一个LOB应用程序,还是一个SaaS应用程序:
点击第二个链接将会出现一个拥有500多个流行的SaaS应用程序,在上面你可以很容易集成你的目录:
选择一个你想要启用SSO的应用程序,然后点击确定按钮。这样将会用你的目录注册该应用程序:
之后你可以快速的建立单点登录支持,使你的活动目录能够自动给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)。你只需要在一个移动服务中点击"身份认证"选项就可以启用活动目录支持:
如果你是一个对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:
想要开始Xamarin和移动服务,你只需要点击上面圈住的链接,安装Xamarin工具,然后下载我们在快速启动页面直接提供的Xamarin启动项目:
下载完成之后,解压并且在Visual Studio2013中打开。然后会提示你将Visual Studio实例与Mac进行配对,以便你可以在iOS上构建和运行应用程序。请到这里了解安装过程的详细说明。
一旦安装完成了,你可以选择iPhone模拟器作为目标,然后在Visual Studio点击F5键开始运行和调试iOS应用程序:
Xamarin和Windows Azure移动服务的结合使得在Visual Studio中用C#构建iOS和安卓应用程序变得难以置信的简单。想要了解更多信息请看看我们的教程和文档。
支持并发控制
今天发布的移动服务还增加了对并发控制的支持。有了并发控制,你的应用程序可以检测和解决不同用户提交的冲突的更新。例如,如果一个用户要从移动服务表格中拿到一个记录进行编辑,同时另一个用户已经更新了这个记录,要是没有并发控制的支持,第一个用户将会覆盖第二个用户更新的数据。有了并发控制,冲突的更改就能被捕获到,你的应用程序也可以给用户提供一个选择,是手动的解决这个冲突,还是实施一个解决方案。
当你创建一个新的表格的时候,你会注意到这里增加了3个系统属性栏来支持并发控制:(1)_版本,保持记录版本,(2)_创建时间,这个记录被插入进来的时间,(3)_更新时间,记录最后被更新的时间。
你要想在你的应用程序中使用并发控制,只需要在你的代码中做以下两个更改:
第一,在你的数据模型中加一个版本属性,就像下面的代码片段显示的那样。当更新表中同一个记录的时候,移动服务将会用这个属性来检测冲突:
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版本并且已经在我应用程序中注册了"运动成绩"订阅的用户发送一个测试通知消息为例来演示:
通知发送后,你会收到一个你的通知发送到的所有设备的注册清单和依据平台通知服务(WNS,MPNS,APNS,和GCM)发送的指定通知的结果。这样将使得调试问题更加简单。
通知中心的入门帮助,请访问通知中心的文件中心。
网站:支持将诊断日志自动记录到Blob存储器
在九月份的时候我们发布了一个Windows Azure网站的更新,使HTTP日志能够自动保存到Windows Azure Blob存储器。
今天,我们也更新了网站,使它同样支持将Web站点的应用程序的诊断日志保存至Blob 存储器。这样就能很容易的将你的诊断日志以文本形式保存,文本形式可以无限期存储(因为存储帐户可以保存大量的数据),并且以后您还可以用这些文本来执行丰富的数据挖掘/数据分析。这也使得快速诊断和理解你的代码中可能存在的问题变得更加简单。
在你的代码中增加诊断说明
下面是一个简单的例子,讲的是如何将System.Diagnostics中内置的.NET跟踪API应用到Web应用程序指令代码中。在下面的案例中,我添加了简单的跟踪语句用以记录它调用某个特定的方法(可能是取消调用一个需要花费一段时间的远程服务或数据库)所花费的时间:
加入这样的装备代码能让您更容易快速确定在应用程序生产环境中,导致延迟的可能原因。通过记录性能数据,也使得分析随着时间的推移程序的性能趋势成为可能(如分析第99个百分位数的延迟是什么,等等)
在Windows Azure Storage中以Blob的形式保存诊断日志文件
为了使诊断日志能够直接自动写入Blob存储器,只需要使用Windows Azure门户导航到网站选项,点击配置选项栏。然后导航到其中的应用程序诊断部分。从今天开始,你就可以通过配置将"应用程序日志"保存到blob存储器里面。要做到这一点,只需要将按钮"打开",然后选择你想要保存的日志(错误,冗长,信息等等):
点击绿色的"管理blob存储器"按钮,将弹出一个对话框,允许你配置你想要存储诊断日志到哪个blob存储账户:
一旦这些做完了就点击"确定"按钮,然后点击"保存"。现在当你的应用程序开始运行的时候,诊断数据将会自动被保存到你的blob存储账户中。
查看应用程序诊断数据
当你的应用程序开始运行的时候,诊断数据几乎是立刻被保存下来的(我们有一个跟踪侦听器,在web站点中可自动进行上述操作,并且允许你每秒记录成千上万的诊断信息)。
你可以使用任何支持Windows Azure Blob存储的标准工具来查看和下载这些日志。下面我使用CloudXplorer工具来查看我的blob存储账户:
应用程序诊断日志以.csv文本文件格式保存。Windows Azure 网站自动在blob容器子文件夹里保存这些文件,该文件对应到网站操作的年->月->日->小时(这使得你想找到特定的文件变得更加容易)。
因为它们是.csv文本文件,所以你可以使用各种各样的工具或者用户自定义脚本打开/操作这些日志文件(如果你想要快速分析大量数据,你甚至可以用Windows Azure HDIsight来快速建立一个Hadoop集群)。以下是用Excel打开上述诊断文件的一个简单的例子:
注意上面的日期/时间,信息等级,应用程序名字,web服务器实例ID,事件,以及进行和线程ID都被保存了,此外还保存了我用来记录DoSomething方法的延迟的自定义信息。
运行时开启诊断
今天的更新使得记录你的诊断跟踪信息到blob存储变得超级简单(除了已经支持的HTTP日志)。以上步骤是开启诊断必需做的。
每个Windows Azure 存储账户可以储存100TB,同时Windows Azure网站提供了一个有效保存日志的方法,也可以在生产环境中让诊断一直开启,记录你在应用程序中做得每个事情。有了这些保存的数据,你就可以更方便地了解你的应用程序的健康状况,有问题出现的时候就可以进行调试,同时随着时间的推移对他们进行分析使他们变得更好。
存储:支持基于存储指标的警报
在今天的版本中我们增加了支持基于存储指标的警报规则。如果你已经启用了存储分析指标,你现在就可以在这些指标中配置警报规则。
你可以通过在Windows Azure管理门户选择管理服务->警报选项来创建一个存储指标的警报规则。单击添加规则按钮,然后在创建规则对话框中选择存储作为服务类型,选择你想要启用警报的存储帐户,它就在存储服务的旁边(blob,table,queue)。
然后选择Blob服务指标,配置阈值和发送推送通知的电子邮件地址:
一旦设置并启用成功,警报将会被列入在警报选项卡中:
该规则对存储指标起到监控作用,一旦触发上述配置的阈值,就会自动发送一封警报电子邮件。
监控:Windows Azure监控服务库的预览版
今天我们正在发布一个新的Windows Azure 监控服务库的预览版本。这个程序库允许你得到监控指标,并以编程方式配置警报并为您的服务自动优化规则。
我们现在拥有的监控服务客户端包括:
我们列举一个使用AlertsClient程序库创建警报规则的示例。对于创建警报规则,首先,你需要指定你要创建警报的服务和操作警报规则的指标。其次,你需要指定达到警报阈值时需要的条件和采取的行动的规则设置。下面的代码显示了如何以编程方式执行此操作:
当以上编码执行时,监控警报系统会自动配置而不用手动在管理门户进行任何操作。现在,你可以编写类似的代码来检索有关服务或设置自动优化规则。这使得完全自动执行任务变得很容易。
通过nuget安装
这个监控服务库已经可以 通过nuget使用了。因为它现在还是预览模式,所以当你获取安装包的时候,你需要添加-IncludePrerelease开关。
文档
想要关于警报,自动优化和标准的客户端API文档,可以访问这里。
总结
今天的发布包含很多重大的功能,使您能够构建更好的云解决方案。如果您还没有一个Windows Azure 账户,你可以登录免费试用,并开始使用上面讲述的所有功能。之后你可以访问Windows Azure开发人员中心,以了解更多有关如何用Windows Azure构建应用程序的说明。
希望这些能够帮助到你
Scott
附:除了写博客外,我现在还使用Twitter来快速更新和共享链接。请跟我到这里: twitter.com/scottgu。
今天,我们发布Windows Azure的备份服务作为一般的可用服务。此版本现处于生产阶段,它是基于企业服务级别协议的,并以微软支持部门作为后盾,已准备好用于生产。
Windows Azure的备份是对于Windows服务器解决方案备份的云,为防止数据丢失,它允许对文件和文件夹进行备份,从云恢复,并提供异地保护来防止数据丢失。该服务使IT管理员和开发人员可以从没有前期硬件成本的任何地方,以易于回收的方式选择备份和保护关键数据。
Windows Azure的备份是建立在Windows Azure平台上的,并使用Windows Azure的Blob来存储客户数据。Windows Server使用可下载的Windows Azure的备份代理安全地,高效地传输文件和文件夹的数据到Windows Azure备份服务。除了为Windows Server提供云备份, Windows Azure的备份服务也提供从系统中心数据保护管理和Windows Server Essentials中备份数据到云的能力。
Windows Azure的Hyper-V的恢复管理通过安排在辅助的位置复制和恢复System Center Virtual Machine Manager 2012 SP1和System Center Virtual Machine Manager2012 R2私有云来保护您业务的关键的服务。拥有自动保护,持续的异步复制功能,有序恢复功能的Hyper-V恢复管理器服务可以帮助准确连续且在最小的停机时间内帮你您实现灾难恢复以及,储存储重要的服务。
在今天之前的版本中,当你删除Windows Azure中的虚拟机时,我们将删除该虚拟机实例 - 但不能删除连接到虚拟机的驱动器。 你必须从存储帐户自己手动删除这些。 随着今天的更新,我们已经添加了一个方便的选择,那就是当你删除该虚拟机时,同时可以让你选择保留或删除附加的磁盘:
我们还添加一个功能,即就是用一个单一的动作删除云服务,它的部署,其角色实例。既可以是一个在production环境和staging环境同时拥有web角色和wroker 角色的云服务,,也可以是包含虚拟机的云服务。 要做到这一点,只需选择Windows Azure管理门户中的云服务,然后单击"删除"按钮:
Windows Azure的虚拟机支持的很好的功能特性其中的一个是"可用性组"的概念。 一个"可用性组"允许你定义一个层次/角色(例如webfrontends,databaseservers等),可以将映射虚拟机到其中。当你这样做之后,Windows Azure将他们分散到所有的容错域,并确保其中至少有一个是服务操作过程中始终可用。 这使你能够在一个高可用性的方式部署下应用程序。
一些客户遇到了一个问题是,他们定义了一个可用性组,但后来忘记映射多个虚拟机到它上面(这违背了可用性组的目的)。在今天的发布版本里,如果你的可用性组只有一个虚拟机映射到上面,那么Windows Azure管理门户将会显示一条警告来帮助提醒你这个问题:
今天Windows Azure的发布使得配置SQL Server Always on更容易,只需要通过在Windows Azure管理门户中使能"Direct Server Return"端点即可 此前,设置此功能必需要使用PowerShell来完成端点配置。 从今天开始,你可以简单地通过选中"Direct Server Return"复选框来启用SQL Server Always On:
今年夏天,我们推出了我们最初的Windows Azure 活动目录应用访问能力增强的预览版本。 此服务使你能够安全地实现单点登录(SSO)应用程序,包括SaaS应用程序(包括Office 365,Salesforce的工作日,盒,Google应用服务,GitHub等)以及基于LOB应用程序(包括那些用上周我们嵌入SP.NET和VS 2013附带的Windows Azure AD 生成的应用程序 )。
你可以使用一个Microsoft 帐户 (例如 Windows Live ID) 或基于组织账户的活动目录作为电子邮件帐户。该对话框将根据你输入电子邮件地址的类型更新适当的登录提示,这取决于:
如果你想在你的帐户里将订阅映射到映射不同目录下,只需从列表中选择订阅,然后单击"编辑目录"按钮,选择将它映射到的目录。订阅映射到不同的目录只需几秒钟,不会造成任何订购内资源的回收或停止工作。我们所做的目录到订阅间映射过程的自助服务,让你始终拥有完全的控制并可以映射任何东西。
Comments
Post a Comment