azure-devops - 使用 Azure DevOps Release 将服务角色和副本映射到服务器
问题描述
我的项目是 Windows 服务应用程序,它可以安装在多个角色中(不同之处在于服务名称、exe 路径和 app.config 中的一些设置)。每个角色都可以通过实例计数水平扩展。并且所有这些{角色 x 副本数} 应该以特定比例部署在一组服务器上,以实现有效的性能和利用率。
举个例子:
服务器A
- ServiceAlfa.1
- ServiceAlfa.2
- 服务Bravo
- 服务三角洲
服务器B
- 服务Bravo
- 服务查理
- 服务三角洲.1
- 服务三角洲.2
- 服务三角洲.3
如何使用 Azure DevOps (Dev17.M153.5) 工具实现这一目标?我知道全新的 yaml 管道引入了一些环境和虚拟机的概念。它只是在最新的稳定版本中不可用。但这就像早期用于部署到多台机器的部署组的替代品,我可以使用它。我已经安装了部署代理并注册了它。但是我仍然无法弄清楚如何更好地配置我的复杂实例映射到发布管道中的服务器。
我可以为每个角色创建一个工作阶段,并将它们与相应的变量组链接,例如
舞台阿尔法
- 服务器A:2
舞台布拉沃
- 服务器A:1
- 服务器B:1
舞台查理
- 服务器B:1
舞台三角洲
- 服务器A:1
- 服务器B:3
所以我应该检查并比较脚本中的服务器名称
或者我可以做相反的事情:为每台机器创建一个阶段,并将其与描述当前服务器上特定角色副本数的变量组链接。因此,在每个阶段,我都可以按标签从部署组中选择特定的机器。
看起来第二种方法更简单,但他们都觉得很尴尬!
由于特定的 Windows 软件依赖性,PS Windows Services on Machines 不是 Kubernetes 中的容器。
解决方案
你的方法是正确的。您可以考虑迁移到 Azure DevOps Service 或升级到支持 Envorinments 和 VM 的 Azure DevOps Server 2020:
推荐阅读
- php - 使用包含传递变量?
- node.js - 尝试将数据从 react.js 发布到 node.js 但似乎不起作用
- mysql - 我无法创建视图
- javascript - d3.js 可见性区域计算或如何绘制地理矩形
- python - Python DateTime 索引 - 无法删除日期 - ValueError:无法将字符串转换为时间戳
- sql-server - 启用 SQL Server 身份验证 - DSN 配置
- android - 如何在 Android Studio 中导出我的项目?
- c# - 如何从 wwwroot 返回图像?
- java - Spring Azure AD - 身份验证后获取用户的地址
- vhdl - 从数组的所有元素中减去:VHDL