CN115794128A - 软件部署方法、装置、计算机设备和计算机可读存储介质 - Google Patents
软件部署方法、装置、计算机设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN115794128A CN115794128A CN202211534115.XA CN202211534115A CN115794128A CN 115794128 A CN115794128 A CN 115794128A CN 202211534115 A CN202211534115 A CN 202211534115A CN 115794128 A CN115794128 A CN 115794128A
- Authority
- CN
- China
- Prior art keywords
- deployment
- software
- target
- deployed
- file
- 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
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本申请提供一种软件部署方法、装置、计算机设备和计算机可读存储介质,属于计算机技术领域。所述方法包括:根据待部署软件对应的配置信息生成初始编排文件;根据所述配置信息从所述软件部署***中的多个资源设备中确定至少一个目标部署设备,并根据所述初始编排文件和各所述目标部署设备生成中间编排文件;基于各所述运行模块对所述中间编排文件进行拆分转换处理,得到至少一个目标编排文件;根据各所述目标编排文件生成部署任务,并由对应的部署引擎分别执行各所述部署任务,以将所述待部署软件部署到所述部署设备。本申请可以达到提高软件部署效率的效果。
Description
技术领域
本申请涉及网络通信技术领域,具体而言,涉及一种软件部署方法、装置、计算机设备和计算机可读存储介质。
背景技术
随着互联网技术和计算机技术的发展,技术人员开发出了各种各样的软件产品,如果要将软件产品交互给用户正常使用,就需要将这些软件产品安装、部署在相应的服务器上。然而,传统的部署方式已经不适用当前与日俱增软件部署的需求。
相关技术中,相关技术人员开始采用自动化部署的方式来部署各种软件产品,比如可以通过Ansible工具来进行二进制部署,这样可以实现基于主机的软件自动化部署。另外,还可以通过Kubernetes(简称K8S)工具来进行云原生部署,这样可以实现基于云原生环境的软件自动化部署和资源编排优化。
然而,相关技术中Ansible工具或K8S工具都只能采用不同的编排文件将软件部署在特定环境下,若软件产品需要融合多种部署方式才能部署成功,那么就需要多个技术栈分别开发出多个内容重复的不同格式的编排文件。因此,相关技术的方案存在软件部署的效率较低的问题。
发明内容
本申请的目的在于提供一种软件部署方法、装置、计算机设备和计算机可读存储介质,可以达到提高软件部署效率的效果。
本申请的实施例是这样实现的:
本申请实施例的第一方面,提供一种软件部署方法,应用于软件部署***中的部署服务器,该方法包括:
根据待部署软件对应的配置信息生成初始编排文件,该初始编排文件包括至少一个运行模块,各运行模块分别对应一个部署引擎;
根据该配置信息从该软件部署***中的多个资源设备中确定至少一个目标部署设备,并根据该初始编排文件和各目标部署设备生成中间编排文件;
基于各运行模块对该中间编排文件进行拆分转换处理,得到至少一个目标编排文件,各目标编排文件的格式分别与各运行模块对应的部署引擎匹配;
根据各目标编排文件生成部署任务,并由对应的部署引擎分别执行各部署任务,以将该待部署软件部署到该目标部署设备。
可选地,该基于各运行模块对该中间编排文件进行拆分转换处理,得到至少一个目标编排文件,包括:
根据各运行模块从该中间编排文件拆分出至少一个子编排文件,各子编排文件分别包括一个该运行模块、该运行模块对应的配置信息和实时资源信息;
分别按照各运行模块对应的部署引擎对各子编排文件进行格式转换,得到各转换后的子编排文件,各转换后的子编排文件的格式分别与各运行模块对应的部署引擎匹配;
将各转换后的子编排文件分别作为各目标编排文件。
可选地,该根据各目标编排文件生成部署任务,并由对应的部署引擎分别执行各部署任务,包括:
将各目标编排文件、各目标编排文件对应的该待部署软件的功能模块以及该功能模块的执行顺序进行封装,得到各部署任务,各部署任务的执行顺序与该待部署软件的各功能模块的执行顺序对应;
确定该部署任务中目标编排文件对应的部署引擎,并将各部署任务分配到各部署引擎;
由各部署引擎按照各部署任务的执行顺序执行各部署任务。
可选地,该根据该配置信息从该软件部署***中的多个资源设备中确定至少一个目标部署设备,包括:
根据该初始编排文件中的配置信息分别确定各运行模块的匹配条件;
确定各资源设备的环境信息和实时资源信息,并根据该环境信息和该实时资源信息从各资源设备中确定满足该运行模块的匹配条件的至少一个待部署设备;
从各待部署设备中确定出与该运行模块对应的目标部署设备;
其中,该实时资源信息包括如下至少一项:该资源设备的处理器资源、内存资源、网络资源、存储资源、进程资源,该环境信息包括如下至少一项:该资源设备对应的硬件架构、操作***、部署引擎。
可选地,该从各待部署设备中确定出与该运行模块对应的目标部署设备,包括:
通过对各待部署设备的实时资源信息进行加权计算,确定各待部署设备的优先级;
将各待部署设备中优先级最高的待部署设备作为与各运行模块对应的目标部署设备。
可选地,该根据该初始编排文件和该目标部署设备生成中间编排文件,包括:
将各目标部署设备的实时资源信息写入该初始编排文件;
将各目标部署设备的实时资源信息与该初始编排文件中的各运行模块绑定,得到该中间编排文件。
可选地,该根据待部署软件对应的配置信息生成初始编排文件,包括:
接收该软件部署***中的前端设备发送的该配置信息,该配置信息包括如下至少一项:该待部署软件的运行环境信息、该待部署软件的参数信息、该运行模块、该运行模块对应的部署引擎的标识;
获取预设编排模板,并将各配置信息写入该预设编排模板,得到该初始编排文件。
本申请实施例的第二方面,提供了一种软件部署装置,该装置包括:
生成模块,用于根据待部署软件对应的配置信息生成初始编排文件,该初始编排文件包括至少一个运行模块,各运行模块分别对应一个部署引擎;
确定生成模块,用于根据该配置信息从软件部署***中的多个资源设备中确定至少一个目标部署设备,并根据该初始编排文件和各目标部署设备生成中间编排文件;
拆分转换模块,用于基于各运行模块对该中间编排文件进行拆分转换处理,得到至少一个目标编排文件,各目标编排文件的格式分别与各运行模块对应的部署引擎匹配;
执行模块,用于根据各目标编排文件生成部署任务,并由对应的部署引擎分别执行各部署任务,以将该待部署软件部署到该部署设备。
本申请实施例的第三方面,提供了一种计算机设备,该计算机设备包括存储器、处理器以及存储在该存储器中并可在该处理器上运行的计算机程序,该计算机程序被该处理器执行时实现上述第一方面该的软件部署方法。
本申请实施例的第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面该的软件部署方法。
本申请实施例的有益效果包括:
本申请实施例提供的一种软件部署方法,根据待部署软件对应的配置信息生成初始编排文件。由于该初始编排文件是根据该配置信息生成的可以适用于不同类型的部署引擎的、通用的编排文件,这样,只需相关技术人员开发出一个格式的初始编排文件就可以将该待部署文件通过不同的部署引擎部署到各资源设备中。
根据该配置信息从该软件部署***中的多个资源设备中确定至少一个目标部署设备,并根据该初始编排文件和各目标部署设备生成中间编排文件。由于各目标部署设备是基于该配置信息从各资源设备中确定出的,这样,就可以确保在将该待部署软件部署到各目标部署设备之后,该待部署软件可以正确、稳定地运行。另外,由于该中间编排文件包括各目标部署设备的资源信息和该初始编排文件,这样,就可以确保在后续基于该中间编排文件部署该待部署软件时,可以将该待部署软件按照该配置信息准确地部署到各目标部署设备。
基于各运行模块对该中间编排文件进行拆分转换处理,得到至少一个目标编排文件。可以确保各目标编排文件的格式可以被相应的部署引擎识别、解析、处理,进而可以确保可以通过相应的部署引擎对各目标编排文件进行处理以基于各目标编排文件对应的运行模块将该待部署软件的各功能模块部署到对应的目标部署设备上。
根据各目标编排文件生成部署任务,并由对应的部署引擎分别执行各部署任务,以将该待部署软件部署到该目标部署设备。在执行各部署任务的情况下,就可以基于各目标编排文件对应的运行模块将该待部署软件中与各运行模块对应的功能模块部署到目标部署设备,这样,可以实现对该待部署软件进行部署的目的。
可以理解的是,只需要开发出一个初始编排文件即可实现融合多种部署引擎对该待部署软件进行部署的功能,就无需多个技术栈分别开发出多个内容重复的不同格式的编排文件。
如此,可以达到提高软件部署效率的效果。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种软件部署***的结构示意图;
图2为本申请实施例提供的第一种软件部署方法的流程图;
图3为本申请实施例提供的第二种软件部署方法的流程图;
图4为本申请实施例提供的第三种软件部署方法的流程图;
图5为本申请实施例提供的第四种软件部署方法的流程图;
图6为本申请实施例提供的第五种软件部署方法的流程图;
图7为本申请实施例提供的一种软件部署装置的结构示意图;
图8为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请的描述中,需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
在相关技术中,相关技术人员开始采用自动化部署的方式来部署各种软件产品,比如可以通过Ansible工具来进行二进制部署,这样可以实现基于主机的软件自动化部署。另外,还可以通过Kubernetes(简称K8S)工具来进行云原生部署,这样可以实现基于云原生环境的软件自动化部署和资源编排优化。然而,相关技术中Ansible工具或K8S工具都只能采用不同的编排文件将软件部署在特定环境下,若软件产品需要融合多种部署方式才能部署成功,那么就需要多个技术栈分别开发出多个内容重复的不同格式的编排文件。因此,相关技术的方案存在软件部署的效率较低的问题。
为此,本申请实施例提供了软件部署方法,通过根据待部署软件对应的配置信息生成初始编排文件,根据该配置信息从该软件部署***中的多个资源设备中确定至少一个目标部署设备,并根据该初始编排文件和各目标部署设备生成中间编排文件,基于各运行模块对该中间编排文件进行拆分转换处理,得到至少一个目标编排文件,根据各目标编排文件生成部署任务,并由对应的部署引擎分别执行各部署任务,以将该待部署软件部署到该部署设备,可以达到提高软件部署效率的效果。
本申请实施例以应用在软件部署***中的软件部署方法为例进行说明。但不表明本申请实施例仅能应用于软件部署***中进行软件部署。
图1是本申请实施例提供的一种软件部署***的结构示意图,参见图1,该软件部署***可以包括部署服务器A、至少一个前端设备B以及多个资源设备C。
其中,各前端设备B可以分别与部署服务器A连接,各资源设备C也可以分别与部署服务器A连接。
可选地,前端设备B可以是由相关技术人员操作、控制的终端设备。
一般地,前端设备B可以提供一个可视化界面,该可视化界面上可以显示有多个供技术人员选择或填入的配置信息单元格,这样,就可以使得技术人员可以通过在前端设备B的可视化界面上进行操作,以将软件部署过程中需要的配置信息输入前段设备B。
另外,在技术人员输入完所有的配置信息之后,还可以通过触发该可视化界面上提供的确认控件,以使得前端设备B将该配置信息发送给部署服务器A。
可选地,部署服务器A在接收到该配置信息的情况下,可以根据该配置信息确定出与该配置信息对应的待部署软件,并确定出该待部署软件的存储位置,进而便于在后续按照该配置信息进行软件部署时可以准确地找到该待部署软件的文件。
可选地,各资源设备C可以是任一能够运行该待部署软件的终端设备或服务器。各资源设备C还可以是虚拟设备,也就是说,在这种情况下,各资源设备C可以是设置在部署服务器A上的虚拟机,本申请实施例对此不作限定。
另外,部署服务器A上可以安装或运行多种部署引擎,比如,部署服务器A上可以安装或运行Ansible、Kubernetes以及其他任意可以执行软件部署的部署引擎,本申请实施例对此不作限定。
下面对本申请实施例提供的软件部署方法进行详细地解释说明。
图2为本申请提供的一种软件部署方法的流程图,该方法可以应用于上述部署服务器A。参见图2,本申请实施例提供一种软件部署方法,包括:
步骤1001:根据待部署软件对应的配置信息生成初始编排文件。
可选地,该待部署软件可以是任意软件,该待部署软件的开发语言可以是java、C语言、C++等任意编程语言,本申请实施例对此不作限定。
可选地,该配置信息可以是在部署该待部署软件时需要的一些环境信息、资源信息。
比如,该配置信息可以包括该待部署软件的运行模块、该待部署软件需要的运行环境、运行时的具体参数、资源分配需求、以及该待部署软件中各运行模块对应的部署引擎的类别。
具体地,该待部署软件需要的运行环境可以是指该待部署软件在相应的资源设备上运行时需要的硬件架构,比如X86架构、X64架构、ARM架构等。也可以是指该待部署软件在相应的设备上运行时需要的操作***,比如Windows***、MacOS***、Linux***等。本申请实施例对此不作限定。
该资源分配需求可以是指该待部署软件运行时,需要分配的CPU资源、内存资源、网络资源、硬盘资源、进程数等。
各运行模块对应的部署引擎的类别可以包括二进制部署引擎、云原生部署引擎等。一般地,二进制部署引擎可以包括Ansible工具或者其他任意可能的部署工具,云原生部署引擎可以包括Kubernetes(简称K8s)或者其他任意可能的部署工具,本申请实施例对此不作限定。
该待部署软件运行时的具体参数可以是指确保该待部署软件能正确运行的一些参数信息,比如,该待部署软件需要调用的端口号等。
另外,该待部署软件的各运行模块可以是用于部署该待部署软件中的一个功能模块的代码或程序,本申请实施例对此不作限定。
可选地,该初始编排文件可以是特定格式的编排文件或基于特定模板生成的编排文件,该初始编排文件可以是适用于各种不同类型的部署引擎的、通用的编排文件。
该初始编排文件包括至少一个运行模块,各运行模块分别对应一个部署引擎。也就是说,各运行模块可以对应相同类型的部署引擎,也可以对应不同类型的部署引擎,本申请实施例对此不作限定。
值得注意的是,该初始编排文件是根据该配置信息生成的可以适用于不同类型的部署引擎的编排文件,那么在后续基于该初始编排文件部署该待部署软件时,这样,无需开发出多个内容重复的编排文件,就可以将该待部署文件通过不同的部署引擎部署到各资源设备中。
步骤1002:根据该配置信息从该软件部署***中的多个资源设备中确定至少一个目标部署设备,并根据该初始编排文件和各目标部署设备生成中间编排文件。
其中,各资源设备可以是上述的各资源设备C。
可选地,该目标部署设备可以是指各资源设备中可以运行该待部署软件的一个资源设备,具体可以是指各资源设备中硬件架构、操作***、CPU资源、内存资源、网络资源、硬盘资源、进程数均符合该配置信息的一个资源设备。本申请实施例对此不作限定。
可选地,该中间编排文件可以是指将各目标部署设备的实时资源信息写入该初始编排文件之后得到的编排文件。
值得说明的是,由于各目标部署设备是基于该配置信息从各资源设备中确定出的,这样,就可以确保在将该待部署软件部署到各目标部署设备之后,该待部署软件可以正确、稳定地运行。另外,由于该中间编排文件包括各目标部署设备的资源信息和该初始编排文件,这样,就可以确保在后续基于该中间编排文件部署该待部署软件时,可以将该待部署软件按照该配置信息准确地部署到各目标部署设备。
步骤1003:基于各运行模块对该中间编排文件进行拆分转换处理,得到至少一个目标编排文件。
可选地,各目标编排文件可以分别对应一个运行模块,也分别对应多个运行模块,本申请实施例对此不作限定。
可选地,各目标编排文件的格式分别与各运行模块对应的部署引擎匹配。
也就是说,各目标编排文件可以分别用于将该待部署软件的一个或多个运行模块部署到对应的目标部署设备。
值得注意的是,拆分转换处理可以是包括拆分处理和转换处理。其中,拆分处理可以是指从该中间编排文件中将各运行模块对应的数据或信息拆分出来的操作,转换处理可以是指将拆分出来的各运行模块对应的数据或信息转换为与各运行模块对应的部署引擎对应的格式的操作。
通过对该中间编排文件进行拆分转换处理之后得到各目标编排文件,这样,可以确保各目标编排文件的格式可以被相应的部署引擎识别、解析、处理,进而可以确保可以通过相应的部署引擎对各目标编排文件进行处理以基于各目标编排文件对应的运行模块将该待部署软件的各功能模块部署到对应的目标部署设备上。
步骤1004:根据各目标编排文件生成部署任务,并由对应的部署引擎分别执行各部署任务,以将该待部署软件部署到该目标部署设备。
可选地,各部署任务可以是用于基于各目标编排文件对各运行模块进行部署的任务。每个部署任务可以分别对应一个目标编排文件。
各部署任务可以用于指示各目标编排文件中运行模块与该待部署软件的功能模块的映射关系、与各目标编排文件对应的功能模块的存储位置、部署各目标编排文件时调用数据和/或信息的顺序等,本申请实施例对此不作限定。
与各部署任务对应的部署引擎可以是指,与各部署任务对应的目标编排文件所指示的部署引擎的类型相同的部署引擎。
值得说明的是,由于各部署任务是基于各目标编排文件得到的,那么在执行各部署任务的情况下,就可以基于各目标编排文件对应的运行模块将该待部署软件中与各运行模块对应的功能模块部署到目标部署设备。在执行完所有部署任务时,也就将该待部署软件中所有的功能模块都通过相应的部署引擎部署到了各目标部署设备中,如此,可以实现对该待部署软件进行部署的目的。
在本申请实施例中,根据待部署软件对应的配置信息生成初始编排文件。由于该初始编排文件是根据该配置信息生成的可以适用于不同类型的部署引擎的、通用的编排文件,这样,只需相关技术人员开发出一个格式的初始编排文件就可以将该待部署文件通过不同的部署引擎部署到各资源设备中。
根据该配置信息从该软件部署***中的多个资源设备中确定至少一个目标部署设备,并根据该初始编排文件和各目标部署设备生成中间编排文件。由于各目标部署设备是基于该配置信息从各资源设备中确定出的,这样,就可以确保在将该待部署软件部署到各目标部署设备之后,该待部署软件可以正确、稳定地运行。另外,由于该中间编排文件包括各目标部署设备的资源信息和该初始编排文件,这样,就可以确保在后续基于该中间编排文件部署该待部署软件时,可以将该待部署软件按照该配置信息准确地部署到各目标部署设备。
基于各运行模块对该中间编排文件进行拆分转换处理,得到至少一个目标编排文件。可以确保各目标编排文件的格式可以被相应的部署引擎识别、解析、处理,进而可以确保可以通过相应的部署引擎对各目标编排文件进行处理以基于各目标编排文件对应的运行模块将该待部署软件的各功能模块部署到对应的目标部署设备上。
根据各目标编排文件生成部署任务,并由对应的部署引擎分别执行各部署任务,以将该待部署软件部署到该目标部署设备。在执行各部署任务的情况下,就可以基于各目标编排文件对应的运行模块将该待部署软件中与各运行模块对应的功能模块部署到目标部署设备,这样,可以实现对该待部署软件进行部署的目的。
可以理解的是,只需要开发出一个初始编排文件即可实现融合多种部署引擎对该待部署软件进行部署的功能,就无需多个技术栈分别开发出多个内容重复的不同格式的编排文件。
如此,可以达到提高软件部署效率的效果。
一种可能的实现方式中,参见图3,基于各运行模块对该中间编排文件进行拆分转换处理,得到至少一个目标编排文件,包括:
步骤1005:根据各运行模块从该中间编排文件拆分出至少一个子编排文件。
可选地,各子编排文件分别包括一个该运行模块、该运行模块对应的配置信息和实时资源信息。
也就是说,各子编排文件可以分别对应一个运行模块。
该实时资源信息可以是指与该运行模块对应的目标部署设备的实时资源信息,该实时资源信息可以包括当前时刻下与该运行模块对应的目标部署设备的CPU资源、内存资源、网络资源、硬盘资源、进程数等。
另外,该子编排文件还可以包括与该运行模块对应的目标部署设备的硬件架构、操作***等信息,本申请实施例对此不作限定。
步骤1006:分别按照各运行模块对应的部署引擎对各子编排文件进行格式转换,得到各转换后的子编排文件。
可选地,各转换后的子编排文件的格式分别与各运行模块对应的部署引擎匹配。
值得注意的是,对各子编排文件进行格式转换的操作具体可以参见上述步骤1003中的转换处理的操作,本申请实施例对此不作赘述。
值得说明的是,按照各运行模块对应的部署引擎对各子编排文件进行格式转换,就可以确保能够将各子编排文件的格式转换为各运行模块对应的部署引擎可以识别、解析、处理的格式。
这样,也就可以确保在相关技术人员开发用于部署该待部署软件的编排文件时,只需要开发出一个适用于各种不同类型的部署引擎的、通用的初始编排文件即可,不需要针对不同类型的部署引擎分别开发出一个编排文件,进而可以实现提高软件部署效率的目的。
步骤1007:将各转换后的子编排文件分别作为各目标编排文件。
这样,可以确保各目标编排文件的格式可以被相应的部署引擎识别、解析、处理,进而可以确保可以通过相应的部署引擎对各目标编排文件进行处理以将各目标编排文件对应的运行模块部署到对应的目标部署设备上。
一种可能的实现方式中,参见图4,根据各目标编排文件生成部署任务,并由对应的部署引擎分别执行各部署任务,包括:
步骤1008:将各目标编排文件、各目标编排文件对应的该待部署软件的功能模块以及该功能模块的执行顺序进行封装,得到各部署任务。
可选地,各部署任务的执行顺序与该待部署软件的各功能模块的执行顺序对应。
各功能模块可以是该待部署软件的具体代码中用于实现一个或多个功能的代码或代码段。
该功能模块的执行顺序可以是指在该待部署软件正常运行的情况下执行该功能模块的顺序。
另外,还可以将该待部署软件的软件参数和封装时间等信息也进行封装以得到各部署任务。该待部署软件的软件参数可以包括该待部署软件的名称、版本号等。
值得注意的是,在封装时,可以根据各目标编排文件中运行模块与该待部署软件的功能模块的映射关系来从相应的存储模块或存储设备中读取各功能模块,以将各目标编排文件、各功能模块、各功能模块的执顺序封装得到各部署任务。
步骤1009:确定该部署任务中目标编排文件对应的部署引擎,并将各部署任务分配到各部署引擎。
示例性地,若该部署任务中目标编排文件的配置信息所指示的各运行模块对应的部署引擎的类别为二进制部署引擎,那么该部署任务中目标编排文件对应的部署引擎就为Ansible工具。若该部署任务中目标编排文件的配置信息所指示的各运行模块对应的部署引擎的类别为云原生部署引擎,那么该部署任务中目标编排文件对应的部署引擎就为K8s。
值得说明的是,将各部署任务分配到各部署引擎之后,由于各部署任务包括各目标编排文件、各目标编排文件对应的该待部署软件的功能模块以及该功能模块的执行顺序,那么各部署引擎就可以对各目标编排文件进行识别、解析和处理。这样,可以确保在将各部署任务分配到各部署引擎之后,各目标编排文件都能准确地被对应的部署引擎处理。
步骤1010:由各部署引擎按照各部署任务的执行顺序执行各部署任务。
这样,在按照各部署任务的执行顺序执行各部署任务的情况下,就可以按照该待部署软件执行各功能模块的顺序、基于各目标编排文件对应的运行模块将该待部署软件中与各功能模块部署到目标部署设备。进而可以确保在完成对该待部署软件的部署之后,该待部署软件可以正确、稳定地运行。
一种可能的方式,可以通过如下方式将各部署任务分配到各部署引擎:
将各部署任务推送到任务队列。
具体可以按照各部署任务的执行顺序进行推送,也可以按照任意可能的顺序进行推送,本申请实施例对此不作限定。
调用各部署引擎监听该任务队列,并通过各部署引擎实时获取与各部署引擎对应的部署任务。
示例性地,通过各部署引擎实时获取与各部署引擎对应的部署任务可以是指通过任一部署引擎确定各部署任务中的目标编排文件对应的部署引擎是否与这任一部署引擎相同,若相同,则通过这任一部署引擎从该任务队列中拉取目标编排文件对应的部署引擎是否与这任一部署引擎相同的部署任务。
这样,就可以将各部署任务分配到各部署引擎。
一种可能的实现方式中,参见图5,根据该配置信息从该软件部署***中的多个资源设备中确定至少一个目标部署设备,包括:
步骤1011:根据该初始编排文件中的配置信息分别确定各运行模块的匹配条件。
可选地,该匹配条件可以是指在运行该运行模块或运行与该运行模块对应的功能模块时需要的运行环境和/或资源分配需求。
示例性地,若该配置信息包括运行模块N和运行模块M,且该配置信息指示运行模块N需要的运行环境为X86的硬件架构和Windows***的操作***、运行模块M需要的运行环境为X64的硬件架构和Windows***的操作***。
另外,假设该配置信息指示运行模块N的资源分配需求为:1GB的内存资源、24GB的硬盘资源、10Kb/s的网络资源,该配置信息指示运行模块M的资源分配需求为:10兆赫的CPU资源、0.5GB的内存资源、10GB的硬盘资源。
那么,运行模块N的匹配条件就可以是“可分配内存资源大于1GB、可分配硬盘资源大于24GB、可分配网速大于10Kb/s、硬件架构为X86架构且操作***为Windows***”。
运行模块M的匹配条件就可以是“可分配内存资源大于0.5GB、可分配硬盘资源大于10GB、可分配CPU资源大于10兆赫、硬件架构为X64架构且操作***为Windows***”。
可以理解的是,以上描述仅仅是一种举例说明,并不代表本申请实施例中的匹配条件仅仅只能是本申请实施例列出的这几种匹配条件,本申请实施例对此不作限定。
步骤1012:确定各资源设备的环境信息和实时资源信息,并根据该环境信息和该实时资源信息从各资源设备中确定满足该运行模块的匹配条件的至少一个待部署设备。
可选地,各资源设备的实时资源信息包括如下至少一项:该资源设备的处理器资源、内存资源、网络资源、存储资源、进程资源,该环境信息包括如下至少一项:该资源设备对应的硬件架构、操作***、部署引擎。
各资源设备的环境信息包括如下至少一项:该资源设备的硬件架构、操作***等。
各待部署设备可以是满足匹配条件的任一资源设备,本申请实施例对此不作限定。
这样,就可以准确、可靠地从各资源设备中确定出可以运行与各运行模块对应的功能模块的至少一个待部署设备。
步骤1013:从各待部署设备中确定出与该运行模块对应的目标部署设备。
可选地,该目标部署设备可以是指各待部署设备中最优的一个待部署设备。
这样,可以确保在将该待部署软件部署到各目标部署设备之后,该待部署软件可以正确、稳定地运行。
一种可能的实现方式中,从各待部署设备中确定出与该运行模块对应的目标部署设备,包括:
通过对各待部署设备的实时资源信息进行加权计算,确定各待部署设备的优先级。
可选地,各待部署设备的优先级可以用于指示各待部署设备运行与该运行模块对应的功能模块的性能。一般地,各待部署设备的优先级越高,则表明各待部署设备运行与该运行模块对应的功能模块的性能越高。
将各待部署设备中优先级最高的待部署设备作为与各运行模块对应的目标部署设备。
具体可以通过如下方式来确定各待部署设备的优先级:首先,对各待部署设备按照该实时资源信息中的每一类信息分别进行评分操作。
比如,可以对各待部署设备的处理器资源、内存资源、网络资源、存储资源、进程资源进行评分操作,另外,还可以对各待部署设备的硬件架构、操作***进行打分。
又比如,假设针对运行模块M的匹配条件确定出了两个待部署设备,分别为待部署设备P和待部署设备Q。待部署设备P的可分配内存资源为1GB、可分配硬盘资源为100GB、可分配CPU资源为10兆赫。待部署设备Q的可分配内存资源为2GB、可分配硬盘资源为50GB、可分配CPU资源为20兆赫。那么待部署设备P的可分配内存资源的评分可以是2、可分配硬盘资源的评分可以是10、可分配CPU资源的评分可以是1,待部署设备Q的可分配内存资源的评分可以是4、可分配硬盘资源的评分可以是5、可分配CPU资源的评分可以是2。
然后将各待部署设备的所有类的信息的评分进行加权计算,得到各待部署设备的最终评分值。
比如,假设可分配内存资源的权重为0.4、可分配硬盘资源为的权重为0.1、可分配CPU资源为0.5。那么,上述待部署设备P的最终评分值就是0.4*2+0.1*10+0.5*1=2.3,上述待部署设备Q的最终评分值就是0.4*4+0.1*5+0.5*2=3.1。
根据各待部署设备的最终评分值确定各待部署设备的优先级。
具体可以将最终评分值最大的一个待部署设备的优先级设置的最高,将最终评分值最小的一个待部署设备的优先级设置的最低。
若存在多个待部署设备的最终评分值相同的情况,还可以根据预设条件确定出各待部署设备的优先级。比如,可以按照IP地址的大小来调整多个最终评分值相同的待部署设备的优先级。本申请实施例对此不作限定。
这样,可以提高确定该目标部署设备的灵活性和可靠性。
一种可能的实现方式中,根据该初始编排文件和该目标部署设备生成中间编排文件,包括:
将各目标部署设备的实时资源信息写入该初始编排文件。
可选地,可以通过对各目标部署设备的实时资源信息和该初始编排文件进行渲染的方式将各目标部署设备的实时资源信息写入该初始编排文件中对应的位置。
将各目标部署设备的实时资源信息与该初始编排文件中的各运行模块绑定,得到该中间编排文件。
值得注意的是,通过将各目标部署设备的实时资源信息与该初始编排文件中的各运行模块绑定,这样就可以使得该中间编排文件可以指示出各运行模块对应的目标部署设备,以确保可以将各运行模块对应的功能模块部署到各目标部署设备。
一种可能的实现方式中,参见图6,根据待部署软件对应的配置信息生成初始编排文件,包括:
步骤1014:接收该软件部署***中的前端设备发送的该配置信息。
可选地,该配置信息还包括如下至少一项:该待部署软件的运行环境信息、该待部署软件的参数信息、该运行模块、该运行模块对应的部署引擎的标识。
可选地,该运行模块对应的部署引擎的标识可以是用于指示该待部署软件中各运行模块对应的部署引擎的类别的标记。
比如,若一个运行模块对应的部署引擎的类别为二进制部署引擎,则可以将该运行模块对应的部署引擎的标识设为0。若一个运行模块对应的部署引擎的类别为云原生部署引擎,则可以将该运行模块对应的部署引擎的标识设为1。若一个运行模块对应的部署引擎的类别为用户自定义的部署引擎,则可以将该运行模块对应的部署引擎的标识设为2。本申请实施例对此不作限定。
另外,该待部署软件的参数信息可以是上述的该待部署软件运行时的具体参数。该待部署软件的运行环境信息可以是上述的该待部署软件需要的运行环境和/或资源分配需求。
并且,该前端设备可以是上述的任一前端设备B。
这样,就便于根据用户通过该前端设备输入的配置信息准确地生成上述初始编排文件。
步骤1015:获取预设编排模板,并将各配置信息写入该预设编排模板,得到该初始编排文件。
可选地,该预设编排模板可以是由用户根据实际需要设计的一个用于写入该配置信息和/或各目标部署设备的实时资源信息的一个文件模板。
该预设编排模板可以是一个空白模板,也可以是一个预先写入各配置信息的类别和/或各实时资源信息的类别的模板。
另外,该预设编排模板的格式可以是上述的任一种可供该部署服务器处理的特定格式。该预设编排模板也可以是任一可以转换为二进制部署引擎或云原生部署引擎能够识别的格式的模板,本申请实施例对此不作限定。
由于该预设编排模板是能够转换格式的模板,那么基于该预设编排模板和该配置信息生成的该初始编排文件就可以适用于不同类型的部署引擎的、通用的编排文件,这样,只需相关技术人员开发出一个格式的初始编排文件,然后通过在后续部署过程中将该初始编排文件转换为不同的部署引擎可以处理的格式,就可以将该待部署文件通过不同的部署引擎部署到各资源设备中,进而可以达到提高软件部署效率的效果。
下述对用以执行的本申请所提供软件部署方法的装置、设备及计算机可读存储介质等进行说明,其具体的实现过程以及技术效果参见上述,下述不再赘述。
图7是本申请实施例提供的一种软件部署装置的结构示意图,参见图7,该装置包括:
生成模块201,用于根据待部署软件对应的配置信息生成初始编排文件。
该初始编排文件包括至少一个运行模块,各运行模块分别对应一个部署引擎。
确定生成模块202,用于根据该配置信息从该软件部署***中的多个资源设备中确定至少一个目标部署设备,并根据该初始编排文件和各目标部署设备生成中间编排文件。
拆分转换模块203,用于基于各运行模块对该中间编排文件进行拆分转换处理,得到至少一个目标编排文件。
各目标编排文件的格式分别与各运行模块对应的部署引擎匹配。
执行模块204,用于根据各目标编排文件生成部署任务,并由对应的部署引擎分别执行各部署任务,以将该待部署软件部署到该部署设备。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器,或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上***(system-on-a-chip,简称SOC)的形式实现。
图8是本申请实施例提供的一种计算机设备的结构示意图。参见图8,计算机设备包括:存储器301、处理器302,存储器301中存储有可在处理器302上运行的计算机程序,处理器302执行计算机程序时,实现上述任意各个方法实施例中的步骤。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
可选地,本申请还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述任一软件部署方法实施例。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种软件部署方法,其特征在于,应用于软件部署***中的部署服务器,所述方法包括:
根据待部署软件对应的配置信息生成初始编排文件,所述初始编排文件包括至少一个运行模块,各所述运行模块分别对应一个部署引擎;
根据所述配置信息从所述软件部署***中的多个资源设备中确定至少一个目标部署设备,并根据所述初始编排文件和各所述目标部署设备生成中间编排文件;
基于各所述运行模块对所述中间编排文件进行拆分转换处理,得到至少一个目标编排文件,各所述目标编排文件的格式分别与各所述运行模块对应的部署引擎匹配;
根据各所述目标编排文件生成部署任务,并由对应的部署引擎分别执行各所述部署任务,以将所述待部署软件部署到所述目标部署设备。
2.如权利要求1所述的软件部署方法,其特征在于,所述基于各所述运行模块对所述中间编排文件进行拆分转换处理,得到至少一个目标编排文件,包括:
根据各所述运行模块从所述中间编排文件拆分出至少一个子编排文件,各所述子编排文件分别包括一个所述运行模块、所述运行模块对应的配置信息和实时资源信息;
分别按照各所述运行模块对应的部署引擎对各所述子编排文件进行格式转换,得到各转换后的子编排文件,各所述转换后的子编排文件的格式分别与各所述运行模块对应的部署引擎匹配;
将各所述转换后的子编排文件分别作为各所述目标编排文件。
3.如权利要求1所述的软件部署方法,其特征在于,所述根据各所述目标编排文件生成部署任务,并由对应的部署引擎分别执行各所述部署任务,包括:
将各所述目标编排文件、各所述目标编排文件对应的所述待部署软件的功能模块以及所述功能模块的执行顺序进行封装,得到各所述部署任务,各所述部署任务的执行顺序与所述待部署软件的各功能模块的执行顺序对应;
确定所述部署任务中目标编排文件对应的部署引擎,并将各所述部署任务分配到各部署引擎;
由各所述部署引擎按照各所述部署任务的执行顺序执行各所述部署任务。
4.如权利要求1所述的软件部署方法,其特征在于,所述根据所述配置信息从所述软件部署***中的多个资源设备中确定至少一个目标部署设备,包括:
根据所述初始编排文件中的配置信息分别确定各所述运行模块的匹配条件;
确定各所述资源设备的环境信息和实时资源信息,并根据所述环境信息和所述实时资源信息从各所述资源设备中确定满足所述运行模块的匹配条件的至少一个待部署设备;
从各所述待部署设备中确定出与所述运行模块对应的目标部署设备;
其中,所述实时资源信息包括如下至少一项:所述资源设备的处理器资源、内存资源、网络资源、存储资源、进程资源,所述环境信息包括如下至少一项:所述资源设备对应的硬件架构、操作***、部署引擎。
5.如权利要求4所述的软件部署方法,其特征在于,所述从各所述待部署设备中确定出与所述运行模块对应的目标部署设备,包括:
通过对各所述待部署设备的实时资源信息进行加权计算,确定各所述待部署设备的优先级;
将各所述待部署设备中优先级最高的待部署设备作为与各所述运行模块对应的目标部署设备。
6.如权利要求4所述的软件部署方法,其特征在于,所述根据所述初始编排文件和所述目标部署设备生成中间编排文件,包括:
将各所述目标部署设备的实时资源信息写入所述初始编排文件;
将各所述目标部署设备的实时资源信息与所述初始编排文件中的各所述运行模块绑定,得到所述中间编排文件。
7.如权利要求1-6任一项所述的软件部署方法,其特征在于,所述根据待部署软件对应的配置信息生成初始编排文件,包括:
接收所述软件部署***中的前端设备发送的所述配置信息,所述配置信息包括如下至少一项:所述待部署软件的运行环境信息、所述待部署软件的参数信息、所述运行模块、所述运行模块对应的部署引擎的标识;
获取预设编排模板,并将各所述配置信息写入所述预设编排模板,得到所述初始编排文件。
8.一种软件部署装置,其特征在于,所述装置包括:
生成模块,用于根据待部署软件对应的配置信息生成初始编排文件,所述初始编排文件包括至少一个运行模块,各所述运行模块分别对应一个部署引擎;
确定生成模块,用于根据所述配置信息从软件部署***中的多个资源设备中确定至少一个目标部署设备,并根据所述初始编排文件和各所述目标部署设备生成中间编排文件;
拆分转换模块,用于基于各所述运行模块对所述中间编排文件进行拆分转换处理,得到至少一个目标编排文件,各所述目标编排文件的格式分别与各所述运行模块对应的部署引擎匹配;
执行模块,用于根据各所述目标编排文件生成部署任务,并由对应的部署引擎分别执行各所述部署任务,以将所述待部署软件部署到所述部署设备。
9.一种计算机设备,其特征在于,包括:存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述权利要求1至7任一项所述的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时,实现权利要求1至7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211534115.XA CN115794128A (zh) | 2022-12-01 | 2022-12-01 | 软件部署方法、装置、计算机设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211534115.XA CN115794128A (zh) | 2022-12-01 | 2022-12-01 | 软件部署方法、装置、计算机设备和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115794128A true CN115794128A (zh) | 2023-03-14 |
Family
ID=85444704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211534115.XA Pending CN115794128A (zh) | 2022-12-01 | 2022-12-01 | 软件部署方法、装置、计算机设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115794128A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116126365A (zh) * | 2023-04-18 | 2023-05-16 | 之江实验室 | 一种模型部署的方法、***、存储介质及电子设备 |
CN116909582A (zh) * | 2023-09-13 | 2023-10-20 | 云账户技术(天津)有限公司 | 一种可视化大屏业务部署方法、装置及电子设备 |
-
2022
- 2022-12-01 CN CN202211534115.XA patent/CN115794128A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116126365A (zh) * | 2023-04-18 | 2023-05-16 | 之江实验室 | 一种模型部署的方法、***、存储介质及电子设备 |
CN116909582A (zh) * | 2023-09-13 | 2023-10-20 | 云账户技术(天津)有限公司 | 一种可视化大屏业务部署方法、装置及电子设备 |
CN116909582B (zh) * | 2023-09-13 | 2024-01-30 | 云账户技术(天津)有限公司 | 一种可视化大屏业务部署方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115794128A (zh) | 软件部署方法、装置、计算机设备和计算机可读存储介质 | |
CN107493310B (zh) | 一种云资源处理方法及云管理平台 | |
US11327749B2 (en) | System and method for generating documentation for microservice based applications | |
US20180288143A1 (en) | Managing idle and active servers in cloud data centers | |
CN112882817B (zh) | 一种基于超级计算机的工作流处理方法 | |
CN113971110A (zh) | 接口测试方法、装置、设备与计算机可读存储介质 | |
CN111679886A (zh) | 异构计算资源调度方法、***、电子设备及存储介质 | |
CN107977260B (zh) | 任务提交方法及装置 | |
CN111651140B (zh) | 基于工作流的服务方法及装置 | |
CN107025146B (zh) | 一种文件生成方法、装置和*** | |
CN112313627A (zh) | 事件到无服务器函数工作流实例的映射机制 | |
CN109327321A (zh) | 网络模型业务执行方法、装置、sdn控制器及可读存储介质 | |
CN117370203B (zh) | 自动化测试方法、***、电子设备及存储介质 | |
CN103309676A (zh) | 用于海洋数值模拟ROMS的Web服务封装方法以及*** | |
CN113268362A (zh) | 基于无服务器平台的运维方法、装置、设备及存储介质 | |
KR20190069637A (ko) | 멀티 클라우드 환경에서 동일 방식의 과금 부과 방법 및 시스템 | |
CN108427599A (zh) | 异步任务统一处理方法、装置及存储介质 | |
CN111680288A (zh) | 容器的命令执行方法、装置、设备及存储介质 | |
CN116755994A (zh) | 云平台性能测试方法和***、电子设备及存储介质 | |
CN103294874B (zh) | 用于电磁仿真计算***FEKO的Web服务封装方法以及*** | |
CN115794386A (zh) | 虚拟机的资源调用方法、设备及存储介质 | |
CN103530091A (zh) | Cpmd的计算任务的实现方法和装置 | |
CN114564156A (zh) | 模型切片的方法和装置、3d打印***、电子设备 | |
CN113485942A (zh) | 一种基于独立模块的自动化测试方法及装置 | |
EP4375897A1 (en) | System for business process automation and method thereof |
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 |