将单个
Windows Azure云服务应用程序部署到多个数据中心的推荐方法是什么?
我是否应该在所有数据中心暂停现有应用程序,然后在部署完成后重新启用它们?或者有更好的方法吗?
理想情况下,我希望能够在Windows Azure云项目的配置文件中设置数据中心列表,以便在单个发布操作期间将应用程序同时上载到多个数据中心(例如,美国中北部,西欧)和东亚数据中心).
解决方法
您所描述的将需要一些自定义部署逻辑.我建议您熟悉PowerShell和
Windows Azure Management Cmdlets.有关如何使用PowerShell打包部署的大量示例,请参见
Github.
我会将Azure软件包和服务配置文件上传到每个数据中心(即多个数据中心)中的每个主机服务的临时插槽,使用相同的PowerShell脚本,每个托管服务具有不同的参数.您需要有一些自定义等待逻辑来轮询暂存插槽部署的状态并等待READY状态.完成此操作后,您就会知道您的虚拟机已准备就绪,如果您的应用程序加载速度很快,您也可以使用PowerShell执行VIP交换.
您需要完成此操作的PowerShell命令如下:
>新部署(使用此部署到每个数据中心的托管服务)
> Get-HostedService(使用此命令获取新部署的托管服务的状态)
> Move-Deployment(一旦所有暂存插槽部署准备就绪,使用此功能执行VIP交换)
请注意,即使您构建此项,也有可能在几秒钟内事情将不同步,最差几分钟,因此您的新部署将始终需要与您的基础数据存储系统/架构相反.