微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Azure Devops:用于为不同客户端独立部署单租户 .Net MVC 应用程序的 YAML 管道

如何解决Azure Devops:用于为不同客户端独立部署单租户 .Net MVC 应用程序的 YAML 管道

我需要有关为不同客户端独立部署单租户 .Net MVC 应用程序创建 YAML 管道的建议。

  • 应用程序类型:.Net MVC Web API
  • 网络服务器:IIS 10
  • 数据库:MS sql Server
  • 环境:私有数据中心
  • 客户/租户数量:150+
  • 部署:为每个客户端/租户创建一个单独的 IIS Web 应用程序。此外,还会为每个客户创建一个单独的数据库
  • 预期部署:手动模式(不考虑 CD,因为 CI 和测试套件尚不可用)。

如果你能指导我以下几点。

  • 应该如何创建管道,以便我可以为每个客户端/租户使用不同的配置参数? (例如数据库名称和连接字符串)但同时,用于部署生成发布的通用脚本?
  • 我应该创建一个管道还是应该有多个?
  • 对于这种情况,我应该如何有效地使用发布、阶段和作业?
  • 如果我有一些好的文章可以为每个客户端手动独立部署,我想学习。

解决方法

一般来说,如果你想部署到不同的环境,你可以为管道中的每个环境设置一个阶段。但是,考虑到您有 150 多个不同的配置,在管道中设置 150 多个阶段是非常痛苦的。

如果所有部署都有相同的部署步骤(相同的脚本,相同的输入参数),但输入参数的值不同,您可以尝试在管道中使用Multi-job configurationMatrix)。

通过这种方式,您无需为每个配置设置一个阶段或作业,您只需要设置一个包含所有常见部署步骤的阶段或作业。但是您需要枚举您需要的所有配置(150+)。在运行流水线时,它将生成 150 多个具有相同部署步骤但输入参数值不同的矩阵作业。

[更新]

只是好奇,在这种多任务配置的情况下,150+个安装都会被一次性触发,对吗?

触发流水线运行后,所有 105+ 矩阵作业都将被触发并进入队列。但是,通常不会同时启动所有 150 多个作业以并行运行。这取决于您设置的 maxParallel 以及可以为运行分配多少可用代理。

我无法选择开始部署的方式,假设只有 5 个客户端。

如果您希望可以先为某些客户端执行部署,然后再为其他客户端执行部署,您可以尝试使用阶段。

例如,在 stage_1 中,为前 5 个客户端执行部署作业(多作业配置)。在 stage_1 之后,为另外几个客户端启动 stage_2,然后为其他客户端启动 stage_3,等等。

可以使用dependsOn键设置stage的执行顺序,使用condition键设置stage只运行满足指定条件时。

要查看更多详细信息,您可以查看“Add stages,dependencies,& conditions”。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。