首页 > 解决方案 > 使用 Azure DevOps Release 将服务角色和副本映射到服务器

问题描述

我的项目是 Windows 服务应用程序,它可以安装在多个角色中(不同之处在于服务名称、exe 路径和 app.config 中的一些设置)。每个角色都可以通过实例计数水平扩展。并且所有这些{角色 x 副本数} 应该以特定比例部署在一组服务器上,以实现有效的性能和利用率。

举个例子:

服务器A

服务器B

如何使用 Azure DevOps (Dev17.M153.5) 工具实现这一目标?我知道全新的 yaml 管道引入了一些环境和虚拟机的概念。它只是在最新的稳定版本中不可用。但这就像早期用于部署到多台机器的部署组的替代品,我可以使用它。我已经安装了部署代理并注册了它。但是我仍然无法弄清楚如何更好地配置我的复杂实例映射到发布管道中的服务器。

我可以为每个角色创建一个工作阶段,并将它们与相应的变量组链接,例如

舞台阿尔法

舞台布拉沃

舞台查理

舞台三角洲

所以我应该检查并比较脚本中的服务器名称

或者我可以做相反的事情:为每台机器创建一个阶段,并将其与描述当前服务器上特定角色副本数的变量组链接。因此,在每个阶段,我都可以按标签从部署组中选择特定的机器。

看起来第二种方法更简单,但他们都觉得很尴尬!

由于特定的 Windows 软件依赖性,PS Windows Services on Machines 不是 Kubernetes 中的容器。

标签: azure-devopsazure-pipelines-release-pipeline

解决方案


你的方法是正确的。您可以考虑迁移到 Azure DevOps Service 或升级到支持 Envorinments 和 VM 的 Azure DevOps Server 2020:

https://docs.microsoft.com/en-us/azure/devops/server/release-notes/azuredevops2020?view=azure-devops#continuous-deployment-in-yaml


推荐阅读