[Windows Azure] Windows Azure SDK for .NET 2.0 / Visual Studio Tools for Windows Azure 2.0

在两天前,微软正式发行了 Windows Azure SDK for .NET 2.0 以及所属的 Visual Studio Tools for Windows Azure 2.0,这次的改进除了将新的服务加进来之外,最重要的云端应用程序的诊断功能有了相当大的进步。


在两天前,微软正式发行了 Windows Azure SDK for .NET 2.0 以及所属的 Visual Studio Tools for Windows Azure 2.0,这次的改进除了将新的服务加进来之外,最重要的云端应用程序的诊断功能有了相当大的进步。

1. 针对网站服务的支持

Windows Azure Website Service 是微软 Windows Azure Platform 上重要的服务之一,它简化了 Web Application 发行到 Windows Azure 所需要的大量工作,它也提供了很方便的发行方法以及持续整合的作法,而这次的 Visual Studio Tools for Windows Azure 2.0 将原本的发行配置文件流程更简化到只要在工具内操作就能轻松取得,不必再到管理界面去下载了。

image

在服务器总管 (Server Exploere) 中,也加入了 Windows Azure Website 的项目:

image

在网站上按右键,我们可以执行下列工作:

image

检视设定可以让我们直接浏览与调整网站上的组态,包含重新启动或停止网站等功能,大多数的设定都可以在这里修改,而不必到管理界面去设定,不过目前尚未支持所有的组态,且 Scale 的功能也仍然要回管理界面才能修改:

image

我们也可以浏览记录的功能,不过部分功能会带到管理界面,例如设定记录的功能。

image

其中有一个很特别的功能:串流记录 (Streaming Logs),这是一个很方便的功能,我们可以直接在 Visual Studio 的输出窗格中看到由网站所输出的 Trace 消息,启用方法也很简单,首先要设定应用程序记录的类型:

image

然后在应用程序中下 Trace 命令,例如 (图撷取自 ScottGu 的 blog):

然后在网站上按右键,选择 "在输出窗口中检视串流记录":

image

就可以在输出窗口中看到了 (图撷取自 ScottGu 的 blog):

我们也可以利用 azure command-line 工具来检视 Streaming Log,可参考:http://www.hanselman.com/blog/StreamingDiagnosticsTraceLoggingFromTheAzureCommandLinePlusGlimpse.aspx

不过记录的输出会有时间差,而且必须要在网站账户中拥有 /LogFiles/Application 这个数据夹。

2. 针对云端服务的支持

在 Cloud Service 上的新增功能有两种,一种是增加新的 VM size,针对高内存量的 VM size,现在已可在 VM 大小清单中找到:

image

另外在发行的时候,我们可以选择使用同时更新 (Simultaneous Update):

image

这个选项会让 Windows Azure 舍弃原本的即地更新 (即累加式更新) 策略,而一次更新所有的 Instance,只是这会让服务中断一下,因此非不得己或能容许这种中断时再考虑使用。

3. 诊断功能的强化

早期在处理 Cloud Service 的诊断功能时,我们只能使用程序在 OnRoleStart() 事件常式中增加 DiagnosticsMonitorConfiguration 并重设诊断组态的方式来设定诊断记录的功能,到了 2.0 的时代,我们终于可以省掉这个麻烦。

image

对于早期的 Windows Azure 项目而言,我们要先做这一步,在设定区中的诊断设定才会启用:

image

这个动作会在角色内加入一个 Diagnostics.wadcfg 文件:




  
  
    
    
  
  
  
    
  

其实这就是默认的诊断数据档,在 2.0 之前的版本都是由系统自行维护,而我们只能利用程序来修改它。不过现在我们可以很轻松的使用管理工具就能修改它:

image

目前大部分的记录档都可以使用这个作法来设定,但自订格式的记录档 (Custom Logs) 仍然要以程序定义

另外,针对线上的 Cloud Service,我也可以利用服务器总管中的 Windows Azure 计算 (Computes) 来更新其诊断资讯,其操作方法和在角色组态中相同。

image

我们也可以直接检视线上的诊断记录数据:

image

image

4. Storage

Visual Studio Tools for Windows Azure 2.0 在保存区管理的更新,包含了允许直接编辑 Table Storage,例如直接新增一个表格:

image

image

在 Free Schema 的架构下,我们可以任意的新增或修改字段,并且加入新的 Entity 或删除现有的 Entity:

image

编辑器也十分直觉:

image

另外在右上方有个查询产生器,我们可以利用它来产生查询:

image

查询的条件会自动带到查询文字框内。

5. Service Bus 的更新

针对 Service Bus,Windows Azure SDK for .NET 2.0 新增了部分功能:

  • 消息浏览功能:它可以在不锁住队列的情况下允许开发人员浏览在队列内的消息。
  • 消息泵程序开发模式:具备事件驱动式,或是 "Push" 方式的消息传递模型。
  • 自动化删除闲置消息:允许设定一个周期,由系统利用这个周期以检测是否有闲置太久的消息,若有则自动删除它。

6. PowerShell 的自动化

在 PowerShell 的 Windows Azure 模块中新增数个命令以支持新的或增强的服务,详细清单可参考:https://github.com/WindowsAzure/azure-sdk-tools/blob/master/ChangeLog.txt

7. SDK 2.0 带来的数个服务变化

  • Microsoft.WindowsAzure.Diagnostics.dll 已完成改写,不再需要 Storage Client 1.0,而可直接使用 Storage Client 2.0 来处理诊断资讯,它也可以由 NuGet 来取得。
  • Windows Azure SDK 2.0 不再支持与 1.6 或更早版本的 Side-by-side。
  • Windows Azure SDK 2.0 内的主要组件均已使用 .NET Framework 4.0 改写,不再需要依赖 .NET Framework 3.5,这也表示说之前的 .NET Framework 版本设定若仍为 3.5,要记得改为 4.0 或 4.5。
  • 微软公布了针对云端服务的生命周期资讯,可参考:http://support.microsoft.com/gp/azure-cloud-lifecycle-faq
  • 自 2010 年 10 月份就开放的 VM Role 以及 Windows Azure Connect 即将分别在 2013/5/15 以及 2013/6/30 和大家说再见,使用这些服务的项目或系统请将自己的服务移转到 Windows Azure Virtual Machine 以及 Windows Azure Virtual Network。
  • Web Role 的始祖 HWC (Hosted Web Component) 可能即将要说再见了,因为 2.0 开始强制要求 Web Role 上的网站声明必须符合 Full IIS 的格式规范,这也表示说自 2.0 开始只会有 Full IIS 模式,而不会再有 HWC 模式。
  • 使用 CSUpload.exe 时会出现警告消息,提醒此功能未来会由 PowerShell 的命令取代。

Reference:

  • http://msdn.microsoft.com/en-us/library/dn169556.aspx
  • http://weblogs.asp.net/scottgu/archive/2013/04/30/announcing-the-release-of-windows-azure-sdk-2-0-for-net.aspx