代码之家  ›  专栏  ›  技术社区  ›  scorpion5211

Azure DevOps多CI/CD

  •  0
  • scorpion5211  · 技术社区  · 6 年前

    我有以下用例:

    我们有一个解决方案,其中包含5-10个不同的服务(各种版本的NET框架Web应用程序)。我们必须在AzureDevOps中设置CI/CD,才能分别(或同时)自动部署每个服务。每个服务大约有5个不同的环境。

    挑战:

    • 我们试图避免(服务x环境)分离版本和发布(约50个版本/约50个版本)。
    • 我们必须能够单独部署一个服务而不影响其他服务。
    • 我们必须能够同时部署所有服务才能进行大规模部署。

    P.S.我们目前正在使用基于主干的开发,但是我正在考虑转移到GiFlow以使用基于分支的触发器,因为我觉得在这种情况下更容易管理。

    2 回复  |  直到 6 年前
        1
  •  1
  •   Leblanc Meneses    6 年前

    CI -由构建服务器(如TeamCity)处理。职责:构建、测试、混淆、创建包,最后将包推送到nuget服务器(.net特定)。传统上,除了应用程序代码之外,您还需要至少2个其他包:数据库迁移、基础设施迁移。

    您只需构建一次包,就可以将准确的版本部署到您希望的任何地方。 https://gist.github.com/leblancmeneses/1d352bb79447cd7a486598c4dc796ef1 此脚本与 https://github.com/leblancmeneses/RobustHaven.DevOps

    光盘 -由章鱼之类的东西处理。负责任地:在集群中协调部署过程。章鱼从nuget服务器中提取软件包,并将其移动到您想要的任何环境,以及该环境所包含的任何机器上。

    https://www.robusthaven.com/presentations/DevOps

        2
  •  0
  •   4c74356b41    6 年前

    您不需要50个构建,您可以为每个服务使用一个构建(假设不同环境的构建是相同的),并从不同的分支构建。从技术上讲,如果您正确地创建触发器\阶段,您可以在50个环境中只使用一个版本,但这会很混乱,只需为每个环境创建一个版本。我看不出在一个版本上管理50个环境是如何管理的。

    当yaml释放管道到达时,这就变得微不足道了,但现在还不是,很不幸。