Azure DevOps多阶段流水线或发布,何时使用哪个?

16
我已经开始使用多阶段管道进行测试,以便将管道作为代码。但是,在考虑到我们也有发布管道的情况下,我对管道的使用有些困惑。目前,多阶段管道可以使用闸门和多个环境来完成发布管道的工作,只不过是基于代码的管道,这是我更喜欢的方式。
我的问题是什么时候该使用它们?

我也对人们对此的看法感兴趣。我的观点是,多阶段Azure管道最终将取代经典的发布管道。在DevOps中,以前有构建和发布作为单独的“概念”。现在,构建简称为Pipelines,并支持大量的CI/CD场景、不同的环境、批准步骤等等,因此我认为没有必要使用发布管道,而且在我看来只是一种不同的方法(遗留?),我个人不会使用。 - diegosasw
2
基本上,YAML 是未来的趋势。如果 YAML 能够满足你的所有需求,你应该使用它来保持未来的兼容性。 - Daniel Mann
1个回答

15
什么时候应该使用它们?
我完全赞同iberodev和Daniel的评论,即YAML是未来。基于大多数开发人员和用户的需求,YAML已成为我们最近几个迭代中开发工作的重点。
但目前,您选择使用哪种语言应基于每种语言支持的功能。
  • 使用多阶段的YAML:

大多数情况下,我们建议您在多阶段流水线中使用YAML。我们已经为YAML提供了对大多数UI功能的支持,包括管道资源、服务器作业等。

此外,YAML仍然具有一些传统UI流水线不具备的功能,如环境、策略作业、作业输出、模板化等。这些都只在YAML中受支持。

此外,这是我们的最新YAML功能公告文档,随着我们将新功能投入产品中,我们仍在不断更新此文档。如果您需要使用的功能在此文档中描述,我强烈建议您使用多阶段流水线。


  • 使用经典UI的发布管道:

但是,正如我之前提到的,我们正在开发中,但还没有在YAML中支持所有经典特性。例如,在经典UI发布管道中的一个关键功能Gate,它仍在开发中:自动检查(门)阶段之间

当您的团队需要这些或其他尚未添加到YAML中的功能时,最好使用经典UI的发布管道来保障产品安全。


1
我很高兴找到了这个 - 我刚开始使用Azure DevOps,并创建了一个不错的多阶段YAML CI/CD流水线(感谢MS Learn:https://learn.microsoft.com/en-us/learn/paths/deploy-applications-with-azure-devops/),但我感到有些偏执,担心我可能错过了一些基本的东西,因为我在“管道”下已经完成了YAML的工作,而“发布”选项卡似乎只是重复了我的工作。DevOps门户中对此进行更详细的解释可能会有所帮助?无论如何,谢谢。 - Ted
1
我也在企业层面评估选择哪种路线。 我目前的关键问题是,通过经典的Releases产品可用工作项跟踪(工作项已部署到开发/测试/暂存/生产),而多阶段管道没有针对此提供开箱即用的解决方案。 由此带来的下游影响将是诸如仪表板小部件和其他不基于多阶段管道构建且无法与其一起使用的东西。 - TheBuildGuy
2
我为我的问题创建了一个单独的帖子,该问题在此处得到解决(https://stackoverflow.com/questions/60493017/is-there-a-way-to-update-the-deployment-section-of-a-work-item)- 提示,发布是跟踪工作项的唯一开箱即用的解决方案。 - TheBuildGuy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接