azure - 在 Azure 部署组中对服务器进行分组的最佳策略是什么

标签 azure azure-devops azure-pipelines-release-pipeline

我有 4 个目标环境 Dev、QA、UAT 和 PROD 每个环境有 3 个 Azure VM、Web、API 和数据库 我应该创建

  1. 4 个部署组开发、QA、UAT 和 PROD,并在这 4 个部署组中的每一个中添加 3 个目标,并将这些目标标记为 Web、API 和数据库?
  2. 或者创建 3 个部署组 Web、API 和数据库,并在每个组中添加 4 个目标,标记为 Dev、QA、UAT 和 PROD?
  3. 或者创建 4 个环境(Dev、QA、UAT 和 PROD)并在每个环境中添加 3 个资源。

注意:

  1. 更不用说,每个环境都会有不同的连接字符串
  2. 如果我已将一台虚拟机添加为部署组中的目标,则无法将其添加为环境中的资源
  3. 我想使用相同的发布管道在获得批准的情况下分阶段部署到 Dev --> QA --> UAT --> PROD。基本上构建一次并部署到多个环境。

最佳答案

您无法使用具有经典发布管道的环境。所以选项3已经出局了。但是,如果您使用 YAML 管道来部署应用程序,则所描述的选项将有效。

在选项 1 和 2 中,您应该选择第一个,因为它出现错误的空间较小,并且生产环境得到更好的保护。您还可以使用 12 个组(每个组合一组),但额外的努力可能不值得。

这也遵循 Microsoft recommendation .

Deployment groups represent the physical environments; for example, "Dev", "Test", or "Production" environment.

[...]

Enable you to use machine tags to limit deployment to specific sets of target servers.

关于azure - 在 Azure 部署组中对服务器进行分组的最佳策略是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74185509/

相关文章:

azure-devops 管道 :unable to recognize "/abc.yml": Get http://localhost:8080/api? 超时=32s : dial tcp 127. 0.0.1:8080:连接:连接被拒绝

azure - 有没有办法将数据直接加载到 json 或 csv 格式到 cosmos db gremlin api?

asp.net - 如何设置 Visual Studio 以包含 Azure namespace ?

用于获取合并请求中已更改文件列表的 Azure Repos REST API

azure-devops - git标签的构建时间表

azure-devops - Azure DevOps (VSTS) 管道(发布定义)排除某些阶段(环境)的构建标记

django - 有选择地删除上传到 Azure blob 的图像(Django/Python 项目)

azure - Docker:您可以拥有的构建参数数量有限制吗?

git - Team Foundation Server 2015 (tfs2015) 在 orgin/remote 上运行 git gc --prune=now

Azure Devops管道仅发布Web项目