【发布时间】:2018-09-05 09:44:07
【问题描述】:
我在 VSTS 上有一个 CI/CD 管道,有以下注意事项:
Web 应用是一个 ASP.NET Core 项目,托管在 Azure 上,带有一个“暂存”插槽
Staging 将连接到非生产/同步数据库进行测试
Staging 中的连接字符串将指向 Staging DB
生产中的连接字符串将指向生产数据库
在进行热插拔时,连接字符串应与暂存的连接字符串保持不变,因为它将成为新的生产。
我面临的问题是在进行热插拔时,连接字符串将从生产 Web 应用程序的应用程序设置中选择,这将指向生产数据库。
可以在 Azure 门户上的 Azure Web 应用程序的应用程序设置中更改连接字符串,但它需要重新启动 - 这将否定热交换的价值!
关于如何在进行热交换时替换连接字符串的任何提示。
PS:我们在 Azure 门户的 Web 应用 > 应用程序设置中提到了连接字符串
提前致谢!
编辑 1:
这是我的考虑的描述:
【问题讨论】:
-
如果我理解正确,您有一个暂存环境,它位于生产环境的部署槽上,对吧?如果是这样:请不要。由于部署槽指向相同的应用程序服务计划,登台上的重负载(或坏版本)可能会扰乱您的生产环境。拥有一个实际、独立的暂存环境来进行所有测试,并使用部署槽作为准备好能够交换的新部署。至于您的问题:请参阅@GauravMantri 的评论 :)
-
感谢@rickvdbosch 的提示,我知道风险。由于应用程序有点小 - 我想在这里省钱。
-
感谢@GauravMantri 先生的指点,让我试试。我添加了对问题陈述的描述。我知道这是不可取的,只是为了避免使用另一个环境。
-
你想什么时候换槽?在构建/发布期间?详细的工作流程是什么?
标签: azure azure-devops azure-web-app-service continuous-deployment