如何在 VSTS 发布期间应用客户特定的配置?

How to apply customer-specific configuration during VSTS release?

我们想尝试在 VSTS 中为我​​们的产品构建一个发布管道 - 但是,我们的产品需要每个客户一个单独的应用程序实例(这里的图片中有一些遗留问题 :))。我们认为我们想要的是这样的过程:

对于每个客户:

配置可以是多方面的:应用程序中 API 的扩展(基本上是新的 DLL)、连接字符串、...

我认为我们可以使用自定义 PowerShell 脚本相当轻松地完成此操作,但如果不需要,我不想编写任何自定义内容(至少对于 "looping" 问题)。我们还可以在 VSTS 中为每个客户创建单独的环境,但对于 100 多个客户来说,这似乎很难维护。

一些额外的细节: - 每个客户都有一个单独的数据库 - 每个客户

有两个单独的 Web 应用程序

那么这里的最佳做法是什么?有什么建议吗?谢谢! :-)

你可以考虑两种方式。

1 - 通过为每个客户创建一个环境。因此,您可以为每个环境执行完全相同的任务,或者可以灵活地更改特定环境中的步骤。

这种方法还可以让您使用流管道,因为您的构建只有在通过内部 QA 和其他流程后才会发布。

为了轻松做到这一点,您还可以创建任务组,然后在每个环境中重复使用。

2 - 另一种方法是为每个客户或客户组创建单独的版本。这也会给你同样的灵活性,你可以使用你的构建,但是你必须添加一些额外的步骤来确保你使用的是正确的构建,因为你可以在创建发布时选择任何构建,你可以手动执行.

已更新

第三种选择是为所有客户创建一个环境,然后为每个客户安装一个部署代理,在同一个部署组中使用所有这些代理。然后为每个客户准备一个包含所有变量的文件,该文件以代理名称命名,以及一个使用代理名称变量查找要 运行 的文件的 powershell 脚本。然后,此 powershell 脚本将 运行 您所有的个人配置。

在那种情况下,我怀疑您最终会在 powershell 中完成几乎所有部署,这可能会更耗费您的维护时间。您还必须记住,在这种特定情况下,您将同时更新所有客户,因为所有代理都在同一个部署组中。