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





概述

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


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

管道将每个步骤发送到构建节点中执行运行时,它要么是构建节点的虚拟机,要么是在构建节点上提供Docker映像的容器。运行时必须具有步骤执行所需的操作系统、软件工具、软件包和配置。

主机运行时

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

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

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

容器运行时

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

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

这个系统提供了几个关键的好处:

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

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


概念

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

节点

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

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

节点池

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

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

静态节点

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

动态节点

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

运行时的图片

运行时映像是一个预先配置的Docker映像,它包括运行您的容器中的管道步骤。


  • 没有标签
版权所有©2022 JFrog有限公司