应用程序包的离线增量部署方法、装置、设备及存储介质与流程

未命名 10-19 阅读:75 评论:0


1.本发明涉及数据处理领域,尤其涉及一种应用程序包的离线增量部署方法、装置、设备及存储介质。


背景技术:

2.目前大多数项目采用docker进行构建java代码,因为docker更高效的利用系统资源,更快速的启动时间,一致的运行环境,持续支付和部署,更轻松的迁移,更轻松的维护和拓展。然而在保密严格的情况下,就需要离线进行打包部署服务。打包多个服务后,docker镜像加在一起会很大,每次部署可能要2g的压缩包。文件体量大,部署效率低。


技术实现要素:

3.本发明的主要目的在于解决应用程序包的离线增量部署成本高的技术问题。
4.本发明第一方面提供了一种应用程序包的离线增量部署方法,所述应用程序包的离线增量部署方法包括:
5.检测到应用程序的应用程序包时,将所述应用程序包中的依赖包以及业务包分层,得到多层子应用程序包;
6.根据所述子应用程序包在docker容器生成镜像文件;
7.检测到更新操作时,根据预设脚本将所述镜像文件与所述子应用程序包进行比对,得到差分包;
8.根据所述差分包更新所述镜像文件,以完成离线增量部署。
9.可选的,在本发明第一方面的第一种实现方式中,所述检测到更新操作时,根据预设脚本将所述镜像文件与所述子应用程序包进行比对,得到差分包的步骤包括:
10.检测到更新操作时,获取所述镜像文件中各个第一文件的第一层级关系以及获取所述子应用程序包中各个第二文件的第二层级关系;
11.基于所述第一层级关系、所述第二层级关系比对所述第一文件的名称与所述第二文件的名称,得到比对结果;
12.根据所述比对结果将所述子应用程序包中与所述镜像文件相同的文件删除,得到差异文件;
13.将所述差异文件压缩,得到所述差分包。
14.可选的,在本发明第一方面的第二种实现方式中,在所述镜像文件更新完成时,输出请求更新的提示信息的步骤之后,所述方法还包括:
15.检测到目标客户端发送的更新请求时,确定所述目标客户端对应的历史版本号,所述历史版号为上一次发送给所述目标客户端的历史镜像文件的版本号;
16.根据所述镜像文件的当前版本号以及所述历史版本号确定差量镜像文件;
17.将所述差量镜像文件发送至所述目标客户端。
18.可选的,在本发明第一方面的第三种实现方式中,所述将所述差量镜像文件发送
至所述目标客户端的步骤包括:
19.将所述差量镜像文件压缩,得到升级包;
20.将所述升级包发送至所述目标客户端。
21.可选的,在本发明第一方面的第四种实现方式中,所述根据所述镜像文件的当前版本号以及所述历史版本号确定差量镜像文件的步骤包括:
22.获取所述历史版本号对应的历史镜像文件;
23.将所述镜像文件中与所述历史镜像文件相同的文件删除,得到所述差量镜像文件。
24.可选的,在本发明第一方面的第五种实现方式中,所述根据所述镜像文件的当前版本号以及所述历史版本号确定差量镜像文件的步骤包括:
25.将所述镜像文件的当前版本号中的各个子版本号与所述历史版本号中的各个子历史版本号进行逐层比对,得到差异子版本号;
26.根据所述差异子版本号在所述镜像文件中获取所述差量镜像文件。
27.可选的,在本发明第一方面的第六种实现方式中,所述根据所述目标子应用程序包更新所述镜像文件的步骤之后,所述方法还包括:
28.在所述镜像文件更新完成时,输出请求更新的提示信息。
29.本发明第二方面提供了一种应用程序包的离线增量部署装置,包括:
30.第一检测模块,用于检测到应用程序的应用程序包时,将所述应用程序包中的依赖包以及业务包分层,得到多层子应用程序包;
31.生成模块,用于根据所述子应用程序包在docker容器生成镜像文件;
32.第二检测模块,用于检测到更新操作时,根据预设脚本将所述镜像文件与所述子应用程序包进行比对,得到差分包;
33.部署模块,用于根据所述差分包更新所述镜像文件,以完成离线增量部署。
34.本发明第三方面提供了一种应用程序包的离线增量部署设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述应用程序包的离线增量部署设备执行上述的应用程序包的离线增量部署方法。
35.本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的应用程序包的离线增量部署方法。
36.本发明实施例中,应用程序包的离线增量部署设备检测到应用程序的应用程序包时,将所述应用程序包中的依赖包以及业务包分层,得到多层子应用程序包;根据所述子应用程序包在docker容器生成镜像文件;检测到更新操作时,根据预设脚本将所述镜像文件与所述子应用程序包进行比对,得到差分包;根据所述差分包更新所述镜像文件,以完成离线增量部署。由于应用程序包的离线增量部署设备将经常不改变的依赖包和容易变化的业务包分离开,可以只升级修改过的业务层;基于docker容器的分层存储技术,可将不经常改变的依赖包作为一层,将容易变化的业务包作为一层,增量的时候使用docker镜像分层的缓存技术,打包更新变化的业务层,再使用脚本将本地的应用程序包与上次打包的镜像文件进行比对,可提取出变化的差分包,然后基于差分包进行部署,从而实现增量部署,本实
施例减少了应用程序包部署所需的下载拷贝时间,提高了部署效率。
附图说明
37.图1为本发明实施例中应用程序包的离线增量部署方法的一个实施例示意图;
38.图2为本发明实施例中应用程序包的离线增量部署方法的另一个实施例示意图;
39.图3为本发明实施例中应用程序包的离线增量部署装置的一个实施例示意图;
40.图4为本发明实施例中应用程序包的离线增量部署设备的一个实施例示意图。
具体实施方式
41.本发明实施例提供了一种应用程序包的离线增量部署方法、装置、设备及存储介质。
42.本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
43.为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中应用程序包的离线增量部署方法的一个实施例包括:
44.101、检测到应用程序的应用程序包时,将所述应用程序包中的依赖包以及业务包分层,得到多层子应用程序包。
45.可选的,检测到应用程序的应用程序包时,识别所述应用程序包中各个子包的类型,得到依赖包以及业务包。将所述应用程序包中的依赖包以及业务包分层,得到多层子应用程序包。其中,依赖包一般都是一些库文件,有动态库也有静态库,一个程序的依赖包如果没有安装,只安装了这个程序本身是不能使用的,假如要装某个软件,这个软件又依赖于某个开发包,这个开发包包含这个软件所要运行的环境文件,就是依赖包。
46.102、根据所述子应用程序包在docker容器生成镜像文件;
47.具体的,docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的linux或windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
48.可选的,基于应用程序包得到多层子应用程序包时,将其部署至docker容器,得到镜像文件,其中,当用户有下载或者更新请求时,基于镜像文件响应用户的请求。
49.可选的,在所述镜像文件更新完成时,输出请求更新的提示信息。具体的,在镜像文件更新时,基于提示信息的方式提醒客户端更新其本地的应用程序。
50.可选的,检测到目标客户端发送的更新请求时,确定所述目标客户端对应的历史版本号,所述历史版号为上一次发送给所述目标客户端的历史镜像文件的版本号;根据所述镜像文件的当前版本号以及所述历史版本号确定差量镜像文件;将所述差量镜像文件发送至所述目标客户端。其中,目标客户端包括下载并安全了历史镜像文件的客户端,考虑到
某些客户端未进行实时更新,故而可记录每个客户端的下载记录,基于其下载记录确定其上一次下载的镜像文件版本,基于历史镜像文件与最新镜像文件的差异,可为目标客户端实现增量升级,提高了升级效率的同时,改善了用户体验。
51.可选的,将所述差量镜像文件压缩,得到升级包;将所述升级包发送至所述目标客户端。其中,将镜像文科与历史镜像文件解压并比对,得到差量进行文件,将其压缩,得到上述升级包。将差异镜像文件压缩再发送给客户端,可提高传输效率。
52.可选的,获取所述历史版本号对应的历史镜像文件;将所述镜像文件中与所述历史镜像文件相同的文件删除,得到所述差量镜像文件。
53.可选的,将所述镜像文件的当前版本号中的各个子版本号与所述历史版本号中的各个子历史版本号进行逐层比对,得到差异子版本号;根据所述差异子版本号在所述镜像文件中获取所述差量镜像文件。
54.103、检测到更新操作时,根据预设脚本将所述镜像文件与所述子应用程序包进行比对,得到差分包;
55.具体的,预设脚本用于在预设条件下将所述镜像文件与所述子应用程序包进行比对。
56.可选的,检测到更新操作时,定义各个子应用程序包以及镜像文件的名字;将子应用程序包以及镜像文件解压到对应的文件夹下;读取里面的文件,找出不同的,删除相同的;打包删除后的文件,得到差分包。
57.可选的。差分包用于发送给客户端,以使得客户端将其作为安装包进行安装。
58.104、根据所述差分包更新所述镜像文件,以完成离线增量部署。
59.可选的,在所述镜像文件更新完成时,输出请求更新的提示信息。
60.本发明实施例中,应用程序包的离线增量部署设备检测到应用程序的应用程序包时,将所述应用程序包中的依赖包以及业务包分层,得到多层子应用程序包;根据所述子应用程序包在docker容器生成镜像文件;检测到更新操作时,根据预设脚本将所述镜像文件与所述子应用程序包进行比对,得到差分包;根据所述差分包更新所述镜像文件,以完成离线增量部署。由于应用程序包的离线增量部署设备将经常不改变的依赖包和容易变化的业务包分离开,可以只升级修改过的业务层;基于docker容器的分层存储技术,可将不经常改变的依赖包作为一层,将容易变化的业务包作为一层,增量的时候使用docker镜像分层的缓存技术,打包更新变化的业务层,再使用脚本将本地的应用程序包与上次打包的镜像文件进行比对,可提取出变化的差分包,然后基于差分包进行部署,从而实现增量部署,本实施例减少了应用程序包部署所需的下载拷贝时间,提高了部署效率。
61.请参阅图2,本发明实施例中应用程序包的离线增量部署方法的另一个实施例包括:
62.201、检测到更新操作时,获取所述镜像文件中各个第一文件的第一层级关系以及获取所述子应用程序包中各个第二文件的第二层级关系;
63.具体的,基于镜像文件中各个文件的包含关系以及文件名确定上述第一层级关系,第二层级关系的确定方式同理。
64.202、基于所述第一层级关系、所述第二层级关系比对所述第一文件的名称与所述第二文件的名称,得到比对结果;
65.203、根据所述比对结果将所述子应用程序包中与所述镜像文件相同的文件删除,得到差异文件;
66.具体的,将层级关系对应但名称不同的文件作为待更新目标,删除名称相同的文件。例如:镜像文件中的a文件夹与子应用程序包中的b文件夹名称相同,但a文件夹中存在一个子文件夹c与其对应的b文件夹中的d文件夹不同,则将d文件夹保留,以作为差异文件。
67.204、将所述差异文件压缩,得到所述差分包。
68.本发明实施例中,基于镜像文件的层级关系以及更新后的子应用程序包的层级关系进行差分包的确定,过程无需针对文件内容进行比对,直接比对文件名称即可,提高了比对效率,从而提升了应用程序包的部署效率。
69.上面对本发明实施例中应用程序包的离线增量部署方法进行了描述,下面对本发明实施例中应用程序包的离线增量部署装置进行描述,请参阅图4,本发明实施例中应用程序包的离线增量部署装置一个实施例包括:
70.第一检测模块301,用于检测到应用程序的应用程序包时,将所述应用程序包中的依赖包以及业务包分层,得到多层子应用程序包;
71.生成模块302,用于根据所述子应用程序包在docker容器生成镜像文件;
72.第二检测模块303,用于检测到更新操作时,根据预设脚本将所述镜像文件与所述子应用程序包进行比对,得到差分包;
73.部署模块304,用于根据所述差分包更新所述镜像文件,以完成离线增量部署。
74.可选的,部署模块304还可以具体用于:
75.检测到更新操作时,获取所述镜像文件中各个第一文件的第一层级关系以及获取所述子应用程序包中各个第二文件的第二层级关系;
76.基于所述第一层级关系、所述第二层级关系比对所述第一文件的名称与所述第二文件的名称,得到比对结果;
77.根据所述比对结果将所述子应用程序包中与所述镜像文件相同的文件删除,得到差异文件;
78.将所述差异文件压缩,得到所述差分包。
79.可选的,部署模块304还可以具体用于:
80.检测到目标客户端发送的更新请求时,确定所述目标客户端对应的历史版本号,所述历史版号为上一次发送给所述目标客户端的历史镜像文件的版本号;
81.根据所述镜像文件的当前版本号以及所述历史版本号确定差量镜像文件;
82.将所述差量镜像文件发送至所述目标客户端。
83.可选的,部署模块304还可以具体用于:
84.将所述差量镜像文件压缩,得到升级包;
85.将所述升级包发送至所述目标客户端。
86.可选的,部署模块304还可以具体用于:
87.获取所述历史版本号对应的历史镜像文件;
88.将所述镜像文件中与所述历史镜像文件相同的文件删除,得到所述差量镜像文件。
89.可选的,部署模块304还可以具体用于:
90.将所述镜像文件的当前版本号中的各个子版本号与所述历史版本号中的各个子历史版本号进行逐层比对,得到差异子版本号;
91.根据所述差异子版本号在所述镜像文件中获取所述差量镜像文件。
92.可选的,部署模块304还可以具体用于:
93.在所述镜像文件更新完成时,输出请求更新的提示信息。
94.本发明实施例中,应用程序包的离线增量部署设备检测到应用程序的应用程序包时,将所述应用程序包中的依赖包以及业务包分层,得到多层子应用程序包;根据所述子应用程序包在docker容器生成镜像文件;检测到更新操作时,根据预设脚本将所述镜像文件与所述子应用程序包进行比对,得到差分包;根据所述差分包更新所述镜像文件,以完成离线增量部署。由于应用程序包的离线增量部署设备将经常不改变的依赖包和容易变化的业务包分离开,可以只升级修改过的业务层;基于docker容器的分层存储技术,可将不经常改变的依赖包作为一层,将容易变化的业务包作为一层,增量的时候使用docker镜像分层的缓存技术,打包更新变化的业务层,再使用脚本将本地的应用程序包与上次打包的镜像文件进行比对,可提取出变化的差分包,然后基于差分包进行部署,从而实现增量部署,本实施例减少了应用程序包部署所需的下载拷贝时间,提高了部署效率。
95.上面图3从模块化功能实体的角度对本发明实施例中的应用程序包的离线增量部署装置进行详细描述,下面从硬件处理的角度对本发明实施例中应用程序包的离线增量部署设备进行详细描述。
96.图4是本发明实施例提供的一种应用程序包的离线增量部署设备的结构示意图,该应用程序包的离线增量部署设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,cpu)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对应用程序包的离线增量部署设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在应用程序包的离线增量部署设备500上执行存储介质530中的一系列指令操作。
97.基于应用程序包的离线增量部署设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如windows serve,mac os x,unix,linux,freebsd等等。本领域技术人员可以理解,图4示出的应用程序包的离线增量部署设备结构并不构成对基于应用程序包的离线增量部署设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
98.本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述应用程序包的离线增量部署方法的步骤。
99.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统或装置、单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
100.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
101.以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术特征:
1.一种应用程序包的离线增量部署方法,其特征在于,所述应用程序包的离线增量部署方法包括:检测到应用程序的应用程序包时,将所述应用程序包中的依赖包以及业务包分层,得到多层子应用程序包;根据所述子应用程序包在docker容器生成镜像文件;检测到更新操作时,根据预设脚本将所述镜像文件与所述子应用程序包进行比对,得到差分包;根据所述差分包更新所述镜像文件,以完成离线增量部署。2.根据权利要求1所述的应用程序包的离线增量部署方法,其特征在于,所述检测到更新操作时,根据预设脚本将所述镜像文件与所述子应用程序包进行比对,得到差分包的步骤包括:检测到更新操作时,获取所述镜像文件中各个第一文件的第一层级关系以及获取所述子应用程序包中各个第二文件的第二层级关系;基于所述第一层级关系、所述第二层级关系比对所述第一文件的名称与所述第二文件的名称,得到比对结果;根据所述比对结果将所述子应用程序包中与所述镜像文件相同的文件删除,得到差异文件;将所述差异文件压缩,得到所述差分包。3.根据权利要求1所述的应用程序包的离线增量部署方法,其特征在于,所述在所述镜像文件更新完成时,输出请求更新的提示信息的步骤之后,所述方法还包括:检测到目标客户端发送的更新请求时,确定所述目标客户端对应的历史版本号,所述历史版号为上一次发送给所述目标客户端的历史镜像文件的版本号;根据所述镜像文件的当前版本号以及所述历史版本号确定差量镜像文件;将所述差量镜像文件发送至所述目标客户端。4.根据权利要求3所述的应用程序包的离线增量部署方法,其特征在于,所述将所述差量镜像文件发送至所述目标客户端的步骤包括:将所述差量镜像文件压缩,得到升级包;将所述升级包发送至所述目标客户端。5.根据权利要求3所述的应用程序包的离线增量部署方法,其特征在于,所述根据所述镜像文件的当前版本号以及所述历史版本号确定差量镜像文件的步骤包括:获取所述历史版本号对应的历史镜像文件;将所述镜像文件中与所述历史镜像文件相同的文件删除,得到所述差量镜像文件。6.根据权利要求3所述的应用程序包的离线增量部署方法,其特征在于,所述根据所述镜像文件的当前版本号以及所述历史版本号确定差量镜像文件的步骤包括:将所述镜像文件的当前版本号中的各个子版本号与所述历史版本号中的各个子历史版本号进行逐层比对,得到差异子版本号;根据所述差异子版本号在所述镜像文件中获取所述差量镜像文件。7.根据权利要求1所述的应用程序包的离线增量部署方法,其特征在于,所述根据所述目标子应用程序包更新所述镜像文件的步骤之后,所述方法还包括:
在所述镜像文件更新完成时,输出请求更新的提示信息。8.一种应用程序包的离线增量部署装置,其特征在于,所述应用程序包的离线增量部署装置包括:第一检测模块,用于检测到应用程序的应用程序包时,将所述应用程序包中的依赖包以及业务包分层,得到多层子应用程序包;生成模块,用于根据所述子应用程序包在docker容器生成镜像文件;第二检测模块,用于检测到更新操作时,根据预设脚本将所述镜像文件与所述子应用程序包进行比对,得到差分包;部署模块,用于根据所述差分包更新所述镜像文件,以完成离线增量部署。9.一种应用程序包的离线增量部署设备,其特征在于,所述应用程序包的离线增量部署设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述应用程序包的离线增量部署设备执行如权利要求1-7中任一项所述的应用程序包的离线增量部署方法。10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的应用程序包的离线增量部署方法。

技术总结
本发明涉及数据处理领域,公开了一种应用程序包的离线增量部署方法、装置、设备及存储介质。该方法包括:检测到应用程序的应用程序包时,将应用程序包中的依赖包以及业务包分层,得到多层子应用程序包;根据子应用程序包在docker容器生成镜像文件;检测到更新操作时,根据预设脚本将镜像文件与子应用程序包进行比对,得到差分包;根据差分包更新镜像文件,以完成离线增量部署。本发明减少了应用程序包部署所需的下载拷贝时间,提高了部署效率。提高了部署效率。提高了部署效率。


技术研发人员:刘昊旻
受保护的技术使用者:深圳市汉云科技有限公司
技术研发日:2023.07.26
技术公布日:2023/10/15
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐