虽然我已经做了多年的程序员,但我对这个领域还是比较陌生。
我的公司有一个托管在 Azure 上的网站。在确认团队完成某个模块的开发后,我会执行“发布”操作。但是,每次发布时我都必须关闭该网站(在复制 dll、aspx 文件等时添加 app_offline.htm)。
这似乎是多余的,对吧?应该有更好的方法来做到这一点。
我想到了一个显而易见的问题,两台服务器,当我与其中一台“交谈”时,另一台服务器会承担所有的流量,之后它们会同步,或者我可以向第二台服务器发布信息。
环境:VisualStudio2013、AzureWebSite、ASP.NET 4.0。
请分享您的想法、知识,或者我应该从哪里开始调查?
谢谢!
答案1
添加第二个部署槽。发布到非活动槽,然后在准备好时交换槽。切换槽后,旧的活动槽将成为新的非活动槽,因此每次需要发布时,您只需根据需要进行冲洗和重复即可。
以下是背景资料:http://azure.microsoft.com/en-us/documentation/articles/web-sites-staged-publishing/
答案2
Azure 流量管理器后面有两台服务器。一台服务器是生产服务器,另一台是“下一版本服务器”。
只需更新“下一版本服务器”并测试它是否正常运行,验证后,交换流量管理器以将所有流量传递到此服务器。现在旧服务器成为“下一版本服务器”。
顺便说一句,如果您的最新版本“不太好”,这也为您提供了返回到先前版本的选项:-)