一种流水线编排方法、装置及计算机设备
阅读说明:本技术 一种流水线编排方法、装置及计算机设备 (Assembly line arranging method and device and computer equipment ) 是由 沈增亮 叶建林 于 2021-08-12 设计创作,主要内容包括:本申请实施例提供了一种流水线编排方法、装置及计算机设备,其中方法包括:获取应用的流水线上下文信息;在接收到用户输入的构建任务操作,根据所述流水线上下文信息创建对应的构建任务,执行所述构建任务。这样,基于获取应用的流水线上下文信息,用户可以通过极少的操作完成流水线编排,简化编排操作步骤,尽可能简单地实现流水线编排过程。(The embodiment of the application provides a pipeline arranging method, a device and computer equipment, wherein the method comprises the following steps: acquiring the context information of the application pipeline; and after receiving construction task operation input by a user, creating a corresponding construction task according to the pipeline context information, and executing the construction task. Therefore, based on the obtained context information of the application pipeline, a user can complete the pipeline arrangement through few operations, the arrangement operation steps are simplified, and the pipeline arrangement process is realized as simply as possible.)
技术领域
本发明涉及计算机技术领域,尤其涉及一种流水线编排方法、装置及计算机设备。
背景技术
传统的流水线往往都是以脚本或DSL来描述的,需要有一定的基础。现有非的流水线可视化是一种降低持续集成(Continuous Integration,CI)、持续交互(ContinuousDelivery,CD)使用成本的技术,对公司内的规模化Development和Operations的组合(DevOps)有重大意义。市面上的流水线可视化的产品有不少,例如云效、Coding等,但由于流水线相对孤立,没有其它概念的辅助,导致节点多、参数多,对用户来说编排起来会特别复杂。
发明内容
为了解决上述技术问题,本发明实施例提供了一种流水线编排方法、装置及计算机设备。
第一方面,本发明实施例提供了一种流水线编排方法,包括:
获取应用的流水线上下文信息;
在接收到用户输入的构建任务操作,根据所述流水线上下文信息创建对应的构建任务,执行所述构建任务。
可选的,所述流水线上下文信息包括:应用信息、工程信息及环境信息。
可选的,所述应用信息包括应用类型、编程语言、开发框架信息、单测框架信息、Sonar平台信息、Dockerfile信息、参数配置、及发布配置。
可选的,所述方法还包括:
判断所述应用的源代码是否发生变化;
在所述应用的源代码发生变化的情况下,根据变化后的源代码获取变化后的应用信息。
可选的,所述根据变化后的源代码获取变化后的应用信息,包括:
对所述变化后的源代码进行解析得到变化后的应用信息。
可选的,所述方法还包括:
根据预先获取的工程信息、环境信息及所述变化后的应用信息生成新的流水线上下文信息。
第二方面,本发明实施例提供了流水线编排装置,包括:
获取模块,用于获取应用的流水线上下文信息;
处理模块,用于在接收到用户输入的构建任务操作,根据所述流水线上下文信息创建对应的构建任务,执行所述构建任务。
可选的,所述流水线上下文信息包括:应用信息、工程信息及环境信息。
可选的,所述应用信息包括应用类型、编程语言、开发框架信息、单测框架信息、Sonar平台信息、Dockerfile信息、参数配置、及发布配置。
可选的,所述流水线编排装置还包括:
判断模块,用于判断所述应用的源代码是否发生变化;
所述获取模块,还用于在所述应用的源代码发生变化的情况下,根据变化后的源代码获取变化后的应用信息。
可选的,所述获取模块,还用于对所述变化后的源代码进行解析得到变化后的应用信息。
所述流水线编排装置还包括:
生成模块,用于根据预先获取的工程信息、环境信息及所述变化后的应用信息生成新的流水线上下文信息。
第三方面,本发明实施例提供了一种计算机设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述计算机程序在所述处理器运行时执行第一方面提供的流水线编排方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序在处理器上运行时执行第一方面提供的流水线编排方法。
上述本申请提供的流水线编排方法、装置、计算机设备,获取应用的流水线上下文信息;在接收到用户输入的构建任务操作,根据所述流水线上下文信息创建对应的构建任务,执行所述构建任务。这样,基于获取应用的流水线上下文信息,用户可以通过极少的操作完成流水线编排,简化编排操作步骤,尽可能简单地实现流水线编排过程。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
图1示出了本申请实施例提供的一种流水线编排方法的一流程示意图;
图2示出了本申请实施例提供的一种流水线编排方法的另一流程示意图;
图3示出了本申请实施例提供的一种流水线编排装置的一流程结构图;
图4示出了本申请实施例提供的一种流水线编排装置的另一流程结构图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在下文中,可在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。
实施例1
本申请实施例1提供一种流水线编排方法。
具体的,请参阅图1,本实施例提供的流水线编排方法包括:
步骤S101,获取应用的流水线上下文信息;
步骤S102,在接收到用户输入的构建任务操作,根据所述流水线上下文信息创建对应的构建任务,执行所述构建任务。
在本实施例中,需要对流水线进行简化,获取流水线上下文信息非常关键。流水线上下文信息指的是流水线运行所处的语境,各个节点可以从上下文中获取所需的信息。
可选的,流水线上下文信息包括:应用信息、工程信息及环境信息。
可选的,所述应用信息包括应用类型、编程语言、开发框架信息、单测框架信息、Sonar平台信息、Dockerfile信息、参数配置、及发布配置。
在本实施例中,步骤S101之前,还包括通过单测框架进行单元测试、静态扫描、制品构建、仓库推送及应用发布等过程。应用类型根据应用场景可以由不同类型,例如,移动电子商务应用的类型可以包括移动信息服务、移动支付、移动企业应用等。开发框架信息包括开发框架版本信息等,开发框架可以为Spring Web MVC框架(简称Spring MVC),SpringMVC是一个丰富的模型视图控制Web框架。
在本实施例中,单测框架可以为单测框架Kiwi,单测框架Kiwi提供断言、stub和mock等功能,方便开发写出可读性好的单元测试。
在本实施例中,Sonar(SonarQube)是一个开源平台,用于管理源代码的质量。Sonar平台通过插件机制,可以集成不同的测试工具、代码分析工具、以及持续集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通过不同的插件对结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。同时Sonar平台还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用Sonar平台。
在本实施例中,Dockerfile信息是一个用来构建镜像的文本文件,文本文件包含了一条条构建镜像所需的指令和说明。docker build命令用于从Dockerfile构建映像。可以在dockerbuild命令中使用-f标志指向文件系统中任何位置的Dockerfile。对应应用的参数配置、及发布配置等信息可以从应用的源代码中解析得到。环境信息可以为运行环境信息。
在本实施例中,步骤S102中,基于流水线上下文信息,用户操作就可以简化到极致。比如,对于用户来说,只需要告知平台需要对应用做构建,那么流水线上下文信息里面已经提供了应用的编程语言、开发框架等信息,构建节点可自行根据流水线上下文信息判断该如何执行构建任务。
可选的,请参阅图2,本实施例提供的流水线编排方法包括:
步骤S103,判断所述应用的源代码是否发生变化;
步骤S104,在所述应用的源代码发生变化的情况下,根据变化后的源代码获取变化后的应用信息。
在经过步骤S101及步骤S102简化流水线编排过程后,流水线上下文信息需要实时进行维护。显然,让用户自己去维护肯定不合适,因为应用信息是随代码变化而变化,这不是一次性的工作,需要实时进行更新。而且对实时性要求也会相对高,因为一旦应用信息与实际不一致,就可能会导致流水线构建失败,从而影响用户工作,若用户需要手动维护,则会增加操作难度。因此提供自动化的应用解析服务。
本实施例提供的自动化的应用解析服务具备以下特点:较快的解析速度,处理多分支复杂情况的能力,较高实时性,强大的解析能力,能解析出丰富的应用信息。
此外,还有一些信息是无法通过应用获取的,比如工程信息、环境信息的信息等,可以预先根据用户的输入操作,预先获取工程信息、运行环境信息等。
在本实施例中,可以通过源代码自动实时侦测,若侦测到某段源代码发生变化,则确定源代码发生变化。
在步骤S103,在所述应用的源代码未发生变化的情况下,不重新对源代码进行解析。这样,可以减少计算量,节约计算资源。
可选的,步骤S104中,所述根据变化后的源代码获取变化后的应用信息,包括:
对所述变化后的源代码进行解析得到变化后的应用信息。
在本实施例中,若源代码发生变化,其对应的应用信息也发生变化,故在检测到源代码变化后,对所述变化后的源代码进行解析得到变化后的应用信息。这样,实时获取变化后的应用信息,做到应用信息自动更新,无需用户手动操作,减少人力成本,提高整体流水线编排的自动化程度。
可选的,本实施例提供的流水线编排方法还包括:
根据预先获取的工程信息、环境信息及所述变化后的应用信息生成新的流水线上下文信息。
在本实施例中,预先一次获取工程信息、环境信息后,只需实时获取变化的应用信息就能生成新的流水线上下文信息,在接收到用户输入的构建任务操作,根据新的流水线上下文信息创建对应的新的构建任务,执行新的构建任务,这样,可以实时更新流水线任务编排,提高任务编排效率。
本申请实施例提供的流水线编排方法,获取应用的流水线上下文信息;在接收到用户输入的构建任务操作,根据所述流水线上下文信息创建对应的构建任务,执行所述构建任务。这样,基于获取应用的流水线上下文信息,用户可以通过极少的操作完成流水线编排,简化编排操作步骤,尽可能简单地实现流水线编排过程。
实施例2
本申请实施例2提供一种流水线编排装置。
具体的,请参阅图3,本实施例提供的流水线编排装置300包括:
获取模块301,用于获取应用的流水线上下文信息;
处理模块302,用于在接收到用户输入的构建任务操作,根据所述流水线上下文信息创建对应的构建任务,执行所述构建任务。
可选的,所述流水线上下文信息包括:应用信息、工程信息及环境信息。
可选的,所述应用信息包括应用类型、编程语言、开发框架信息、单测框架信息、Sonar平台信息、Dockerfile信息、参数配置、及发布配置。
可选的,请参阅图4,所述流水线编排装置300还包括:
判断模块303,用于判断所述应用的源代码是否发生变化;
所述获取模块301,还用于在所述应用的源代码发生变化的情况下,根据变化后的源代码获取变化后的应用信息。
可选的,所述获取模块301,还用于对所述变化后的源代码进行解析得到变化后的应用信息。
所述流水线编排装置300还包括:
生成模块,用于根据预先获取的工程信息、环境信息及所述变化后的应用信息生成新的流水线上下文信息。
本实施例提供的流水线编排装置300可以实现实施例1所示的流水线编排方法,为避免重复,在此不再赘述。
本实施提供的流水线编排装置,获取应用的流水线上下文信息;在接收到用户输入的构建任务操作,根据所述流水线上下文信息创建对应的构建任务,执行所述构建任务。这样,基于获取应用的流水线上下文信息,用户可以通过极少的操作完成流水线编排,简化编排操作步骤,尽可能简单地实现流水线编排过程。
实施例3
此外,本公开实施例提供了一种计算机设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述计算机程序在所述处理器运行时执行如下步骤:
获取应用的流水线上下文信息;
在接收到用户输入的构建任务操作,根据所述流水线上下文信息创建对应的构建任务,执行所述构建任务。
可选的,所述流水线上下文信息包括:应用信息、工程信息及环境信息。
可选的,所述应用信息包括应用类型、编程语言、开发框架信息、单测框架信息、Sonar平台信息、Dockerfile信息、参数配置、及发布配置。
可选的,所述计算机程序在所述处理器运行时还执行如下步骤:
判断所述应用的源代码是否发生变化;
在所述应用的源代码发生变化的情况下,根据变化后的源代码获取变化后的应用信息。
可选的,所述计算机程序在所述处理器运行时还执行如下步骤:
对所述变化后的源代码进行解析得到变化后的应用信息。
可选的,所述计算机程序在所述处理器运行时还执行如下步骤:
根据预先获取的工程信息、环境信息及所述变化后的应用信息生成新的流水线上下文信息。
本实施例提供的计算机设备可以实现实施例1所示的流水线编排方法,为避免重复,在此不再赘述。
本实施提供的计算机设备,获取应用的流水线上下文信息;在接收到用户输入的构建任务操作,根据所述流水线上下文信息创建对应的构建任务,执行所述构建任务。这样,基于获取应用的流水线上下文信息,用户可以通过极少的操作完成流水线编排,简化编排操作步骤,尽可能简单地实现流水线编排过程。
实施例4
本实施例提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序在处理器上运行时执行以下步骤:
获取应用的流水线上下文信息;
在接收到用户输入的构建任务操作,根据所述流水线上下文信息创建对应的构建任务,执行所述构建任务。
可选的,所述流水线上下文信息包括:应用信息、工程信息及环境信息。
可选的,所述应用信息包括应用类型、编程语言、开发框架信息、单测框架信息、Sonar平台信息、Dockerfile信息、参数配置、及发布配置。
可选的,所述计算机程序在所述处理器运行时还执行如下步骤:
判断所述应用的源代码是否发生变化;
在所述应用的源代码发生变化的情况下,根据变化后的源代码获取变化后的应用信息。
可选的,所述计算机程序在所述处理器运行时还执行如下步骤:
对所述变化后的源代码进行解析得到变化后的应用信息。
可选的,所述计算机程序在所述处理器运行时还执行如下步骤:
根据预先获取的工程信息、环境信息及所述变化后的应用信息生成新的流水线上下文信息。
本实施例提供的计算机设备可以实现实施例1所示的流水线编排方法,为避免重复,在此不再赘述。
本实施提供的计算机可读存储介质,获取应用的流水线上下文信息;在接收到用户输入的构建任务操作,根据所述流水线上下文信息创建对应的构建任务,执行所述构建任务。这样,基于获取应用的流水线上下文信息,用户可以通过极少的操作完成流水线编排,简化编排操作步骤,尽可能简单地实现流水线编排过程。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
- 上一篇:一种医用注射器针头装配设备
- 下一篇:一种业务系统代码自动生成方法及装置