我们有一个 Azure 云服务,其中包含一些运行 ASP.NET 网站的虚拟机。当我们升级应用程序时,我们希望将每个 VM 从云服务中删除,以便用户在部署之前不会获得降级的体验。
这似乎不可能,这表明我们“做错了”。
任何人都可以帮忙吗?
我们有一个 Azure 云服务,其中包含一些运行 ASP.NET 网站的虚拟机。当我们升级应用程序时,我们希望将每个 VM 从云服务中删除,以便用户在部署之前不会获得降级的体验。
这似乎不可能,这表明我们“做错了”。
任何人都可以帮忙吗?
如果您使用的是 Windows Azure VM,而不是云服务 - Web 角色,那么您必须自己管理应用程序更新过程。Web 角色提供了前面提到的就地升级和 VIP 交换功能。这些是处理应用程序升级过程的绝佳选择。
自然地,在就地升级期间,Azure 将通过所谓的“尊重升级域”执行您想要的操作 - 角色实例将一次更新一个更新域并重新启动(仅限角色实例,而不是其 VM)。
但是,这不是我建议使用的,因为如果升级出错,则无法回滚。更好的方法是部署一个新的临时部署,检查它是否运行良好,执行“交换 VIP”,然后停止并删除原始部署。