Azure Devops 发布管道 "Deploy BizTalk Application" 任务

Azure Devops release pipeline "Deploy BizTalk Application" task

我想使用来自部署组作业的 Azure 发布管道上的 "Deploy BizTalk Application" 任务创建一个多部署服务器,但该任务在 3 个服务器上安装了所有工件(添加资源、GAC、绑定) .有没有办法只在第一个节点上限制绑定和添加资源?

当前行为产生异常:

更新时遇到并发冲突

另外,在 BizTalk 2016 FP2 中 MSFT 为部署组添加了增强功能,有人知道真正改变了什么吗?

这会很长post,所以等一下。

您想了解 BTDF(BizTalk 部署框架)。我为我的内部团队写了完整的指南,所以我不能轻易分享。但我将尝试解释您需要做什么。

1) 在我们的 Azure DevOps 组织中,添加扩展 "Deployment Framework for BizTalk" 和 "BTDF Project Updater"(我写了那个,但是可以选择更新生成的 MSI 的版本号)。

2) 有在线指南,但要了解如何将您的项目制作成 MSI 并使用 Build Pipeline 中的 BTDF 进行部署。利用 "BTDF Project Updater" 增加版本号。

3) 现在,您说您的 BizTalk 环境中有 3 个服务器。在手动 BizTalk 部署期间,服务器 1 和服务器 2 获得 "light" BizTalk 部署,服务器 3 获得完整的 BizTalk 部署。这意味着在发布管道期间在服务器 1 和 2 上进行发布,但在服务器 3 上进行稍微不同。

3.1) 为服务器 3 创建一个普通的代理池,并将服务器 3 上的 ADO 代理关联到它。

3.2) 创建部署池并关联服务器 1 和服务器 2 的代理(我想你已经完成了)

4) 为该特定环境创建发布管道,但我们将放入 2 个代理阶段而不是默认的 1 个阶段。请注意,我正在为上面创建的池使用不同类型的代理作业。

  1. 对于每个代理的发布管道任务,我只是碰巧使用了一个任务组模板,因为我有任何发布管道。我有一个叫 "Standard Deployment - Not Final" 和一个叫 "Standard Deployment" (这是最后一个)。为什么? BizTalk 要求在运行该应用程序的每个 BizTalk 服务器上安装应用程序二进制文件和某些其他工件。但是,BizTalk 应用程序、它的端口绑定、规则策略等只能在组内的 BizTalk 数据库中注册一次。这就是复选框的原因。请注意它未选中 "Not Final" 并选中将成为 "Final" 的那个。安装在服务器 1 和 2 上进行得非常快,但因此在服务器 3 上需要更长的时间。

  1. 现在您可以启动 ADO 发布管道对其进行测试。但是这个过程非常有效,我将它与 GitVersion 结合使用。

我知道我在本指南中遗漏了很多内容,例如通过 PS 脚本停止 BizTalk 应用程序的任务的实际细节、取消部署 BizTalk 应用程序、卸载 MSI,为什么我要复制MSI 到安装目录,然后安装。您可以在此处从官方文档中阅读更多内容:http://www.tfabraham.com/BTDFDocs/V5_5/DeploymentFrameworkForBizTalkDocs.html?DeployConfigurationSettingsintoS.html

希望对您有所帮助!