导出 (0) 打印
全部展开

提高应用程序在 Azure 云服务中的可用性

更新时间: 2014年1月

出于各种原因,托管 Windows Azure 应用程序的角色实例会重新启动或脱机,对于使用一个角色实例托管的应用程序,这会影响其可用性。有时,出现此情况是因为应用程序本身存在问题,或这种情况属于 Windows Azure 一般操作的组成部分(例如,对来宾操作系统的服务修复或自动升级)。

提高 Windows Azure 应用程序可用性的最佳方法是,将应用程序配置为在至少两个升级域中使用至少两个角色实例。这样一来,你便能确保在实例重新启动或脱机(此操作属于一般操作过程的一部分)时至少有一个实例保持运行,从而确保实现应用程序的更高可用性。

Windows Azure 应用程序中每个角色的实例数由配置 (cscfg) 文件中的 Instances 设置控制。

<Role name="<role-name>">
    <Instances count="<number-of-instances>" />    
    <ConfigurationSettings>
      <Setting name="<setting-name>" value="<setting-value>" />
    </ConfigurationSettings>
  </Role>

如果你选择对应用程序使用一个角色实例,下表列出了重新启动角色实例或使角色实例脱机的原因,以及可用于减少停机时间和提高应用程序的可用性的方法:

 

重新启动角色实例或使角色实例脱机的原因 提高可用性的方法

来宾操作系统 (OS) 自动升级:如果应用程序配置为自动升级,则角色实例将在来宾 OS 升级时(大概一月一次)自动重新启动。

执行下列操作之一:

  • 将应用程序配置为手动升级,并在非高峰时间升级实例,这样重新启动就不会显著影响传入通信。有关手动设置来宾操作系统版本的更多信息,请参见管理 Windows Azure 来宾操作系统升级。尽可能选择最新的来宾操作系统。

  • 将应用程序配置为临时使用两个实例,在其中一个实例上手动升级来宾操作系统并保持另一个实例运行,然后在完成升级后恢复为单个实例。

应用程序升级:如果就地升级应用程序(手动或自动),由于存在单个升级域和实例,因此 Windows Azure 将重新启动角色实例以部署新应用程序。

执行下列操作之一:

  • 将升级后的应用程序部署到暂存环境,然后交换虚拟 IP (VIP) 地址。这几乎会立即将通信从生产环境中的应用程序版本切换到暂存环境中的版本。

  • 将应用程序临时配置为使用两个实例,在其中一个实例上手动升级应用程序并保持另一个实例运行,然后在完成升级后恢复为单个实例。

修改应用程序配置:在更新配置设置后,运行应用程序的角色实例将重新启动。

执行下列操作之一:

  • 指定配置更改处理程序,该处理程序可以取消重新启动,从而使角色实例不自动重新启动。

  • 将应用程序临时配置为使用两个实例,在其中一个实例上修改应用程序的配置并保持另一个实例运行,然后在修改完配置设置后恢复为单个实例。

添加、删除或更新证书。

执行下列操作之一:

  • 将更改了证书的应用程序部署到暂存环境,然后交换虚拟 IP (VIP) 地址。这几乎会立即将通信从生产环境中的应用程序版本切换到暂存环境中的版本。

  • 将应用程序临时配置为使用两个实例,在其中一个实例上更改应用程序的证书并保持另一个实例运行,然后在更改完证书后恢复为单个实例。

角色状态为“忙碌”,StatusCheck 事件处理程序促使负载平衡器使实例脱机。

将应用程序修改为不在 StatusCheck 事件处理程序中传递“忙碌”状态。

应用程序通过调用 RoleEnvironment.RequestRecycle() 请求重新启动

将应用程序修改为不请求重新启动。

更新宿主计算机,这会导致该节点上的所有 VM 重新启动。

尽量缩短应用程序的启动时间。

Windows Azure 结构对运行角色实例的 VM 的主计算机执行服务修复。

修改应用程序以适应意外的重新启动。

应用程序崩溃

使用诸如 WADS、Intellitrace 和 RDP 等日志记录和诊断工具来提高应用程序代码的可靠性。有关详细信息,请参阅 Azure 云服务中的故障排除和调试导致角色回收的常见问题

显示:
© 2014 Microsoft