CN110187898A - 一种软件包的部署系统及方法 - Google Patents
一种软件包的部署系统及方法 Download PDFInfo
- Publication number
- CN110187898A CN110187898A CN201910459221.8A CN201910459221A CN110187898A CN 110187898 A CN110187898 A CN 110187898A CN 201910459221 A CN201910459221 A CN 201910459221A CN 110187898 A CN110187898 A CN 110187898A
- Authority
- CN
- China
- Prior art keywords
- mixing
- layout
- deployment
- adapter
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种软件包的部署系统及方法。包括:混合编排预处理器、混合编排部署引擎、适配器组件;混合编排预处理器和适配器组件均与混合编排部署引擎相连;混合编排预处理器根据编排模板、编排参数及编排依赖关系将多个待部署软件包装配为混合编排文件,并将混合编排文件发送至混合编排部署引擎;混合编排部署引擎对混合编排文件进行解析,获得多个混合编排子文件以及多个混合编排子文件的执行顺序及依赖关系,并根据各混合编排子文件的类型按照执行顺序和依赖关系调用适配器组件中的适配器,调用的适配器对混合编排子文件进行部署。可以实现软件包的混合编排部署,提高软件包部署的效率及成功率。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种软件包的部署系统及方法。
背景技术
随着云计算的兴起,软件向云端部署成为业务向云计算系统迁移的重要一步,也是加速云计算系统普及的重要因素。
当前向云端部署软件主要有如下三种方式:第一种是手工部署,技术人员上传待部署软件包到云端主机或者软件包仓库,使用该类型的软件包部署工具进行部署,这种方式适用于简单的软件部署,尤其是单一软件包的安装部署;第二种是脚本式部署,使用控制引擎对软件包的上传、下载、安装、配置、启动及验证等过程进行控制;第三种是编排式部署,利用编排工具完成部署工作的声明和配置,最后由编排引擎完成软件包的安装部署及配置。
现有技术中,不同类型的软件包在向云端部署时采用不同的部署技术和平台,平台之间又缺乏互联互通,涉及多种格式软件包部署的应用系统往往需要技术人员按照文档进行手工操作,效率低下且容易出错。
发明内容
本发明实施例提供一种软件包的部署系统及方法,以实现软件包的混合编排部署,可以提高软件包部署的效率及成功率。
第一方面,本发明实施例提供了一种软件包的部署系统,包括:混合编排预处理器、混合编排部署引擎、适配器组件;
所述混合编排预处理器和所述适配器组件均与所述混合编排部署引擎相连;
所述混合编排预处理器根据编排模板、编排参数及编排依赖关系将多个待部署软件包装配为混合编排文件,并将所述混合编排文件发送至所述混合编排部署引擎;所述混合编排部署引擎对所述混合编排文件进行解析,获得多个混合编排子文件以及多个混合编排子文件的执行顺序及依赖关系,并根据各混合编排子文件的类型按照执行顺序和依赖关系调用所述适配器组件中的适配器,调用的适配器对混合编排子文件进行部署。
进一步地,所述混合编排部署引擎包括文件处理器、控制调度器及任务执行器;
所述文件处理器将所述混合编排文件拆分为多个混合编排子文件,并根据各混合编排子文件的类型生成多个部署任务;
所述控制调度器根据多个混合编排子文件的执行顺序及依赖关系控制所述多个部署任务的执行;
所述任务执行器与所述控制调度器联动,根据各混合编排子文件的类型按照执行顺序和依赖关系调用所述适配器组件中的适配器,调用的适配器对混合编排子文件进行部署。
进一步地,所述任务执行器根据各混合编排子文件的类型按照执行顺序和依赖关系调用所述适配器组件中的适配器,包括:
所述任务适配器根据各混合编排子文件的类型获得适配器参数;根据执行顺序和依赖关系将所述适配器参数发送至所述适配器组件中对应的适配器,使得适配器根据所述适配器参数对混合编排子文件进行部署。
进一步地,还包括:交互式接口组件;所述交互式接口组件用于接收用户输入的操作参数,以对所述系统的部署任务进行调整。
进一步地,所述适配器组件通过REST接口或者gRPC接口与所述混合编排部署引擎进行通信。
进一步地,所述混合编排文件的格式为json格式;所述混合编排文件包括工作流程子文件、普通任务子文件及系统任务子文件。
第二方面,本发明实施例还提供了一种软件包的部署方法,包括:
对多个待部署软件包进行装配获得混合编排文件;
对所述混合编排文件进行拆分,获得多个部署任务;
根据各部署任务调用对应的适配器,以对软件包进行部署。
进一步地,对所述多个待部署软件包进行装配获得混合编排文件,包括:
获取各待部署软件包的类型对应的编排模板、编排参数以及各待部署软件包间的编排依赖关系;
根据所述编排模板、编排参数及编排依赖关系将多个待部署软件包装配为混合编排文件;
其中,待部署软件包的类型包括如下至少一种:脚本类型、容器类型和队列类型。
进一步地,对所述混合编排文件进行拆分,获得多个部署任务,包括:
将所述混合编排文件拆分为多个混合编排子文件;
根据各混合编排子文件的类型生成多个部署任务。
进一步地,根据各部署任务调用对应的适配器,以对软件包进行部署,包括:
根据各部署任务获取适配器参数;
将所述适配器参数按照所述编排依赖关系发送至对应的适配器,使得适配器根据所述适配器参数对软件包进行部署。
本发明实施例提供的软件包的部署系统,包括:混合编排预处理器、混合编排部署引擎、适配器组件;混合编排预处理器和适配器组件均与混合编排部署引擎相连;混合编排预处理器根据编排模板、编排参数及编排依赖关系将多个待部署软件包装配为混合编排文件,并将混合编排文件发送至混合编排部署引擎;混合编排部署引擎对混合编排文件进行解析,获得多个混合编排子文件以及多个混合编排子文件的执行顺序及依赖关系,并根据各混合编排子文件的类型按照执行顺序和依赖关系调用适配器组件中的适配器,调用的适配器对混合编排子文件进行部署。可以实现软件包的混合编排部署,提高软件包部署的效率及成功率。
附图说明
图1是本发明实施例一中一种软件包的部署系统的结构示意图;
图2是本发明实施例一中的一种混合编排部署引擎的结构示意图;
图3是本发明实施例二中的一种软件包的部署方法的流程图;
图4是本发明实施例二中的一种装配混合编排文件的流程图;
图5是本发明实施例二中的一种执行混合编排文件的流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种软件包的部署系统的结构示意图,如图1所示,该系统包括:混合编排预处理器、混合编排部署引擎、适配器组件。
混合编排预处理器和适配器组件均与混合编排部署引擎相连;混合编排预处理器根据编排模板、编排参数及编排依赖关系将多个待部署软件包装配为混合编排文件,并将混合编排文件发送至混合编排部署引擎;混合编排部署引擎对混合编排文件进行解析,获得多个混合编排子文件以及多个混合编排子文件的执行顺序及依赖关系,并根据各混合编排子文件的类型按照执行顺序和依赖关系调用适配器组件中的适配器,调用的适配器对混合编排子文件进行部署。
其中,编排模板可以是开发人员根据软件包的类型编辑的模板,可以包括脚本模板、容器模板及流程控制模板等。编排参数可以是编排模板中包含的参数。编排依赖关系可以包括软件包之间的执行顺序及依赖关系等。
混合编排文件的格式可以是json格式,文件属性基于领域专用语言(domain-specific language,DSL)定义。混合编排文件可以包括工作流程子文件、普通任务子文件及系统任务子文件。其中,工作流程子文件规定了编排部署的流程,规定了流程中包括哪几种不同类型的部署任务、子工作流、各部署任务的输入参数及输出结果等。普通任务子文件规定了在执行部署任务时需要调用的配置器,以及根据配置器执行部署任务的情况,更新部署任务的状态。系统任务子文件规定了编排部署流程中的控制节点,以及各部署任务的执行顺序和依赖关系,如采用串行、并行、分支及聚合等多种方式进行部署。
图2是本发明实施例中的一种混合编排部署引擎的结构示意图。如图2所示,混合编排部署引擎包括文件处理器、控制调度器及任务执行器。
文件处理器将混合编排文件拆分为多个混合编排子文件,并根据各混合编排子文件的类型生成多个部署任务;控制调度器根据多个混合编排子文件的执行顺序及依赖关系控制多个部署任务的执行;任务执行器与控制调度器联动,根据各混合编排子文件的类型按照执行顺序和依赖关系调用适配器组件中的适配器,调用的适配器对混合编排子文件进行部署。
其中,对混合编排文件拆分的方式可以是按照混合编排文件中包含的软件包进行拆分,即混合编排子文件与软件包一一对应。混合编排子文件的类型可以是其对应的软件包的类型,包括脚本类型、容器类型、队列类型和其他类型等。执行顺序及依赖关系可以包括顺序执行、聚合控制、中断执行、分支控制、重复执行及重新执行等方式。部署任务可以包括脚本任务、容器任务、队列任务、控制任务及其他任务等。
可选的,任务执行器根据各混合编排子文件的类型按照执行顺序和依赖关系调用适配器组件中的适配器的过程可以是:任务适配器根据各混合编排子文件的类型获得适配器参数;根据执行顺序和依赖关系将适配器参数发送至适配器组件中对应的适配器,使得适配器根据适配器参数对混合编排子文件进行部署。
其中,适配器组件包含与混合编排引擎进行通信的接口,如可以是REST接口或者gRPC接口。适配器组件封装了不同功能的适配器,包括脚本执行适配器、Kubernetes适配器、Kubernetes Helm适配器、Ansible适配器及其他部署适配器等。各个适配器需要传入参数才能正常工作,如Kubernetes适配器需要IP地址和端口来进行容器编排。本实施例中,任务执行器在执行部署任务时,需要将适配器参数传入对应的适配器,使得适配器根据适配器参数对混合编排子文件进行部署。
可选的,该系统还包括:交互式接口组件;交互式接口组件用于接收用户输入的操作参数,以对系统的部署任务进行调整。交互式接口组件为混合编排部署引擎在执行任务过程中,提供人工干预的能力。主要解决任务执行过程中的参数动态接入问题。
本实施例提供的软件包的部署系统,包括:混合编排预处理器、混合编排部署引擎、适配器组件;混合编排预处理器和适配器组件均与混合编排部署引擎相连;混合编排预处理器根据编排模板、编排参数及编排依赖关系将多个待部署软件包装配为混合编排文件,并将混合编排文件发送至混合编排部署引擎;混合编排部署引擎对混合编排文件进行解析,获得多个混合编排子文件以及多个混合编排子文件的执行顺序及依赖关系,并根据各混合编排子文件的类型按照执行顺序和依赖关系调用适配器组件中的适配器,调用的适配器对混合编排子文件进行部署。可以实现软件包的混合编排部署,提高软件包部署的效率及成功率。
实施例二
图3为本发明实施例二提供的一种软件包的部署方法的流程图。该方法由上述实施例所述的软件包的部署系统执行,如图3所示,该方法包括如下步骤:
步骤310,对多个待部署软件包进行装配获得混合编排文件。
待部署软件包可以将要部署至云端的软件包。对多个待部署软件包进行装配获得混合编排文件的过程可以是:获取各待部署软件包的类型对应的编排模板、编排参数以及各待部署软件包间的编排依赖关系;根据编排模板、编排参数及编排依赖关系将多个待部署软件包装配为混合编排文件。其中,待部署软件包的类型包括如下至少一种:脚本类型、容器类型和队列类型。相应的,编排模板包括脚本模板、容器模板及流程控制模板;编排参数包括脚本部署参数、容器部署参数及流程控制参数。
图4为本发明实施例二中的一种装配混合编排文件的流程图。如图4所示,对于脚本类型的软件包,根据脚本模板及脚本部署参数生成脚本文件单元;对于容器类型的软件包,根据容器模板及容器部署参数生成容器文件单元;对于队列类型的软件包,根据流程控制模板和流程控制参数生成流程控制单元;然后根据工作流程文件建立脚本文件单元、容器文件单元和流程控制单元的执行顺序及依赖关系,最后规定任务执行过程中的控制条件,生成混合编排文件。
步骤320,对混合编排文件进行拆分,获得多个部署任务。
具体的,将混合编排文件拆分为多个混合编排子文件;根据各混合编排子文件的类型生成多个部署任务。
可选的,在对混合编排文件进行拆分之前还包括:对混合编排文件记性校验。校验内容包括:格式规范及DSL中定义的模板信息规范,以确保混合编排文件可以被混合部署引擎正确的解析。
步骤330,根据各部署任务调用对应的适配器,以对软件包进行部署。
具体的,根据各部署任务调用对应的适配器,以对软件包进行部署的过程可以是:根据各部署任务获取适配器参数;将适配器参数按照编排依赖关系发送至对应的适配器,使得适配器根据适配器参数对软件包进行部署。
图5是本发明实施例中一种执行混合编排文件的流程图。如图5所示,将混合编排文件拆分为脚本部署任务、容器部署任务,并获得控制流程文件及交互文件。通过调用执行脚本适配器执行脚本部署任务,通过调用容器适配器执行容器部署任务,各适配器返回部署结果。部署结果可以包括部署成功和部署失败。可选的,执行部署任务的过程还可以是,首先调用执行脚本适配器执行脚本部署任务,若脚本适配器返回的结果是部署成功,则继续调用容器适配器执行容器部署任务,并获得容器适配器的部署结果。
可选的,在执行容器部署任务之前,可以根据编排文件中定义的“access”关键字,暂停执行过程,等待外部参数输入,当外界输入参数后,向容器适配器下发部署任务。
本实施例的技术方案,对多个待部署软件包进行装配获得混合编排文件,对混合编排文件进行拆分,获得多个部署任务,根据各部署任务调用对应的适配器,以对软件包进行部署。可以同时对不同类型的软件包进行部署,实现软件包的混合编排部署,提高软件包部署的效率及成功率。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种软件包的部署系统,其特征在于,包括:混合编排预处理器、混合编排部署引擎、适配器组件;
所述混合编排预处理器和所述适配器组件均与所述混合编排部署引擎相连;
所述混合编排预处理器根据编排模板、编排参数及编排依赖关系将多个待部署软件包装配为混合编排文件,并将所述混合编排文件发送至所述混合编排部署引擎;所述混合编排部署引擎对所述混合编排文件进行解析,获得多个混合编排子文件以及多个混合编排子文件的执行顺序及依赖关系,并根据各混合编排子文件的类型按照执行顺序和依赖关系调用所述适配器组件中的适配器,调用的适配器对混合编排子文件进行部署。
2.根据权利要求1所述的系统,其特征在于,所述混合编排部署引擎包括文件处理器、控制调度器及任务执行器;
所述文件处理器将所述混合编排文件拆分为多个混合编排子文件,并根据各混合编排子文件的类型生成多个部署任务;
所述控制调度器根据多个混合编排子文件的执行顺序及依赖关系控制所述多个部署任务的执行;
所述任务执行器与所述控制调度器联动,根据各混合编排子文件的类型按照执行顺序和依赖关系调用所述适配器组件中的适配器,调用的适配器对混合编排子文件进行部署。
3.根据权利要求2所述的系统,其特征在于,所述任务执行器根据各混合编排子文件的类型按照执行顺序和依赖关系调用所述适配器组件中的适配器,包括:
所述任务适配器根据各混合编排子文件的类型获得适配器参数;根据执行顺序和依赖关系将所述适配器参数发送至所述适配器组件中对应的适配器,使得适配器根据所述适配器参数对混合编排子文件进行部署。
4.根据权利要求1所述的系统,其特征在于,还包括:交互式接口组件;所述交互式接口组件用于接收用户输入的操作参数,以对所述系统的部署任务进行调整。
5.根据权利要求1所述的系统,其特征在于,所述适配器组件通过REST接口或者gRPC接口与所述混合编排部署引擎进行通信。
6.根据权利要求1所述的系统,其特征在于,所述混合编排文件的格式为json格式;所述混合编排文件包括工作流程子文件、普通任务子文件及系统任务子文件。
7.一种软件包的部署方法,其特征在于,包括:
对多个待部署软件包进行装配获得混合编排文件;
对所述混合编排文件进行拆分,获得多个部署任务;
根据各部署任务调用对应的适配器,以对软件包进行部署。
8.根据权利要求7所述的方法,其特征在于,对所述多个待部署软件包进行装配获得混合编排文件,包括:
获取各待部署软件包的类型对应的编排模板、编排参数以及各待部署软件包间的编排依赖关系;
根据所述编排模板、编排参数及编排依赖关系将多个待部署软件包装配为混合编排文件;
其中,待部署软件包的类型包括如下至少一种:脚本类型、容器类型和队列类型。
9.根据权利要求8所述的方法,其特征在于,对所述混合编排文件进行拆分,获得多个部署任务,包括:
将所述混合编排文件拆分为多个混合编排子文件;
根据各混合编排子文件的类型生成多个部署任务。
10.根据权利要求8所述的方法,其特征在于,根据各部署任务调用对应的适配器,以对软件包进行部署,包括:
根据各部署任务获取适配器参数;
将所述适配器参数按照所述编排依赖关系发送至对应的适配器,使得适配器根据所述适配器参数对软件包进行部署。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910459221.8A CN110187898A (zh) | 2019-05-29 | 2019-05-29 | 一种软件包的部署系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910459221.8A CN110187898A (zh) | 2019-05-29 | 2019-05-29 | 一种软件包的部署系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110187898A true CN110187898A (zh) | 2019-08-30 |
Family
ID=67718748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910459221.8A Pending CN110187898A (zh) | 2019-05-29 | 2019-05-29 | 一种软件包的部署系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110187898A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111682973A (zh) * | 2020-08-17 | 2020-09-18 | 烽火通信科技股份有限公司 | 一种边缘云的编排方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102404381A (zh) * | 2011-09-02 | 2012-04-04 | 西安交通大学 | 一种云计算环境下基于工作流的软件部署系统及部署方法 |
US20150347119A1 (en) * | 2014-06-02 | 2015-12-03 | Qiushi WANG | Automatic deployment and update of hybrid applications |
CN109408066A (zh) * | 2018-10-18 | 2019-03-01 | 郑州云海信息技术有限公司 | 一种云平台部署方法和装置 |
-
2019
- 2019-05-29 CN CN201910459221.8A patent/CN110187898A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102404381A (zh) * | 2011-09-02 | 2012-04-04 | 西安交通大学 | 一种云计算环境下基于工作流的软件部署系统及部署方法 |
US20150347119A1 (en) * | 2014-06-02 | 2015-12-03 | Qiushi WANG | Automatic deployment and update of hybrid applications |
CN109408066A (zh) * | 2018-10-18 | 2019-03-01 | 郑州云海信息技术有限公司 | 一种云平台部署方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111682973A (zh) * | 2020-08-17 | 2020-09-18 | 烽火通信科技股份有限公司 | 一种边缘云的编排方法及系统 |
CN111682973B (zh) * | 2020-08-17 | 2020-11-13 | 烽火通信科技股份有限公司 | 一种边缘云的编排方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3011444B1 (en) | Method and apparatus for code virtualization and remote process call generation | |
CN106406960B (zh) | 一种linux环境中快速部署软件的方法 | |
CN106547527B (zh) | 一种JavaScript文件构建方法及装置 | |
CN110928529A (zh) | 辅助算子开发的方法和系统 | |
US20090089039A1 (en) | System and method of emulating functionality of a web service | |
CN108429787B (zh) | 容器部署方法及装置、计算机存储介质、终端 | |
WO2018113096A1 (zh) | 一种食谱程序代码生成方法及食谱编译云平台系统 | |
US9672032B2 (en) | Mobile enabled application | |
CN113971110A (zh) | 接口测试方法、装置、设备与计算机可读存储介质 | |
CN111488151B (zh) | Android各模块间页面交互的方法、装置 | |
CN109299331B (zh) | Air展现超文本标记语言HTML5页面的方法及装置 | |
US20060218511A1 (en) | Unified markup language processing | |
CN113934832A (zh) | 基于会话的交互处理方法、装置、设备、介质及程序产品 | |
US20110047526A1 (en) | Method and a system for transforming an object model | |
CN110187898A (zh) | 一种软件包的部署系统及方法 | |
CN114706616A (zh) | 小程序构建方法和装置 | |
CN116362336B (zh) | 一种模型推理交互方法、电子设备、可读存储介质 | |
CN110659022B (zh) | 一种基于Java自动调用Python脚本的方法 | |
Dalibor et al. | Tagging Model Properties for Flexible Communication. | |
CN113037582A (zh) | 网络功能虚拟化nfv测试方法、装置和系统 | |
CN116009836B (zh) | 基于脚本语言的rpa编程方法、装置、设备及存储介质 | |
CN116991607B (zh) | 用于大数据中台和平台间通信的适配方法、系统及设备 | |
EP3608773A9 (en) | Method for providing an automatic software development/generation and deployment functionality in at least one vehicle and corresponding backend server system | |
CN115756412A (zh) | 一种基于聚合的软件开发方法及终端 | |
CN114070764A (zh) | 网络功能虚拟化nfv测试方法、装置和系统 |
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 |