将新版本发布到Azure应用程序/服务的最佳方法?

时间:2017-12-14 02:37:27

标签: azure publish

假设我有一个azure app,它调用1 azure api服务。现在我需要以最大规模更新两个应用程序到更新的版本,即数据库不兼容,api也改变了与旧版本调用不兼容的现有方法签名。我使用visual studio的发布配置文件直接更新。我一直面临的问题是,在发布过程中,尽管只有几秒钟的时间,仍然有活跃的最终用户在Web应用上做事并进行api调用。我个人在不稳定,不可预测的情况下看到了结果,保存的数据可能只是损坏的数据。 那么有没有更好的方法来实现某种“闪存更新”,这对最终用户没有任何副作用?感谢。

2 个答案:

答案 0 :(得分:1)

您应该查看其他部署策略。首先更新数据库,可能接受空值,在当前数据库旁边部署新的API。验证它。将流量从当前切换到新流量。网站也一样。这是一种蓝绿色部署策略,需要更多努力,但可以解决停机或错误。 https://www.martinfowler.com/bliki/BlueGreenDeployment.html

答案 1 :(得分:1)

对于Web应用程序,您应该使用部署插槽,将新版本部署到暂存插槽,一旦准备好,就可以将站点URL指向新插槽。这根本不需要。

对于数据库,我认为您应该冻结更新,进行备份并让用户以只读模式工作,一旦完成所有数据库迁移和更改,请将应用程序指向新数据库,就是这样。 / p>