Azure DevOps 多 CI/CD

Azure DevOps multi CI/CD

我有以下用例:

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

挑战:

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

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

当 yaml 发布管道到达时,这变得微不足道,不幸的是现在不是。

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

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

结合使用

CD - 由章鱼部署之类的东西处理。负责任地:协调整个集群的部署过程。 Octopus 从 nuget 服务器中提取包并将它们移动到您想要的任何环境以及包含该环境的任何机器。

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