我们想尝试在VSTS中为我们的产品构建一个发布管道 - 但是,我们的产品需要每个客户单独的应用程序实例(图中有一些遗留问题:))。我们想要的是一个像这样的过程:
对于每位客户:
配置可以是多种内容:应用程序中API的扩展(基本上是新的DLL),连接字符串,......
我认为我们可以使用自定义PowerShell脚本相当容易地做到这一点,但我想不写任何自定义(至少对于“循环”问题),如果我不需要。我们还可以为每个客户在VSTS中创建单独的环境,但对于超过100个客户而言,这似乎是不可维护的。
一些额外的细节: - 每位客户都有一个单独的数据库 - 每个客户有两个单独的 Web应用程序
那么这里的最佳做法是什么?有什么建议?谢谢! : - )
答案 0 :(得分:1)
你可以想到以两种方式做到这一点。
1 - 为每个客户创建一个环境。因此,您可以为每个环境执行完全相同的任务,或者可以灵活地更改特定环境中的步骤。
这种方法还可以让您使用流程管道,因为只有在通过内部质量检查和其他流程后才会发布构建。
为了方便起见,您还可以创建任务组,然后在每个环境中重复使用。
2 - 另一种方法是为每个客户或一组客户创建单独的发布版本。这也会给你相同的灵活性,你可以使用你的构建,但你必须添加一些额外的步骤,以确保你使用正确的构建,因为你可以在创建一个版本时选择任何构建,你可以做mannualy
<强>更新强>
第三种选择可以是为所有客户创建环境,然后为每个客户安装一个部署代理,在同一部署组中使用所有客户。然后有一个文件包含每个客户的所有变量,文件以代理名称命名,powershell脚本使用代理名称变量来查找要运行的文件。然后,此PowerShell脚本将运行您的所有个人配置。
在这种情况下,我怀疑你最终会在powershell中进行几乎所有的部署,这对你来说可能更耗时。您还必须记住,在此特定方案中,您将同时更新所有客户,因为所有代理都将位于同一部署组中。