CN111831340B - 一种持续集成多流水线编排方法 - Google Patents

一种持续集成多流水线编排方法 Download PDF

Info

Publication number
CN111831340B
CN111831340B CN202010697186.6A CN202010697186A CN111831340B CN 111831340 B CN111831340 B CN 111831340B CN 202010697186 A CN202010697186 A CN 202010697186A CN 111831340 B CN111831340 B CN 111831340B
Authority
CN
China
Prior art keywords
pipeline
execution
module
plug
task
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010697186.6A
Other languages
English (en)
Other versions
CN111831340A (zh
Inventor
刘庆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Simple Technology Co ltd
Original Assignee
Beijing Simple Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Simple Technology Co ltd filed Critical Beijing Simple Technology Co ltd
Priority to CN202010697186.6A priority Critical patent/CN111831340B/zh
Publication of CN111831340A publication Critical patent/CN111831340A/zh
Application granted granted Critical
Publication of CN111831340B publication Critical patent/CN111831340B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种持续集成多流水线编排方法,包括执行记录展示模块、与执行记录展示模块连接的流水线调度模块、与流水线调度模块连接的任务执行模块、与流水线调度模块连接的流水线编排模块、以及与流水线编排模块连接的插件管理模块;在插件管理模块与流水线编排模块之间设置流水线触发插件;本发明通过流水线插件的方式实现多流水线的可视化配置与调用追踪,使用灵活、清晰,操作简单,便于使用。

Description

一种持续集成多流水线编排方法
技术领域
本发明涉及一种持续集成***,具体是一种持续集成多流水线编排方法。
背景技术
持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。持续集成已经在现代软件开发中得到普遍使用,持续集成***也成为现代软件开发企业中的基础研发***。持续集成***在团队协同中,使得不同的软件开发工程师的代码可以快速集成,生成可交付的软件,并快速的部署交付,大幅提升开发和协同效率,打通从代码编写到交付上线的全流程。
持续集成***复杂的流水线编排不仅涉及单流水线内部不同的任务、串并行、分阶段等各种复杂配置,还涉及到不同流水线之间的上下游触发关系配置。当前的持续集成多流水线编排方法主要分三类:
一、在上游流水线中,通过脚本调用下游流水线API触发。此种方案的缺点是:上下游关系不可视化,隐藏在脚本代码里。
二、通过图形配置界面,在下游流水线的事件源中设置触发其执行的上游流水线。此种方案的缺点是:1、灵活度不足,下游流水线只能在上游流水线的结束后才能执行,且无法触发下游流水线并行执行;2、流水线上下游关系放在下游流水线中配置,不方便从上游流水线追踪到下游流水线。
三、通过单独图形配置界面,将上下游流水线进行整体配置成大流水线。此种方案的缺点是:1、将若干条流水线放在一起进行配置,配置界面复杂;2、依然不够灵活,下游流水线只能在上游流水线完成后才能执行。
发明内容
本发明的目的在于提供一种持续集成多流水线编排方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种持续集成多流水线编排方法,包括执行记录展示模块、与执行记录展示模块连接的流水线调度模块、与流水线调度模块连接的任务执行模块、与流水线调度模块连接的流水线编排模块、以及与流水线编排模块连接的插件管理模块;在插件管理模块与流水线编排模块之间设置流水线触发插件;
该方法包括如下步骤:
步骤一、用户配置场景,包括以下步骤:
步骤101、用户通过流水线编排模块,进行流水线配置;
步骤102、流水线编排模块通过插件管理模块获取流水线触发插件的配置项;
步骤103、插件管理模块载入流水线触发插件及其配置项,包括下游流水线名称和传递参数项;
步骤104、流水线触发插件向流水线编排模块发起查询,获取流水线***中已经配置的其他流水线信息,并在流水线触发插件中选择需要触发的下游流水线,同时进行触发参数配置;
其中,同一条流水线按照步骤102至步骤104,以任务编排方式配置多个下游流水线触发插件;
步骤105、流水线触发插件配置完毕后,配置信息通过插件管理模块返回至流水线编排模块,完成流水线的配置过程,并将流水线配置信息存储至流水线编排模块;
步骤二、流水线执行场景,包括以下步骤:
步骤201、流水线调度模块接收到外部事件消息或者本地***定时消息后,通过流水线编排模块查询符合执行条件的流水线,并获取符合执行条件的流水线编排信息;
步骤202、流水线调度模块将符合条件的流水线任务拆解,按照流水线编排信息,将需要执行的任务发送至任务执行模块;
步骤203、如果需要执行的任务包含流水线触发插件任务,则任务执行模块进行流水线触发插件的执行;
如果需要执行的任务不包含流水线触发插件任务,则进入普通流水线任务执行流程;
步骤204、流水线触发插件执行的具体逻辑为:任务执行模块根据步骤201中获取的流水线触发插件配置信息,将要触发的下游流水线信息以及触发下游流水线执行时需要传递的参数信息生成一个流水线触发事件传送至流水线调度模块;
步骤205、流水线调度模块根据步骤204中接收到的下游流水线触发执行事件,重复步骤201至步骤204进行下游流水线的触发,并且将下游流水线状态回传至流水线触发插件执行;
步骤206、流水线触发插件执行后,将步骤205中接收到的下游流水线执行信息回传至任务执行模块;
步骤207、任务执行模块将步骤206中接收到的流水线触发插件执行结果及步骤203中普通类型的任务执行信息全部上报至流水线调度模块;
步骤208、流水线调度模块将步骤201中获取的上游流水线的任务执行信息汇总,并传送至执行记录展示模块;
步骤209、用户通过执行记录展示模块,以可视化的形式获得上游流水线的任务执行情况,以及触发的下游流水线执行情况,并且可以直接追溯跳转至下游流水线,查看下游流水线的详细执行信息。
作为本发明进一步的方案:所述执行记录展示模块用于向用户提供图形化的流水线执行记录和执行状态数据。
作为本发明进一步的方案:所述流水线调度模块用于接收外部事件、维护内部定时器,以及对符合执行条件的流水线进行调度任务安排;所述外部事件包括代码提交事件、用户手动点击执行。
作为本发明进一步的方案:所述任务执行模块用于负责任务的具体执行,包括执行环境与资源的生成、任务的分发、执行、结果的回传。
作为本发明进一步的方案:所述流水线编排模块用于设置流水线的具体任务构成、不同任务之间的上下游及串并行关系、每个任务的执行配置,以及流水线的执行条件。
作为本发明进一步的方案:所述插件管理模块用于提供流水线***插件数据库、记录内置的插件类型和插件配置项。
作为本发明进一步的方案:所述流水线触发插件用于配置触发流水线对应的下游流水线,以及向下游流水线传递参数配置项。
作为本发明进一步的方案:所述流水线编排信息包括流水线具体任务构成、不同的任务之间的上下游及串并行关系、每个任务的执行配置、流水线的执行条件。
与现有技术相比,本发明的有益效果是:
本发明采用上述方法后,通过设置的流水线触发插件,以插件的方式实现持续集成多流水线的编排。可以在上游流水线的任何一个位置触发下游流水线,还可以向下游流水线支持不同的参数并发执行,使用时更灵活。通过图形化插件的简单配置即可实现,操作更简单。能够以可视化的形式从上游流水线追踪到下游流水线,使用时更清晰,可追溯性较强。本发明通过流水线插件的方式实现多流水线的可视化配置与调用追踪,使用灵活、清晰,操作简单,便于使用。
附图说明
图1为一种持续集成多流水线编排方法的整体流程示意图。
图2为一种持续集成多流水线编排方法中用户配置场景示意图。
图3为一种持续集成多流水线编排方法中流水线执行场景示意图。
具体实施方式
下面结合具体实施方式对本专利的技术方案作进一步详细地说明。
请参阅图1-3,一种持续集成多流水线编排方法,包括执行记录展示模块、与执行记录展示模块连接的流水线调度模块、与流水线调度模块连接的任务执行模块、与流水线调度模块连接的流水线编排模块、以及与流水线编排模块连接的插件管理模块;在插件管理模块与流水线编排模块之间设置流水线触发插件;
所述执行记录展示模块用于向用户提供图形化的流水线执行记录和执行状态数据;
所述流水线调度模块用于接收外部事件、维护内部定时器,以及对符合执行条件的流水线进行调度任务安排;其中,所述外部事件包括代码提交事件、用户手动点击执行;
所述任务执行模块用于负责任务的具体执行,包括执行环境与资源的生成、任务的分发、执行、结果的回传;
所述流水线编排模块用于设置流水线的具体任务构成、不同任务之间的上下游及串并行关系、每个任务的执行配置,以及流水线的执行条件;
所述插件管理模块用于提供流水线***插件数据库、记录内置的插件类型和插件配置项;
所述流水线触发插件用于配置触发流水线对应的下游流水线,以及向下游流水线传递参数配置项;
该方法包括如下步骤:
步骤一、用户配置场景,包括以下步骤:
步骤101、用户通过流水线编排模块,进行流水线配置,如图2箭头1所示;
步骤102、流水线编排模块通过插件管理模块获取流水线触发插件的配置项,如图2箭头2所示;
步骤103、插件管理模块载入流水线触发插件及其配置项,包括下游流水线名称和传递参数项,如图2箭头头3所示;
步骤104、流水线触发插件向流水线编排模块发起查询,获取流水线***中已经配置的其他流水线信息,并在流水线触发插件中选择需要触发的下游流水线,同时进行触发参数配置;如图2箭头4、箭头5所示。
其中,同一条流水线按照步骤102至步骤104,以任务编排方式配置多个下游流水线触发插件。
步骤105、流水线触发插件配置完毕后,配置信息通过插件管理模块返回至流水线编排模块,完成流水线的配置过程,并将流水线配置信息存储至流水线编排模块;如图2箭头6、箭头7所示。用户需要先在此场景下进行流水线配置才能完成功能的使用。
步骤二、流水线执行场景,包括以下步骤:
步骤201、流水线调度模块接收到外部事件消息或者本地***定时消息后,通过流水线编排模块查询符合执行条件的流水线,并获取符合执行条件的流水线编排信息,如图3箭头1、箭头2所示。
其中,流水线编排信息包括流水线具体任务构成、不同的任务之间的上下游及串并行关系、每个任务的执行配置、流水线的执行条件等。
步骤202、流水线调度模块将符合条件的流水线任务拆解,按照流水线编排信息,将需要执行的任务发送至任务执行模块,如图3箭头3所示。
步骤203、如果需要执行的任务包含流水线触发插件任务,则任务执行模块进行流水线触发插件的执行,如图3箭头4所示;
如果需要执行的任务不包含流水线触发插件任务,则进入普通流水线任务执行流程,此为现有技术,在此不再赘述。
步骤204、流水线触发插件执行的具体逻辑为:任务执行模块根据步骤201中获取的流水线触发插件配置信息,将要触发的下游流水线信息以及触发下游流水线执行时需要传递的参数信息生成一个流水线触发事件传送至流水线调度模块,如图3箭头5所示。
步骤205、流水线调度模块根据步骤204中接收到的下游流水线触发执行事件,重复步骤201至步骤204进行下游流水线的触发,并且将下游流水线状态回传至流水线触发插件执行,如图3箭头6所示。
步骤206、流水线触发插件执行后,将步骤205中接收到的下游流水线执行信息回传至任务执行模块,如图3箭头7所示。
步骤207、任务执行模块将步骤206中接收到的流水线触发插件执行结果及步骤203中普通类型的任务执行信息全部上报至流水线调度模块,如图3箭头8所示。
步骤208、流水线调度模块将步骤201中获取的上游流水线的任务执行信息汇总,并传送至执行记录展示模块,如图3箭头9所示。
步骤209、用户通过执行记录展示模块,以可视化的形式获得上游流水线的任务执行情况,以及触发的下游流水线执行情况,并且可以直接追溯跳转至下游流水线,查看下游流水线的详细执行信息。
上面对本专利的较佳实施方式作了详细说明,但是本专利并不限于上述实施方式,在本领域的普通技术人员所具备的知识范围内,还可以在不脱离本专利宗旨的前提下做出各种变化。

Claims (8)

1.一种持续集成多流水线编排方法,其特征在于,包括执行记录展示模块、与执行记录展示模块连接的流水线调度模块、与流水线调度模块连接的任务执行模块、与流水线调度模块连接的流水线编排模块、以及与流水线编排模块连接的插件管理模块;在插件管理模块与流水线编排模块之间设置流水线触发插件;
该方法包括如下步骤:
步骤一、用户配置场景,包括以下步骤:
步骤101、用户通过流水线编排模块,进行流水线配置;
步骤102、流水线编排模块通过插件管理模块获取流水线触发插件的配置项;
步骤103、插件管理模块载入流水线触发插件及其配置项,包括下游流水线名称和传递参数项;
步骤104、流水线触发插件向流水线编排模块发起查询,获取流水线***中已经配置的其他流水线信息,并在流水线触发插件中选择需要触发的下游流水线,同时进行触发参数配置;
其中,同一条流水线按照步骤102至步骤104,以任务编排方式配置多个下游流水线触发插件;
步骤105、流水线触发插件配置完毕后,配置信息通过插件管理模块返回至流水线编排模块,完成流水线的配置过程,并将流水线配置信息存储至流水线编排模块;
步骤二、流水线执行场景,包括以下步骤:
步骤201、流水线调度模块接收到外部事件消息或者本地***定时消息后,通过流水线编排模块查询符合执行条件的流水线,并获取符合执行条件的流水线编排信息;
步骤202、流水线调度模块将符合条件的流水线任务拆解,按照流水线编排信息,将需要执行的任务发送至任务执行模块;
步骤203、如果需要执行的任务包含流水线触发插件任务,则任务执行模块进行流水线触发插件的执行;
如果需要执行的任务不包含流水线触发插件任务,则进入普通流水线任务执行流程;
步骤204、流水线触发插件执行的具体逻辑为:任务执行模块根据步骤201中获取的流水线触发插件配置信息,将要触发的下游流水线信息以及触发下游流水线执行时需要传递的参数信息生成一个流水线触发事件传送至流水线调度模块;
步骤205、流水线调度模块根据步骤204中接收到的下游流水线触发执行事件,重复步骤201至步骤204进行下游流水线的触发,并且将下游流水线状态回传至流水线触发插件执行;
步骤206、流水线触发插件执行后,将步骤205中接收到的下游流水线执行信息回传至任务执行模块;
步骤207、任务执行模块将步骤206中接收到的流水线触发插件执行结果及步骤203中普通类型的任务执行信息全部上报至流水线调度模块;
步骤208、流水线调度模块将步骤201中获取的上游流水线的任务执行信息汇总,并传送至执行记录展示模块;
步骤209、用户通过执行记录展示模块,以可视化的形式获得上游流水线的任务执行情况,以及触发的下游流水线执行情况,并且可以直接追溯跳转至下游流水线,查看下游流水线的详细执行信息。
2.根据权利要求1所述的一种持续集成多流水线编排方法,其特征在于,所述执行记录展示模块用于向用户提供图形化的流水线执行记录和执行状态数据。
3.根据权利要求1所述的一种持续集成多流水线编排方法,其特征在于,所述流水线调度模块用于接收外部事件、维护内部定时器,以及对符合执行条件的流水线进行调度任务安排;所述外部事件包括代码提交事件、用户手动点击执行。
4.根据权利要求1所述的一种持续集成多流水线编排方法,其特征在于,所述任务执行模块用于负责任务的具体执行,包括执行环境与资源的生成、任务的分发、执行、结果的回传。
5.根据权利要求1所述的一种持续集成多流水线编排方法,其特征在于,所述流水线编排模块用于设置流水线的具体任务构成、不同任务之间的上下游及串并行关系、每个任务的执行配置,以及流水线的执行条件。
6.根据权利要求1所述的一种持续集成多流水线编排方法,其特征在于,所述插件管理模块用于提供流水线***插件数据库、记录内置的插件类型和插件配置项。
7.根据权利要求1所述的一种持续集成多流水线编排方法,其特征在于,所述流水线触发插件用于配置触发流水线对应的下游流水线,以及向下游流水线传递参数配置项。
8.根据权利要求1所述的一种持续集成多流水线编排方法,其特征在于,所述流水线编排信息包括流水线具体任务构成、不同的任务之间的上下游及串并行关系、每个任务的执行配置、流水线的执行条件。
CN202010697186.6A 2020-07-20 2020-07-20 一种持续集成多流水线编排方法 Active CN111831340B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010697186.6A CN111831340B (zh) 2020-07-20 2020-07-20 一种持续集成多流水线编排方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010697186.6A CN111831340B (zh) 2020-07-20 2020-07-20 一种持续集成多流水线编排方法

Publications (2)

Publication Number Publication Date
CN111831340A CN111831340A (zh) 2020-10-27
CN111831340B true CN111831340B (zh) 2024-03-05

Family

ID=72923586

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010697186.6A Active CN111831340B (zh) 2020-07-20 2020-07-20 一种持续集成多流水线编排方法

Country Status (1)

Country Link
CN (1) CN111831340B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113127368A (zh) * 2021-04-30 2021-07-16 中原银行股份有限公司 一种生成流水线的方法、***和介质
CN113760296A (zh) * 2021-08-03 2021-12-07 上海数禾信息科技有限公司 软件构建方法、装置、计算机设备和存储介质
CN114968223B (zh) * 2021-12-14 2024-05-17 中国联合网络通信集团有限公司 流水线编排方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106095389A (zh) * 2009-12-23 2016-11-09 英特尔公司 用于自动获得并同步上下文内容和应用的方法和设备
CN109032769A (zh) * 2017-06-08 2018-12-18 ***通信集团浙江有限公司 一种基于容器的持续集成ci任务处理方法及装置
CN109684215A (zh) * 2018-12-25 2019-04-26 中国科学院电子学研究所苏州研究院 一种自动化软件***质量检查和快速迭代方法
CN110521171A (zh) * 2017-03-28 2019-11-29 思科技术公司 用于应用性能监视和管理的流簇解析
CN111160754A (zh) * 2019-12-25 2020-05-15 上海精鲲计算机科技有限公司 一种流程编排引擎***

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106095389A (zh) * 2009-12-23 2016-11-09 英特尔公司 用于自动获得并同步上下文内容和应用的方法和设备
CN110521171A (zh) * 2017-03-28 2019-11-29 思科技术公司 用于应用性能监视和管理的流簇解析
CN109032769A (zh) * 2017-06-08 2018-12-18 ***通信集团浙江有限公司 一种基于容器的持续集成ci任务处理方法及装置
CN109684215A (zh) * 2018-12-25 2019-04-26 中国科学院电子学研究所苏州研究院 一种自动化软件***质量检查和快速迭代方法
CN111160754A (zh) * 2019-12-25 2020-05-15 上海精鲲计算机科技有限公司 一种流程编排引擎***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王俊,牛亚运."基于流水线理念持续集成与持续交付平台的设计与实现".《软件工程》.2020,第23卷(第4期),第29-33页. *

Also Published As

Publication number Publication date
CN111831340A (zh) 2020-10-27

Similar Documents

Publication Publication Date Title
CN111831340B (zh) 一种持续集成多流水线编排方法
US20200167359A1 (en) Query task processing based on memory allocation and performance criteria
US9588822B1 (en) Scheduler for data pipeline
US9710773B2 (en) Modeling user input and interaction in workflow based applications
Sheng et al. Configurable composition and adaptive provisioning of web services
CN110286892B (zh) 一种基于业务流程设计的快速开发引擎***
US20020170035A1 (en) Event-based scheduling method and system for workflow activities
CN105719126B (zh) 一种基于生命周期模型的互联网大数据任务调度的***及方法
US20080300928A1 (en) Publishing and deploying business processes
WO2009035810A1 (en) Concurrency in event processing networks for event server
Casati et al. Modeling and managing interactions among business processes
CN102681878A (zh) 无需修改现有代码即可增加新软件特征的方法
EP2075700B1 (en) Streaming operations for workflow process models
Brogi et al. From BPEL processes to YAWL workflows
WO2004077262A2 (en) Systems and methods utilizing a workflow definition language
CN109726941A (zh) 一种智能终端的自动营销***及自动营销方法
CN112418784B (zh) 一种服务的编排执行***及方法
Ronngren et al. On event ordering in parallel discrete event simulation
US20070083866A1 (en) Leveraging advanced queues to implement event based job scheduling
CN115759955A (zh) 一种基于区块链的业务流程执行引擎
US20060230109A1 (en) Mediator-based recovery mechanism for multi-agent system
Abiteboul et al. The AXML artifact model
US8468529B2 (en) Correlating, logging and tracing messaging events between workflow instances with globally unique identifiers
Zapletal et al. An analysis of windows workflow's control-flow expressiveness
Abbassi et al. An event-B driven approach for ensuring reliable and flexible service composition

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant