我正在寻找有关天蓝色版本管理的一些建议 我找到了很多资源,但我还有一些问题
我有一个asp.net 4解决方案(简单来说:一个asp.net项目,一个数据库项目,一个测试项目) 我在网上视觉工作室使用GIT
此时我在azure中有一个app服务和一个sql server数据库。 我有一个构建下载nuget包,构建,执行数据库的dacpac,从项目执行测试(我有使用数据库的集成测试)并最终在Azure应用服务上部署应用程序
我想做的事情似乎是正常的东西" :
我想要完成构建,然后将其部署在" dev"在天蓝色的环境中,然后在" qa"环境,然后在'#34;徘徊"并且在" prod"
在我的web项目中,我创建了不同的web.config转换(每个环境一个)
我已经在网上看到了Visual studio中的版本,我在不同的环境中看到了它的部署
我对此有疑问:
在Azure中:
在线视觉工作室:
有人可以帮助我在所有这些方面看到更好一点吗?
答案 0 :(得分:1)
我无法回答所有这些,但我可以回答一些问题。
我会为您的单独环境创建单独的Web App实例。使用插槽,您的插槽位于同一Web App上并共享计算资源。如果出现严重错误(您的暂存代码将CPU固定为100%或占用所有RAM),这将导致生产槽出现问题。我将插槽视为A / B测试的一部分或帮助部署。
您可能还需要为每个环境创建一个单独的数据库。如果您将来在任何时候升级数据库模式并对数据库模式进行重大更改,则几乎总是需要这样做。例如,如果您的生产代码需要数据库表中的特定字段,但是您的下一版本数据库会删除该字段,会发生什么?
您提到您正在使用web.config转换,但我想抛出另一个选项,我们发现这些选项更容易,移动部件和错误来源更少。如果您只是更改连接字符串和AppSettings,请考虑在每个环境中使用Web App的应用程序设置。这些会覆盖web.config中的任何内容。这样做意味着您可以忘记web.config转换,而不会在部署中再出现一个可能出错的事情。
由于您正在使用数据库项目,要部署数据库,请查看VSTS Azure SQL数据库部署任务。它将使用您的数据库项目创建DACPAC,然后将其部署到目标服务器。