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



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

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

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

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

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

如果所有部署都具有相同的部署步骤(相同的脚本、相同的输入参数(,但输入参数的值不同,则可以尝试在管道中使用多作业配置(矩阵(。

通过这种方式,您不需要为每个配置设置阶段或作业,只需要设置具有所有常见部署步骤的阶段或作业即可。但是您需要列举您需要的所有配置(150+(。当运行管道时,它将生成150多个矩阵作业,这些作业具有相同的部署步骤,但输入参数的值不同。

[更新]

只是好奇,在这种多作业配置的情况下,所有150多个安装都会一次性触发,对吧?

触发管道运行后,所有105+个矩阵作业都将被触发并排队。然而,通常情况下,并不是所有150多个作业都会同时启动以并行运行。这取决于您设置的maxParallel以及可以为运行分配多少可用代理。

我无法选择开始部署的方式,比如说,仅针对客户端的5个。

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

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

您可以使用dependsOn键设置阶段的执行顺序,并使用condition密钥设置阶段仅在满足指定条件时运行。

要查看更多详细信息,您可以在添加阶段、依赖项,&条件";。

相关内容

最新更新