代码中的连接字符串和持续部署

时间:2017-07-04 08:19:38

标签: azure continuous-integration apache-zookeeper continuous-deployment azure-resource-manager

我正在尝试设置连接字符串是我的Azure资源部署项目。这将通过Octopus触发。我们希望每个部署都有一个干净的系统。我们想要完成持续部署。项目应该应对变化。系统应该为蓝绿色部署做好准备吗?

我正在考虑

  • I.使用负载均衡器和配置指向带有连接字符串的负载均衡器。
  • II。每次部署都有不同的数据库名称,因此每次都是唯一的资源。

我将面临哪些挑战?我是否必须拥有 ZooKeeper 等工具?

使用Azure资源项目的TYPE项目结构

enter image description here

参数&聚焦的变量使它们保持在20以下

enter image description here

2 个答案:

答案 0 :(得分:1)

我建议在这种情况下使用Jenkins来实现持续部署。我已经成功实现了这一点。

有一个名为poll SCM的功能。当您有新的提交时,这将导致构建。 Poll SCM in Jenkins

构建之后,您可以使用工具octo.exe创建发行版并将该发行版部署到您的特定环境。

我使用以下代码创建和部署版本:

创建发布:

octo.exe create-release --project=%Environment% --server %Server% --apiKey %APIKEY% --version %version% --packageversion %version%

我的变量定义在更高的级别以提供松耦合:

%环境%:八达通环境 %Server%:八达通服务器 %APIKEY%:API密钥 %Timeout%:超时到期

部署版本:

octo.exe deploy-release --project %Environment% --releaseNumber %version% --deployto %Environment% --server %Server% --apiKey %APIKEY% --progress --deploymenttimeout %Timeout%

Jenkins非常灵活,在持续部署方面提供了很多帮助。你可以有不同的工作:

一个用于绿色,一个用于蓝色

绿色完成后,您可以触发一个蓝色。对于数据库更改,您可以将powershell与sql cmd一起使用来更改数据库和/或执行脚本。

答案 1 :(得分:0)

在您的方案中,您可以创建部署插槽并使用自动交换功能。这将减少停机时间和风险。有关详细信息,请参阅此 Configure Auto Swap enter image description here

此外,对于第一个问题,您可以创建2个数据库,一个用于生产,一个用于暂存。您可以使用如下所示的粘性设置将数据库粘贴到特定插槽。请参阅:Configuration for deployment slots

enter image description here

此外,您还可以预热插槽,以便在交换之前准备好处理请求。

HTH!