Windows Azure SDK 1.5、Windows Azure Tools for Microsoft Visual Studio 2010和新的服务管理功能发布了
在昨天BUILD 的上的两个主旨发言中,微软宣布了Windows Azure SDK 1.5 和 Windows Azure Tools for Microsoft Visual Studio 2010的可用性。你可以使用Web Platform Installer在这里下载该工具。这三个新发布的产品都旨在简化开发、部署和管理Windows Azure平台。
Windows Azure SDK包含以下新功能:
- 重新架构的模拟器确保了本地和云计算的开发和部署之间更高的保真度。
- 很多根本性的改善(模拟器的性能和部署,部署前的assembly/package验证)。
- csupload.exe中支持上传服务证书和帮助管理远程桌面加密密码的新工具csencrypt.exe。
- 很多增强功能和Windows Azure SDK 1.4的修复程序。
此外用来开发和部署云计算应用程序的Windows Azure Tools for Visual Studio还有几个新增强的功能。这些功能包括:
- 从Web Application project中添加Windows Azure Deployment project。
- 配置Windows Azure上运行的配置文件。
- 创建ASP.NET MVC3 Web Roles。
- 在一个云计算项目中管理多个服务配置。
- Windows Azure packages加强了验证。
现在,很容易添加一个Windows Azure deployment project到通常的web项目中,例如ASP.NET MVC、ASP.NET Web Forms 或 WCF。基于你的web项目类型,如果服务包为了部署需要附加的程序集,程序集的项目属性也会更新。
使用Windows Azure Tools的分析支持,当一个应用程序在Windows Azure里运行,你可以很轻松地检测性能瓶颈。
现在,这些tools支持创建ASP.NET MVC3 web 角色。新模板包含新的通用ASP.NET提供程序,支持SQL Azure并且当你将应用程序部署到Windows Azure时它还将确保ASP.NET MVC程序集与应用程序一起部署。
如果你想维持不同部署环境的不同设置,现在,Windows Azure tools在同一Windows Azure Project中支持多个服务配置。对管理不同的Windows Azure Storage的用于本地调试和在云计算中运行的连接字符串来说,这尤其有用。
最后,新的tools将帮助你在部署应用程序到Windows Azure时避免一些常见的问题。如果你忘记从而没有将本地的程序集包含在包中或发布本地Azure Storage连接字符串,这些tools会提醒你。
若要阅读新特点的更多信息,请点击这里。
Windows Azure Platform Training Kit也为新tools做了相应的更新。Windows Azure Platform Training Kit包含一套全面的技术内容包括动手实验室、演示文稿和代码测试,这些旨在帮助你学习怎样来使用Windows Azure平台。你可以在这里下载。
Windows Azure Service Management API新特性
介绍:
我们也很高兴地宣布下列情形中新的服务管理API的发布:
- 回滚正在进行的配置更新或服务更新
- 在一个正在部署的进程中能够调用多个“写”操作
- 更具描述性的角色实例状态
- 新的API方法:Get Subscription
背景:
Windows Azure Service Management API让Windows Azure客户能编程管理他们的subscriptions、 托管服务和存储账户。
回滚正在进行的配置更新或服务更新
该 API 现在有了一种新方法——回滚更新或升级——可以在正在进行的服务更新或升级中调用它。回滚一个正在进行的部署的影响如下所示:
- 已经更新的或升级到服务包 (*.cspkg) 或 服务配置 (*.cscfg) 文件的任何示例都将回滚到这些文件的先前版本。
- 注意客户不需要再提供这些文件的先前版本——在更新或升级的整个过程中Windows Azure将会保存这些。
- 尚未更新到新版本的任何实例将不是更新的或升级的,因为那些实例已在服务的目标版本中运行。
- 通常情况下,这些实例甚至不会被Windows Azure Fabric
Controller重启来作为升级/更新 及回滚序列的一部分。
下面是关于回滚更新或升级 方法的一些附加信息:
- 如上,正在进行的服务配置更新可以调用回滚(通过改变部署配置)或服务升级(通过升级部署)。
- 调用回滚只在就地更新或升级 中起作用因为 VIP交换 自动升级限定继承,用另一个实例来替换服务的整个运行实例。
- 回滚可以应用在手动或自动模式下的升级。
- 注意回滚本身也可以自动或手动调用。
- 回滚只能在部署上的正在进行的更新(配置改变)或升级中被调用,可以通过检查“RollbackAllowed”标记是否为“true”(由 Get Deployment 或 Get Hosted Service Properties返回)来检测。
- 为了调用该版本的这些方法,返回了RollbackAllowed字段,你必须在请求报头里使用以下(或更高版本):“x-ms-version:
2011-10-01”。关于版本标题的更多信息,请查看服务管理版本。 - 只要至少有一个实例在服务中,这个更新或升级就被视为“正在进行”,尚未更新到新版本。
我可以用到这个的例子是什么样的?
假设你正在向你的Windows Azure托管服务推出一个主要的就地升级。因为你的新版本与旧版本有本质上的不同,你需要控制首次展示受益的比例,所以你在手动模式下调用Upgrade Deployment并开始Walk Upgrade Domains。第一或第二个升级领域的角色实例在升级后正常运行,但是当你正在走第三个升级领域,第一或第二个升级领域的一些角色示例开始没有响应。因此你可以调用该升级的回滚 ,一,这将留下没有触及的示例,这些实例还没有更新或升级;二,回滚实例已被升级到先前服务包和配置(即第一和第二升级领域和第三升级领域的有些实例已经应用了升级)。
为了将服务回滚到先前版本,通过在服务上调用更新或升级不能达到同样的效果吗?换句话说,回滚能给我带来什么呢?
不进行回滚,如果你正在将你的版本从X版升到X+1版并想回到X版,你首先要做的是将所有角色实例更新或升级到X+1版,然后,在那完成之后,开始一个新的更新或升级回到X。进行回滚,这可能缩短进程(将目标版本从X+1变成X,在升级中到X+1),这会导致服务interruption/churn。此外,现在,Windows Azure平台在更新或升级(X)之前从服务版本保留 服务包 (*.cspkg) 和 服务配置 (*.cscfg) 文件,这意味着当客户想要回到先前的版本,他不需要在事件中补给这些。
在一个正在部署的进程中能够调用多个“写”操作
为了给客户提供更灵活地管理器托管的服务,对于当可变的操作在部署中调度时,我们放宽了限制。易变的或写操作是:改变部署配置 、升级部署、 更新部署状态 (用于启动或停止部署),删除部署 、并 回滚更新或升级。特别是,之前的版本,客户只能拥有一个“正在进行”易变的操作:一旦启动此类操作,在开始另一个操作之前,客户不得不等待操作的完成。也就是说,部署被锁定了。
随着新版本的Service Management API 的发布,几个方法(Get Deployment 和 Get Hosted Service Properties)返回一个新的字段,明确地告知客户一个已知部署是否是“锁定的”(不能在它上面有写操作)。此外,持有锁(对于一个给定的部署)的时段实质上被减少了,从而使得平行或中断特定工作流。
- 与RollbackAllowed域一样,为了调用这些返回Locked 字段的API方法的版本,你必须在请求报头中使用以下版本(或更高级别的版本):“x-ms-version: 2011-10-01”。
在什么情况下我可以使用这个?
假设你正在执行升级并在新版本的角色代码中出现了一个bug,这个bug导致了升级的角色示例多次崩溃。这将阻碍升级取得进展——因为Fabric Controller不会移动到下一个升级领域,直到前一版本中足够数量的实例时正常的。这涉及到“stuck deployment”,使用Windows Azure新发布的版本,客户能够让他们“unstuck”。特别是在这种情况下,你可以选择最近的更新或升级 上面toxic的那一个。
更具描述性的角色实例状态
为了提供更好的诊断和服务运行状况监视功能,客户现在可以从Get Deployment 获得他们角色状态的描述性比先前更强的信息。将返回两个新字段 (InstanceStateDetails 和 InstanceErrorCode),并且现有字段(InstanceStatus)将包含新的值,包括:RoleStateUnknown、CreatingVM、StartingVM、 CreatingRole、 StartingRole、 ReadyRole、BusyRole、 StoppingRole、 StoppingVM、 DeletingVM、 StoppedVM、 RestartingRole、CyclingRole、FailedStartingVM和UnresponsiveRole。
- 为了调用此方法,你必须在请求报头中使用以下的版本(或更高级别的版本):“x-ms-version: 2011-10-01”。关于版本控制标头的更多信息,请参阅Service Management Versioning。
新的API方法:Get Subscription
使用Service Management API 新发布的版本,我们介绍一种新方法,Get Subscription,它能获取subscription的基本信息(subscription名、状态和账户及服务管理员的电子邮件地址)以及当前最大用量,详细到存储账户、托管服务和核心的数目。就是用这种方法,以编程的方式获得与subscription相关的分配。
- 为了调用此方法,你必须请求报头中使用以下的版本(或更高级别的版本):“x-ms-version: 2011-10-01”。关于版本控制标头的更多信息,请参阅Service Management Versioning。
在什么情况下我可以使用这个?
有几个立即使用的情况可以使用这个新方法。第一,为了安全及合规,你需要一个程序来定期的为给定的subscription确认服务管理人员配置(即没有为AccountAdmin 和 ServiceAdmin配置一些不必要的值)。第二,这种方法为Windows Azure 清单的主要组成部分提供了可见性。也就是说,CurrentCoreCount值告诉你一共使用了托管服务的多少核心部署。你账单中“运算时间“的部分是基于在计费周期内你的服务使用了多少CPU核心来计算的。
若要在BUILD上阅读Windows Azure相关的所有公告的相关信息,请阅读这个博客帖子: "JUST ANNOUNCED @ BUILD: New Windows Azure Toolkit for Windows 8, Windows Azure SDK 1.5, Geo-Replication for Windows Azure Storage, and More"。想知道有关BUILD的更多信息或相关演讲,请访问BUILD Virtual Press Room。并通过密切注意@WindowsAzure 和 @STBNewsBytes 来获取最新消息和BUILD在线访谈。
Vijay Rajagopalan是Windows Azure的主要集团项目经理。Follow Vijay吧! @vijayrvr。