CI/CD系统的主机故障检测
文献发布时间:2023-06-19 18:32:25
技术领域
本公开一般涉及计算机系统,更具体地,涉及用于持续集成和持续交付/部署(CI/CD)系统的主机故障检测。
背景技术
平台即服务(PaaS)系统产品可以包括软件和/或硬件设施,用于促进云计算环境(“云”)中网页应用程序的执行。云计算是一种计算范式,其中用户与“云提供商”合作,在云提供商拥有和/或控制的计算机硬件上执行程序。云提供商可以为此目的向客户提供托管在其计算机硬件上的虚拟机(虚拟机)和/或容器。容器是一种“轻量级”执行环境,其具有宽松的隔离特性(与虚拟机相比),用于在应用程序之间共享操作系统(OS)。与虚拟机类似,容器可以有自己的文件系统,共享处理、内存、进程空间等。应用程序的容器可以与库和从属项一起被打包,并且与底层基础架构分离,从而使容器可移植(例如,可跨云和操作系统分布移植)。云提供商可以提供用户可用来申请虚拟机和/或容器以及相关联资源(诸如安全策略、处理器、存储和网络服务等)的界面,以及安装和执行用户应用程序和文件的界面。PaaS系统产品可以促进网络应用程序的部署,而无需购买和管理底层硬件和软件以及提供托管功能的成本和复杂性,从而提供了支持构建和交付完全可从互联网获得的网页应用程序和服务的全生命周期的设施。
发明内容
根据本公开的一个方面,提供一种方法,包括:对于多个节点中的每个节点,由处理设备确定与持续集成和持续交付/部署(CI/CD)管线的执行相关联的运行时间值;对于多个节点中的每个节点,确定反映多个节点的运行时间值的合计性能统计;在多个节点中识别具有满足性能阈值标准的合计性能统计的一节点;以及将该节点标记为性能不佳。
根据本公开的另一个方面,提供一种系统,包括:存储器;和处理设备,可操作地耦合到存储器,以执行包括以下的操作:对于多个节点中的每个节点,由处理设备确定与持续集成和持续交付/部署管线的执行相关联的运行时间值;对于多个节点中的每个节点,确定反映多个节点的运行时间值的合计性能统计;在多个节点中识别具有满足性能阈值标准的合计性能统计的一节点;以及将该节点标记为性能不佳。
根据本公开的又一个方面,提供一种非暂时性计算机可读存储介质,包括指令,当由处理设备执行时,指令使得处理设备执行包括以下的操作:对于多个节点中的每个节点,确定与持续集成和持续交付/部署(CI/CD)管线的执行相关联的故障计数;在多个节点中识别对应的故障计数超过反映多个节点的故障计数的合计故障统计的一节点;以及响应于识别多个节点中对应的故障计数超过合计故障统计的至少一个节点,将该节点标记为经历高故障率。
附图说明
本公开通过示例而非限制的方式示出,并且当结合附图考虑时,可以参考以下详细描述来更全面地理解本公开,其中:
图1描绘了根据本公开的一个或多个方面的示例计算机系统架构的高级组件图。
图2描绘了根据本公开的一个或多个方面的用于实现CI/CD管线到容器转换的方法的流程图。
图3描绘了根据本公开的一个或多个方面的用于将配置项/内容项管线转换成容器的方法的流程图。
图4描绘了根据本公开的一个或多个方面操作的说明性计算机系统的框图。
具体实施方式
本文描述了用于在持续集成和持续交付/部署(CI/CD)系统中实现执行平台分配的方法和系统。CI/CD是一种通过将自动化引入软件(例如,应用程序)开发阶段来向客户交付应用程序的方法。CI/CD是集成新的代码可能给开发和运维团队带来的问题的解决方案。从集成和测试阶段到交付和部署阶段,CI/CD在整个软件生命周期中引入了持续进行的自动化和持续的监控。总的来说,这一操作序列通常被称为“CI/CD管线”,并且这种操作由开发和运维(“DevOps”)团队以敏捷方式通过DevOps或站点可靠性工程(SRE)方式协同工作来提供支持。
持续集成(CI)通常是指开发人员的自动化过程。成功的CI意味着可以定期构建、测试新的代码更改并将其合并到共享的存储库中。CI为开发中应用程序有太多潜在冲突分支的问题提供了解决方案。CI/CD中的“CD”代表持续交付和/或持续部署,其二者为相关的概念,有时可以互换使用。持续交付和持续部署通常都是指CI/CD管线的进一步自动化阶段。
例如,持续交付通常意味着开发人员的软件变更会自动进行程序错误(bug)测试并上传到存储库中,然后运维团队可以将它们部署到实时生产环境中。持续交付为开发人员与业务团队之间不良的可见性和沟通问题提供了解决方案。为此,持续交付的目的是确保部署新的代码只需最少的努力。
持续部署可以指将开发人员的更改从存储库自动发布到生产环境中,由此供客户使用。持续部署解决了运维团队因手动流程而降低交付速度进而负担过重的问题,并通过自动化CI/CD管线中的下一个管线阶段(“阶段”)而建立在持续交付的优势之上。阶段包括一组任务或作业,其中:如果给定阶段中的每个任务都成功,则CI/CD管线可以过渡到下一个阶段。如果给定阶段中的一任务发生故障,则CI/CD管线可能会过早终止,或者在某些情况下会移到下一阶段。
管线阶段的示例包括构建阶段、测试阶段、发布阶段和部署阶段。构建阶段可以包括编译软件(例如,应用程序)以获得构建的编译任务。测试阶段可以包括一个或多个测试任务,这些测试任务对构建执行一个或多个自动化测试,以确保构建为发布和部署做好准备。在测试阶段之后,发布阶段可以包括一个发布任务,以自动将构建交付给存储库。部署阶段可以包括一个部署任务,以自动将构建部署到生产中。
当执行时,CI/CD管线实现工作流来自动执行上述阶段。操作序列可以包括命令序列、有条件和/或无条件的执行控制转移等。例如,在创建CI/CD管线定义时,可以识别测试目录在项目中的位置,然后可以自动创建CI/CD管线定义,以从测试目录执行一个或多个测试。
执行平台集合,也称为工作机器或主机(“工作机”)集合,可用于执行由CI/CD管线定义提供的CI/CD管线的任务。该组执行平台可以包括一个或多个执行平台。例如,根据可用执行平台的数量,给定阶段中的多个任务可以并行执行。执行平台可以具有相应的平台类型(例如,虚拟机、容器或裸金属)和资源规范或参数集(例如,处理、内存和网络)。平台类型和资源规范集可以统称为执行CI/CD管线的属性组合。
在典型的场景中,可以从执行平台的池中选择执行平台集合,用于分配或链接到CI/CD管线。分配是指将执行平台集合指定给CI/CD管线以用于执行(例如,将执行平台集合链接到CI/CD管线)。如果没有执行平台分配给CI/CD管线,可以选择一个或多个默认执行平台。池可以是同构池或异构池。同构池,也称为统一池,是其中每个执行平台都有相同的属性组合以用于执行CI/CD管线的池。例如,每个执行平台都具有相同的平台类型(例如,虚拟机、容器或裸金属)和相同的资源规范集。相比之下,异构池是这样一种池,其中至少一个执行平台具有不同的属性组合以用于执行CI/CD管线。
通常,随着分配给CI/CD管线的执行平台集的增加,实现监控系统来监控执行平台集变得越来越重要。监控系统通常监控各种硬件和软件方面,诸如执行平台的资源规格或参数(例如,处理、内存和网络)。然而,当与被监控系统遗漏的执行平台集合中的其他执行平台相比,被监控的执行平台集合中的各种执行平台性能不佳或经历高故障率时,会出现问题。
本公开的各方面通过实现一种监控系统来解决上述和其他缺陷,该监控系统可以识别分配给CI/CD管线的执行平台集合中的执行平台,当与执行平台集合中的其他执行平台相比时,这些执行平台可能性能不佳或经历异常高的故障率。
本公开的优点包括但不限于,通过减少执行平台集合处的CI/CD管线的故障来提高分配给CI/CD系统的执行平台池的效率。
图1是本公开的实现可以在其中操作的网络架构100的框图。在一些实现中,网络架构100可以用在容器化的计算服务平台中。容器化的计算服务平台可能包括平台即服务(PaaS)系统,例如
如图1所示,网络架构100包括一个或多个云计算环境130A、130B(这里也称为云),其包括节点111、112、121、122来执行应用程序和/或与应用程序相关联的过程。提供计算功能的“节点”可以为PaaS系统的应用程序提供执行环境。在一些实施方式中,“节点”可以包括托管在物理机器上的虚拟机(虚拟机113、123),诸如实现为云130A、130B的一部分的主机110、120。例如,节点111和112托管在云提供商104A提供的云130A中的主机110的物理机器上。类似地,节点121和122托管在云提供商104B提供的云130B中的主机120的物理机器上。在一些实现中,节点111、112、121和122可以附加地或替代地包括一组虚拟机、容器(例如,容器114、124)或一群组的容器,以执行PaaS应用程序的功能。当节点111、112、121、122被实现为虚拟机时,它们可以由每个主机110、120上的操作系统115、125执行。应当注意,虽然在图1中描绘了两个云提供商系统,但是在一些实现中,可以存在更多或更少的云服务提供商系统104(以及相应的云130)。
在一些实施方式中,主机110、120可以位于数据中心。用户可以经由相应的客户端软件(未示出)使用客户端计算机系统(未示出)与基于云的节点111、112、121、122上执行的应用程序进行交互。客户端软件可以包括诸如网络浏览器的应用程序。在其他实现中,应用程序可以直接托管在主机110、120上,而不使用虚拟机(例如,“裸金属”的实现),并且在这样的实现中,主机本身被称为“节点”。
在各种实现中,应用程序的开发者、所有者和/或系统管理员可以通过为云130A、130B中的相关联节点提供软件开发服务、系统管理服务或其他相关类型的配置服务来维护在云130A、130B中执行的应用程序。这可以通过使用适用的云服务提供商系统104A、104B内的应用程序编程接口(API)访问云130A、130B来实现。在一些实现中,开发者、所有者或系统管理员可以从客户端设备(例如,客户端设备160)访问云服务提供商系统104A、104B,该客户端设备包括用于与各种云组件交互的专用软件。附加地或替代地,云服务提供商系统104A、104B可以使用基于网页或基于云的应用程序来访问,该应用程序在经由网络102与客户端设备160通信的独立计算设备(例如,服务器设备140)上执行。
客户端设备160经由网络102连接到云130A中的主机110和云130B中的主机120以及云服务提供商系统104A、104B,网络102可以是私有网络(例如,局域网(LAN)、广域网(WAN)、内联网或其他类似的专用网络)或公共网络(例如,互联网)。每个客户端160可以是移动设备、PDA、膝上型电脑、台式计算机、平板计算设备、服务器设备或任何其他计算设备。每个主机110、120可以是服务器计算机系统、台式计算机或任何其他计算设备。云服务提供商系统104A、104B可以包括一个或多个机器,诸如服务器计算机、台式计算机等。类似地,服务器设备140可以包括一个或多个机器,诸如服务器计算机、台式计算机等。
客户端设备160可以包括CI/CD管线管理器161。CI/CD管线管理器161可以将执行平台集合分配给CI/CD管线来执行。例如,CI/CD管线管理器161可以接收CI/CD管线的定义,并从该定义获得指示CI/CD管线的用例的特征。CI/CD管线管理器161可以从执行平台池中识别候选执行平台集合,该候选执行平台集合具有对应于特征的平台类型。例如,候选执行平台集合可以包括当前可用于分配给CI/CD管线的一个或多个执行平台。从候选执行平台集合中,CI/CD管线管理器161可以选择具有用于执行CI/CD平台的属性组合的执行平台子集,并将执行平台子集分配给CI/CD管线以用于执行。CI/CD管线管理器使分配的执行平台子集执行CI/CD管线。
CI/CD管线管理器161可以进一步监控执行平台子集,以基于执行平台子集中的其他执行平台的性能来避免执行平台子集中的性能不佳和/或故障。
CI/CD管线管理器161可以通过确定执行平台子集的每个执行平台(例如,节点)的合计性能统计是否超过性能阈值(即,相应执行平台的合计性能统计是否满足性能阈值标准)来确定执行平台子集中的执行平台是否性能不佳。如前所述,执行平台(例如,节点)是容器、虚拟机或裸金属主机中的一者。合计性能统计表示执行平台子集中的执行平台的运行时间值与执行平台子集中除该执行平台之外的执行平台子集的平均运行时间值之间的差和执行平台子集中除该执行平台之外的执行平台子集的平均运行时间值的比率。在相应执行平台处的CI/CD管线的运行时间值表示执行CI/CD管线(例如,CI/CD管线的所有阶段的执行)的经过时间。性能阈值指的是预定的合计性能统计值(例如,2/10或20%),在该值处,执行平台子集中的执行平台被认为相对于执行平台子集中的其他执行平台性能不佳。例如,2/10或20%的预定合计性能统计值表明,与执行平台子集中的所有其他执行平台相比,在特定执行平台上执行CI/CD管线所花费的时间要多20%来运行。
CI/CD管线管理器161可以通过确定在相应执行平台处经历的故障数量是否超过故障阈值(即,在相应执行平台处经历的故障数量是否满足故障阈值标准)来确定执行平台子集中的执行平台是否正在经历高故障率。故障阈值指的是多个节点的故障计数的合计故障统计。在一个说明性示例中,合计故障统计可以反映多个节点的故障计数的平均值。在另一个说明性示例中,合计故障统计可以反映多个节点的故障计数(其中不包括执行平台子集的可疑异常执行平台的故障计数)的平均值。在另一个说明性示例中,合计故障统计可以反映多个节点的故障计数的中值。在另一个说明性示例中,合计故障统计可以反映多个节点的故障计数(其中不包括执行平台子集的可疑异常执行平台的故障计数)的中值。
为了确定在相应执行平台处经历的故障数量是否超过故障阈值,将在相应执行平台处由于CI/CD管线而经历的故障数量与在执行平台子集中的每个其他执行平台处由于CI/CD管线而经历的合计故障统计进行比较。
根据实施例,为了确定在相应的执行平台处经历的故障数量是否超过故障阈值,将在相应的执行平台处经历的故障数量与在执行平台子集中的每个其他执行平台处的合计故障统计进行比较,而与CI/CD管线无关。执行平台处的CI/CD管线故障表示CI/CD管线不能成功完成执行(例如,完成对CI/CD管线的所有阶段的执行)。
如果CI/CD管线管理器161确定执行平台子集中的执行平台性能不佳和/或经历高故障率,则CI/CD管线管理器161可以标示(例如,标记)执行平台子集中的执行平台(例如,标示为低优先级、离线、临时维护等)。为了标示执行平台子集中的执行平台,CI/CD管线管理器161可以维护分配给特定CI/CD管线的执行平台子集的数据结构(例如,列表)。执行平台子集的列表中的每个执行平台与性能特征(例如,合计性能统计和/或合计故障统计)相关联。当执行平台子集中的执行平台由于合计性能统计或合计故障统计而被标记时,CI/CD管线管理器161可以警告用户执行平台的性能问题。一旦执行平台子集中的执行平台被标示,CI/CD管线管理器161确定性能不佳和/或高故障率是由于执行平台还是CI/CD管线引起的。为了确定性能不佳和/或故障率高是由于执行平台还是CI/CD管线引起的,CI/CD管线管理器161利用CI/CD系统工具,例如,ausearch、auauaudit、Kdump、TCP dump或在Linux操作系统中实现的任何其他合适的系统工具来分析标记的执行平台。一旦确定性能不佳和/或高故障率的原因是由于执行平台,CI/CD管线管理器161可以使用配置管理工具来将执行平台配置为与执行平台子集中的类似执行平台相像,其可能具有来自执行平台中的配置漂移或变更的结果。在确定性能不佳和/或故障率高的原因是由于外部服务(例如,网页搜索、第三方API调用、第三方服务)导致CI/CD管线故障时,可以取消对执行平台子集中标记的执行平台取消标示。下面参考图2和3描述关于CI/CD管线管理器161的功能的进一步细节。
图2描绘了根据本公开的一个或多个方面的用于将执行平台集合分配给CI/CD管线的示例方法200的流程图。该方法可以由包括硬件(电路、专用逻辑等)、计算机可读指令(在通用计算机系统或专用机器上运行),或两者的组合的处理逻辑来执行。在说明性示例中,方法300可以由CI/CD管理器执行,诸如图1中的CI/CD管理器161。替代地,方法200的一些或全部可以由另一个模块或机器来执行。应当注意,图2中描绘的框可以同时执行,或者以不同于所描绘的顺序执行。
在框202,对于多个节点中的每个节点,处理逻辑确定与持续集成和持续交付/部署(CI/CD)管线的执行相关联的运行时间值。如前所述,运行时间值表示节点执行CI/CD管线的经过时间。节点是容器、虚拟机或裸金属主机中的一者。
在框204,处理逻辑为多个节点中的每个节点确定反映多个节点的运行时间值的合计性能统计。
在框206,处理逻辑在多个节点中识别具有满足性能阈值标准的合计性能统计的节点。如前所述,为了在多个节点中识别具有满足性能阈值标准的合计性能统计的节点,处理逻辑确定多个节点中的节点的合计性能统计是否超过性能阈值。合计性能统计表示多个节点中的节点的运行时间值与多个节点中除该节点之外的多个节点的平均运行时间值之间的差和多个节点中除该节点之外的多个节点的平均运行时间值的比率。性能阈值指的是预定的合计性能统计值,在该值处,多个节点中的节点被认为相对于多个节点中的其他节点性能不佳。
在框208,处理逻辑将节点标记为性能不佳。根据实施例,处理逻辑分析多个节点中被标记为性能不佳的至少一个节点,以确定性能不佳的原因。
在一些实施例中,对于多个节点中的每个节点,处理逻辑确定与CI/CD管线的执行相关联的故障计数。然后,处理逻辑在多个节点中识别满足故障阈值标准的节点。响应于识别多个节点中满足故障阈值标准的节点,处理逻辑将该节点标记为经历高故障率。为了识别多个节点中满足故障阈值标准的至少一个节点,处理逻辑确定多个节点中的节点的故障计数是否超过故障阈值。如前所述,故障阈值考虑到反映多个节点的故障计数的合计故障统计。
图3描绘了根据本公开的一个或多个方面的用于训练模型的示例方法300的流程图,该模型用于选择执行平台集合以分配给CI/CD管线。该方法可以由包括硬件(电路、专用逻辑等)、计算机可读指令(在通用计算机系统或专用机器上运行),或两者的组合的处理逻辑来执行。在说明性示例中,方法300可以由CI/CD管理器执行,诸如图1中的CI/CD管理器161。替代地,方法300的一些或全部可以由另一个模块或机器来执行。应当注意,图3中描绘的框可以同时执行,或者以不同于所描绘的顺序执行。
在框302,对于多个节点中的每个节点,处理逻辑确定与持续集成和持续交付/部署(CI/CD)管线的执行相关联的故障计数,其中故障计数表示CI/CD管线的执行故障的次数。
在框304,处理逻辑在多个节点中识别相应的故障计数超过反映多个节点的故障计数的合计故障统计的节点。
在框306,响应于识别出多个节点中相应的故障计数超过了合计故障统计的至少一个节点,处理逻辑将该节点标记为经历高故障率。
图4描绘了可以执行本文描述的任何一种或多种方法的示例计算机系统500。在一个示例中,计算机系统500可以对应于图1的计算机系统100。计算机系统可以连接(例如,联网)到局域网、内联网、外联网或互联网中的其他计算机系统。计算机系统可以在客户端-服务器网络环境中以服务器的能力操作。计算机系统可以是个人计算机(PC)、机顶盒(STB)、服务器、网络路由器、交换机或网桥,或者能够执行一组指令(顺序的或其他的)的任何设备,这些指令指定了该设备要采取的动作。此外,尽管示出了单个计算机系统,但是术语“计算机”也应被理解为包括单独或共同执行一组(或多组)指令以执行本文所讨论的任何一种或多种方法的任何计算机聚合。
示例性计算机系统500包括经由总线508相互通信的处理设备502、主存储器504(例如,只读存储器、闪存、动态随机存取存储器(DRAM)(诸如同步DRAM(SDRAM))、静态存储器506(例如,闪存、静态随机存取存储器(SRAM)),以及数据存储设备516。
处理设备502代表一个或多个通用处理设备,诸如微处理器、中央处理单元等。更具体地,处理设备502可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或者实现其他指令集的处理器或者实现指令集组合的处理器。处理设备502也可以是一个或多个专用处理设备,诸如专用集成电路、现场可编程门阵列、数字信号处理器、网络处理器等。处理设备502被配置为执行处理逻辑(例如,指令526),该处理逻辑包括用于执行本文讨论的操作和步骤(例如,对应于图2和3的方法等)的CI/CD管线管理器161。
计算机系统500还可以包括网络接口设备522。计算机系统500还可以包括视频显示单元510(例如,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备512(例如,键盘)、光标控制设备514(例如,鼠标),以及信号生成设备520(例如,扬声器)。在一个说明性示例中,视频显示单元510、字母数字输入设备512和光标控制设备514可以组合成单个组件或设备(例如,LCD触摸屏)。
数据存储设备516可以包括非暂时性计算机可读介质524,其上可以存储指令526,指令526包括CI/CD管线管理器161(例如,对应于图2和3的方法等。)体现本文描述的任何一个或多个方法或功能。CI/CD管线管理器161也可以在计算机系统500执行期间完全或至少部分地驻留在主存储器504和/或处理设备502中,主存储器504和处理设备502也构成计算机可读介质。CI/CD管线管理器161还可以经由网络接口设备522在网络上发送或接收。
虽然计算机可读存储介质524在说明性示例中被示为单个介质,但是术语“计算机可读存储介质”应当被理解为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的高速缓存和服务器)。术语“计算机可读存储介质”还应被理解为包括能够存储、编码或携带一组由机器执行的指令并使机器执行本公开的任何一种或多种方法的任何介质。因此,术语“计算机可读存储介质”应被理解为包括但不限于固态存储器、光学介质和磁介质。其他计算机系统设计和配置也可以适用于实现本文描述的系统和方法。
尽管本文的方法的操作是以特定的顺序示出和描述的,但是每个方法的操作顺序可以改变,使得某些操作可以以相反的顺序执行,或者使得某些操作可以至少部分地与其他操作同时执行。在某些实现中,不同操作的指令或子操作可以以间歇和/或交替的方式进行。
应当理解,以上描述旨在说明而非限制。在阅读和理解以上描述后,许多其他实施方式对于本领域技术人员来说将是显而易见的。因此,本公开的范围应当参考所附权利要求以及这些权利要求所赋予的等同物的全部范围来确定。
在以上描述中,阐述了许多细节。然而,对于本领域的技术人员来说,显而易见的是,可以在没有这些具体细节的情况下实践本公开的各个方面。在一些情况下,公知的结构和设备以框图形式示出,而不是详细示出,以避免模糊本公开。
除非特别声明,否则从下面的讨论中显而易见的是:在整个描述中,使用诸如“接收”、“确定”、“提供”、“选择”、“供应”等术语的讨论指的是计算机系统或类似电子计算设备的动作和过程,该计算机系统或类似电子计算设备将表示为计算机系统的寄存器和存储器中的物理(电子)量的数据操纵和转换成类似地表示为计算机系统的存储器或寄存器或其他这种信息存储、传输或显示设备中的物理量的其他数据。
本公开还涉及一种用于执行本文的操作的设备。该装置可以为特定目的而专门构造,或者它可以包括由存储在计算机中的计算机程序选择性激活或重新配置的通用计算机。这种计算机程序可以存储在计算机可读存储介质中,诸如但不限于任何类型的盘,包括软盘、光盘、CD-ROM,以及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或适合存储电子指令的任何类型的介质,每个都耦合到计算机系统总线。
本文呈现的本公开的方面并不固有地与任何特定的计算机或其他装置相关。根据本文的教导,各种通用系统可以与程序一起使用,或者可以证明构建更专用的装置来执行指定的方法步骤是方便的。各种这些系统的结构将在下面的描述中出现。此外,本公开的方面没有参考任何特定的编程语言来描述。应当理解,可以使用各种编程语言来实现本文描述的本公开的教导。
本公开的方面可以作为计算机程序产品来提供,该计算机程序产品可以包括其上存储有指令的机器可读介质,该指令可以用于对计算机系统(或其他电子设备)进行编程以执行根据本公开的过程。机器可读介质包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,ROM(“只读存储器”)、RAM(“随机存取存储器”)、磁盘存储介质、光存储介质、闪存设备等。
词语“示例”或“示例性的”在这里用于表示用作示例、实例或说明。本文中描述为“示例”或“示例性”的任何方面或设计不应被解释为优于或优于其他方面或设计。相反,词语“示例”或“示例性”的使用旨在以具体的方式呈现概念。如在本申请中所使用的,术语“或”意在表示包含性的“或”,而不是排他性的“或”。也即,除非另有说明,或者上下文清楚,“X包括A或B”意在表示任何自然的包含置换。也即,如果X包含A;X包括B;或者X既包括A又包括B,则在前述任一情况下满足“X包括A或B”。此外,本申请和所附权利要求中使用的冠词“一”和“一个”通常应被解释为表示“一个或多个”,除非另有说明或从上下文中清楚地指向单数形式。此外,术语“实施例”或“一个实施例”或“实施方式”或“一个实施方式”的使用并不意味着相同的实施例或实施方式,除非如此描述。此外,术语“第一”、“第二”、“第三”、“第四”等。如本文所使用的,是指用于区分不同元件的标签,并且根据它们的数字名称可能没有序数意义。
- 基于gitlab-ci的灵活安全CI/CD服务部署系统及方法
- 一种容器云环境下的CI/CD监控方法和系统