云客户?
免费开始>
在MyJFrog >中升级
云有什么新>







概述

管道中的每个步骤都在已配置运行时环境的构建节点上执行。通过管道DSL,您可以控制在哪个运行时执行步骤。


通过将管道分解为步骤,管道可以将工作分发到网络上可以完成的任何地方。管理员用户必须使用一组可用于执行步骤的构建节点(虚拟机)来配置pipeline。

pipeline将每个步骤发送到构建节点,以便在运行时,它可以是构建节点的虚拟机,也可以是在构建节点上配置Docker映像的容器。运行时必须具有必要的操作系统、软件工具、软件包以及执行该步骤所需的配置。

  • 连续跑步:当管道中的步骤必须在同一个构建节点上执行时,可以将它们分配给相同的节点亲密团体.有关更多信息,请参见在同一构建节点上运行多个步骤
  • 并行运行步骤:步骤可以并行运行,以加快管道执行速度。有关更多信息,请参见将管道分解为步骤

主机运行时

传统设计的CI服务器将任务分配给网络上的其他计算机,每台计算机都配置了任务执行工作所需的操作系统、工具和凭据。每个任务都在机器的运行时环境中执行。

当显式指示管道时,可以以这种方式执行任何步骤,在其机器映像的运行时中直接在主机构建节点上运行它。当您需要从机器的基线环境执行任务时,这可能是合适的。

虽然效率很高,但直接在主机上执行非常不灵活。如果任务需要在VM上使用另一个工具,则任务必须自己加载它,或者系统管理员必须提前为开发人员配置它。当一个组织需要支持许多团队、登台环境和DevOps活动时,这很快就会变得难以管理且成本高昂。同时,对主机虚拟机所做的更改将持续到在同一主机上运行的后续步骤,从而导致不可预测性。

容器运行时

为了获得最大的灵活性,管道的首选模式是在容器中执行其步骤。对于每一步,管道使用包含运行时环境的Docker映像在构建节点上启动容器。

通过此方法,每个步骤都与执行其特定工作集所需的运行时一起执行。例如,它可以拥有一种语言所需的二进制文件和库,并且/或者它可以拥有执行自动化测试所需的工具和cli。

这个系统有几个主要的好处:

  • 每个步骤都使用它所需要的工具执行,而不使用其他工具,并为该环境配置了特定的设置。
  • 相同管道中的步骤可以在不同的运行时中执行,如果它们需要独特的配置或工具集的话。
  • 步骤可以在不同的构建节点中同时执行(如果可用),以获得更快的构建时间。
  • 管道是完全可重复的,总是使用同一组不可变的、版本化的Docker映像执行。
  • 不同的团队可以使用不同的工具和配置进行构建,而不会相互影响。
  • 管道可以使用适合于构建环境的运行时(包括凭据)可靠地执行,无论是用于开发、测试还是生产。
  • 在最适合您需求的基础设施上执行管道:在云提供商托管的虚拟机上,或者在您自己的数据中心的服务器上。

JFrog提供了一组运行时的标准Docker映像支持的架构、操作系统和语言组合。当管道DSL没有指定运行时时,管道会为构建节点提供与构建节点环境最匹配的运行时映像之一。


概念

一个步骤运行时由以下组件组成:

节点

要运行管道中的任何步骤,您需要一个构建节点(虚拟机),该步骤将在其中执行。

管理员用户必须提供节点,并将它们附加到JFrog平台部署中的管线上。节点可以在您选择使用的任何基础设施上,无论是来自云提供商(如AWS、GCP或Azure),还是在您自己的基础设施上(如果您的安全策略要求您的操作保持在您自己的防火墙后)。

节点池

节点池在逻辑上对节点进行分组,使它们可用于执行管道中的步骤。这使管理员用户能够根据处理器架构和基线操作系统对节点进行分组。它使管道能够在特定的节点池上运行,并且能够在不同的构建节点上同时运行步骤。

节点池可以包含两种不同类型的节点:

静态节点

静态节点由管理员用户配置并提供给节点池。它们可以永久地运行,并且可以在任何时候执行步骤。如果需要在自己的数据中心的构建节点上运行操作,静态节点特别有用。你可能需要这样做,如果您的安全策略禁止代码离开防火墙,或者您的作业需要访问无法从internet访问的内部资源。2022世界杯阿根廷预选赛赛程您还可以从云提供商附加构建节点,尽管即使构建节点空闲也会产生费用。

动态节点

动态节点是按需计算环境,在需要时在云提供商上启动,在看到空闲时销毁。这是一种帮助最小化计算成本的有效方法。动态节点通过连接到IaaS提供商(如Amazon或谷歌)的动态节点集成进行连接。

运行时的图片

运行时映像是预配置的Docker映像,其中包括运行您的程序所需的所有组件和设置容器中的管道步骤。


  • 没有标签
版权所有©2023 JFrog Ltd。