本发明涉及软件,具体涉及一种应用部署方法、装置、设备和存储介质。
背景技术:
1、算力网络中应用从开发到上线可以大体分为开发阶段和部署阶段,在部署阶段采用的运行模式通常分为集中式部署和分布式部署两种模式。在分布式部署模式下,多个模块部署到不同的计算节点运行,模块之间以远程调用方式实现通信和交互。由于在算力网络中,考虑到规模化的基础设施建设以及算力并网等新型资源供给模式的实现,算力资源呈现多级泛在的分布式形态,泛在多样的算力的供给趋于精细化、敏捷化,因此将应用通过弹性解构以实现分布式部署已经成为不可避免地趋势。
2、现有的技术方案虽然可以实现开发阶段和部署阶段解耦,即在开发阶段允许应用以单体模块化方式开发,并且在部署阶段可以根据实际应用场景的需求,弹性配置需要分布式部署的模块。但这类技术方案对应用开发是侵入式的,若在开发阶段引入了新的函数功能,需要应用程序在开发阶段调用新的接口或者进行标记实现,才能在部署阶段实现分布式部署的弹性机制。
技术实现思路
1、为解决现有存在的技术问题,本发明实施例提供一种应用部署方法、方法、装置、设备和存储介质。
2、为达到上述目的,本发明实施例的技术方案是这样实现的:
3、本发明实施例提供了一种应用部署方法,所述方法包括:读取并解析应用部署配置文件,获得分布式部署模式和部署信息,所述分布式部署模式表示应用包括的多个应用组件在一个或多个部署节点上部署,所述部署信息包括待部署的应用组件的第一应用代码文件;
4、结合所述分布式部署模式对所述第一应用代码文件的中间代码进行读取和分析,确定一个或多个第一函数,对所述第一函数进行重写或改写,获得第二应用代码文件;重写或改写后的第一函数表示远程调用第二函数,所述第一函数和所述第二函数分别对应于不同的部署节点;
5、将各应用组件的第二应用代码文件发送给各部署节点,以将应用组件部署在对应的部署节点。
6、上述方案中,所述结合所述分布式部署模式对所述第一应用代码文件的中间代码进行读取和分析,确定一个或多个第一函数,包括:对所述第一应用代码文件的中间代码进行读取和分析,确定应用组件的边界和函数的边界,基于所述应用组件的边界和函数的边界以及所述分布式部署模式确定一个或多个第一函数。
7、上述方案中,所述对所述第一函数进行重写或改写,包括:利用插桩技术,对所述第一函数进行远程调用功能的重写或改写。
8、上述方案中,所述方法还包括:根据所述分布式部署模式生成所述第二应用代码文件的第一索引,存储所述第二应用代码文件和所述第一索引。
9、上述方案中,所述第一索引为带有分隔标识的标识组合,所述标识组合中的每个标识对应一个应用组件,所述带有分隔标识的标识组合对应于所述分布式部署模式。
10、上述方案中,所述结合所述分布式部署模式对所述第一应用代码文件的中间代码进行读取和分析之前,所述方法还包括:判断是否存储有与所述分布式部署模式匹配的第二应用代码文件;
11、相应的,所述结合所述分布式部署模式对所述第一应用代码文件的中间代码进行读取和分析,包括:在未存储有与所述分布式部署模式匹配的第二应用代码文件的情况下,结合所述分布式部署模式对所述第一应用代码文件的中间代码进行读取和分析。
12、上述方案中,所述方法还包括:在存储有与所述分布式部署模式匹配的第二应用代码文件的情况下,将各应用组件的第二应用代码文件发送给各部署节点,以将应用组件部署在对应的部署节点。
13、上述方案中,所述将各应用组件的第二应用代码文件发送给各部署节点,包括:若对应于每个部署节点的应用组件对应一个第二应用代码文件,则对每个第二应用代码文件进行封装后发送给对应的部署节点;
14、若对应于多个部署节点的应用组件对应一个第二应用代码文件,则按照所述分布式部署模式对所述第二应用代码文件进行拆分后封装,将封装后的应用代码文件发送给对应的部署节点。
15、本发明实施例还提供了一种应用部署装置,所述装置包括:第一处理单元、第二处理单元和部署单元;其中,
16、所述第一处理单元,用于读取并解析应用部署配置文件,获得分布式部署模式和部署信息,所述分布式部署模式表示应用包括的多个应用组件在一个或多个部署节点上部署,所述部署信息包括待部署的应用组件的第一应用代码文件;
17、所述第二处理单元,用于结合所述分布式部署模式对所述第一应用代码文件的中间代码进行读取和分析,确定一个或多个第一函数,对所述第一函数进行重写或改写,获得第二应用代码文件;重写或改写后的第一函数表示远程调用第二函数,所述第一函数和所述第二函数分别对应于不同的部署节点;
18、所述部署单元,用于将各应用组件的第二应用代码文件发送给各部署节点,以将应用组件部署在对应的部署节点。
19、本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本发明实施例所述应用部署方法的步骤。
20、本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例所述应用部署方法的步骤。
21、本申请实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序可由计算机设备的处理器执行,以完成本发明实施例所述应用部署方法的步骤。
22、本发明实施例提供的应用部署方法、装置、计算机设备和存储介质,一方面,仅通过配置文件方式对分布式部署模式进行描述和解析,极大的降低了应用部署技术的使用门槛;另一方面,通过对分布式部署模式中部分应用组件的函数进行重写或改写并重新部署,并且不用浪费精力在应用组件的函数的实现、调用和处理上,使得可以在不依赖应用源码以及对源码的标记操作的情况下根据分布式部署模式进行功能实现。
1.一种应用部署方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述结合所述分布式部署模式对所述第一应用代码文件的中间代码进行读取和分析,确定一个或多个第一函数,包括:
3.根据权利要求1所述的方法,其特征在于,所述对所述第一函数进行重写或改写,包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述第一索引为带有分隔标识的标识组合,所述标识组合中的每个标识对应一个应用组件,所述带有分隔标识的标识组合对应于所述分布式部署模式。
6.根据权利要求4或5所述的方法,其特征在于,所述结合所述分布式部署模式对所述第一应用代码文件的中间代码进行读取和分析之前,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
8.根据权利要求1或7所述的方法,其特征在于,所述将各应用组件的第二应用代码文件发送给各部署节点,包括:
9.一种应用部署装置,其特征在于,所述装置包括:
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至8任一项所述方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至8任一项所述方法的步骤。
12.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序在被处理器执行时实现根据权利要求1至8中任一项所述的方法。