一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

应用升级方法、装置、设备及计算机可读存储介质与流程

2022-08-24 00:09:06 来源:中国专利 TAG:


1.本发明涉及容器技术领域,尤其涉及一种应用升级方法、装置、设备及计算机可读存储介质。


背景技术:

2.随着产品的架构愈加复杂,一体机项目中会出现一些不能采取容器方式部署的应用,例如状态应用、硬件信息采集应用等,导致出现了裸机部署的应用与容器应用混合共存的业务场景。目前,在对裸机应用进行升级时,需要通过软件平台来进行升级,这种方式的缺点是软件平台需要开发相关应用升级的接口,该接口功能会与应用之间的耦合性过高,增加相应的研发成本。


技术实现要素:

3.本发明的主要目的在于提供一种应用升级方法、装置、设备及计算机可读存储介质,旨在提出一种基于容器技术的裸机部署应用的升级方案,无需针对不同应用开发相应的升级接口,降低了研发成本。
4.为实现上述目的,本发明提供一种应用升级方法,所述方法包括以下步骤:
5.获取目标容器镜像,所述目标容器镜像是对待升级应用的升级脚本和升级文件进行打包创建得到的;
6.获取用于创建目标升级容器的容器配置文件,其中,所述容器配置文件包括用于将所述升级脚本配置为所述目标升级容器的启动脚本的配置信息;
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.升级模块,用于基于所述目标容器镜像和所述容器配置文件创建所述目标升级容器,以在所述目标升级容器中执行作为启动脚本的所述升级脚本,通过执行所述升级脚本来采用所述升级文件对所述待升级应用进行升级。
32.为实现上述目的,本发明还提供一种应用升级设备,所述应用升级设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的应用升级程序,所述应用升级程序被所述处理器执行时实现如上所述的应用升级方法的步骤。
33.此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有应用升级程序,所述应用升级程序被处理器执行时实现如上所述的应用升级方法的步骤。
34.本发明中,通过获取目标容器镜像,目标容器镜像是对待升级应用的升级脚本和升级文件进行打包创建得到的,获取用于创建目标升级容器的容器配置文件,其中,容器配置文件包括用于将升级脚本配置为目标升级容器的启动脚本的配置信息,基于目标容器镜像和容器配置文件创建目标升级容器,以在目标升级容器中执行作为启动脚本的升级脚本,通过执行升级脚本来采用升级文件对待升级应用进行升级。本发明中,通过将待升级应用的升级脚本配置为容器的启动脚本,进而利用容器创建后会自动执行启动脚本的特性来通过容器执行升级脚本升级应用,实现了无需针对不同应用开发相应的升级接口即可完成应用升级,降低了研发成本。
附图说明
35.图1为本发明实施例方案涉及的硬件运行环境的结构示意图;
36.图2为本发明应用升级方法第一实施例的流程示意图;
37.图3为本发明应用升级方法实施例涉及的一种应用升级系统架构示意图;
38.图4为本发明应用升级方法实施例涉及的一种应用升级流程示意图;
39.图5为本发明应用升级装置较佳实施例的功能模块示意图。
40.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
41.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
42.如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
43.需要说明的是,本发明实施例应用升级设备可以是智能手机、个人计算机、服务器等设备,在此不做具体限制。所述工地的清洗区入口处设置至少一个第一摄像单元,所述清洗区出口处设置至少一个第二摄像单元。
44.如图1所示,该应用升级设备可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
45.本领域技术人员可以理解,图1中示出的设备结构并不构成对应用升级设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
46.如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及应用升级程序。操作系统是管理和控制设备硬件和软件资源的程序,支持应用升级程序以及其它软件或程序的运行。在图1所示的设备中,用户接口1003主要用于与客户端进行数据通信;网络接口1004主要用于与服务器建立通信连接;而处理器1001可以用于调用存储器1005中存储的应用升级程序,并执行以下操作:
47.获取目标容器镜像,所述目标容器镜像是对待升级应用的升级脚本和升级文件进行打包创建得到的;
48.获取用于创建目标升级容器的容器配置文件,其中,所述容器配置文件包括用于将所述升级脚本配置为所述目标升级容器的启动脚本的配置信息;
49.基于所述目标容器镜像和所述容器配置文件创建所述目标升级容器,以在所述目标升级容器中执行作为启动脚本的所述升级脚本,通过执行所述升级脚本来采用所述升级文件对所述待升级应用进行升级。
50.进一步地,所述容器配置文件还包括所述目标升级容器的目录与宿主机目录之间的映射关系;
51.所述通过执行所述升级脚本来采用所述升级文件对所述待升级应用进行升级的操作包括:
52.通过执行所述升级脚本来按照所述映射关系查找所述宿主机目录,通过查找所述宿主机目录获取所述待升级应用的应用文件的存储位置,并采用所述升级文件对在所述存储位置存储的所述应用文件进行更新,以对所述待升级应用进行升级。
53.进一步地,所述容器配置文件还包括命名空间配置信息,所述命名空间配置信息用于配置所述目标升级容器与宿主机之间共享命名空间;
54.所述通过执行所述升级脚本来采用所述升级文件对所述待升级应用进行升级的操作包括:
55.通过执行所述升级脚本来采用所述升级文件更新所述待升级应用的应用文件;
56.通过执行所述升级脚本从所述宿主机的进程信息中首次查询所述待升级应用的应用进程信息;
57.若首次查询到所述待升级应用的应用进程信息,则通过执行所述升级脚本终止所述待升级应用的应用进程;
58.通过执行所述升级脚本从所述宿主机的进程信息中再次查询所述待升级应用的应用进程信息;
59.若在预设时长内再次查询到所述待升级应用的应用进程信息,则确定完成所述待升级应用的升级。
60.进一步地,处理器1001还可以用于调用存储器1005中存储的应用升级程序,执行以下操作:
61.定时查询所述待升级应用的应用进程状态,并在检测到所述待升级应用的应用进程处于终止状态时,重新启动所述待升级应用的应用进程。
62.进一步地,处理器1001还可以用于调用存储器1005中存储的应用升级程序,执行以下操作:
63.若首次未查询到所述待升级应用的应用进程信息,或在预设时长内未再次查询到所述待升级应用的应用进程信息,则返回执行所述基于所述目标容器镜像和所述容器配置文件创建所述目标升级容器的操作。
64.进一步地,所述应用升级方法应用于宿主机中部署的云平台,所述获取目标容器镜像的操作包括:
65.获取用户终端上传的所述待升级应用的升级脚本和升级文件,将所述升级脚本和所述升级文件打包创建得到目标容器镜像;或,
66.获取所述用户终端上传的所述目标容器镜像,其中,所述目标容器镜像是对所述
待升级应用的所述升级脚本和所述升级文件打包创建得到的。
67.进一步地,所述应用升级方法应用于宿主机中部署的云平台,所述获取用于创建目标升级容器的容器配置文件的操作包括:
68.获取用户终端上传的用于创建目标升级容器的容器配置文件;或,
69.获取基于所述云平台在用户终端中提供的在线编排功能编排的用于创建目标升级容器的容器配置文件。
70.基于上述的结构,提出应用升级方法的各个实施例。
71.参照图2,图2为本发明应用升级方法第一实施例的流程示意图。
72.本发明实施例提供了应用升级方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。在本实施例中,应用升级方法的执行主体可以是智能手机、个人电脑、服务器等设备,在本实施例中并不做限制。在本实施例中,省略执行主体进行阐述。在本实施例中,所述应用升级方法包括以下步骤:
73.步骤s10,获取目标容器镜像,所述目标容器镜像是对待升级应用的升级脚本和升级文件进行打包创建得到的;
74.在本实施例中,将需要升级的应用称为待升级应用,升级脚本和升级文件可以由技术人员根据对待升级应用的升级需求而编写,通过执行升级脚本可以实现采用升级文件对待升级应用进行升级。目前,当待升级应用是裸机部署的应用时,需要在软件平台开发与该待升级应用相适应的升级接口,研发成本高。为解决该问题,在本实施例中,提出一种基于容器技术的应用升级方案。
75.具体地,可以先获取基于待升级应用的升级脚本和升级文件打包创建的容器镜像(以下称为目标容器镜像以示区分)。在容器技术中,可以利用容器来运行应用,容器是从容器镜像创建的运行实例,是一个视图隔离、资源可限制、独立文件系统的进程集合。容器镜像是一个特殊的文件系统,提供容器运行时所需的程序、库、资源、配置等文件。
76.在具体实施方式中,可以是获取到升级脚本和升级文件后,对升级脚本和升级文件进行打包创建得到目标容器镜像,也可以是由其他设备基于升级脚本和升级文件打包创建得到目标容器镜像后,从该其他设备直接获取目标容器镜像。需要说明的是,在具体实施方式中,可以是当需要对待升级应用进行升级时,例如收到升级指令时,才打包创建目标容器镜像或从其他设备获取目标容器镜像,也可以是预先打包创建目标容器镜像或从其他设备获取到目标容器镜像后存储在镜像仓库,然后再需要对待升级应用进行升级时,从镜像仓库中获取目标容器镜像。在本实施例中,对基于升级脚本和升级文件打包创建目标容器镜像的方法并不做限制,例如可以调用容器镜像创建工具来创建。
77.步骤s20,获取用于创建目标升级容器的容器配置文件,其中,所述容器配置文件包括用于将所述升级脚本配置为所述目标升级容器的启动脚本的配置信息;
78.在本实施例中,通过创建容器的方式来对待升级应用进行升级,而为示区分,将在对待升级应用进行升级时所需要创建的容器称为目标升级容器。获取用于创建目标升级容器的容器配置文件。其中,容器配置文件中包含了一些配置信息,是创建容器时所需要使用的配置信息,例如包括用于配置容器所能够使用的资源的配置信息。在本实施例中,为完成基于容器技术的应用升级,设置容器配置文件中包括用于将待升级文件的升级脚本配置为
目标升级容器的启动脚本的配置信息,以使得在创建目标升级容器后自动执行启动脚本时能够自动执行该升级脚本以对待升级应用进行升级。容器配置文件中还可以包括其他一些配置信息,具体在本实施例中并不做限制。例如,在一实施方式中,容器配置文件中可以包括目标容器镜像的名称或id,当获取到容器配置文件后,可以基于该容器配置文件从镜像仓库获取到目标容器镜像,进而进行目标升级容器的创建。
79.在具体实施方式中,可以是由技术人员在线上编排容器配置文件后,获取线上编排完成的容器配置文件,也可以是由技术人员在其他设备编排好容器配置文件后,从该其他设备中获取容器配置文件。
80.步骤s30,基于所述目标容器镜像和所述容器配置文件创建所述目标升级容器,以在所述目标升级容器中执行作为启动脚本的所述升级脚本,通过执行所述升级脚本来采用所述升级文件对所述待升级应用进行升级。
81.在获取到目标容器镜像和容器配置文件后,可以基于目标容器镜像和容器配置文件来创建目标升级容器。在具体实施方式中,创建目标升级容器可以是将目标容器镜像和容器配置文件传递给容器管理的底层框架所提供的容器创建接口,调用该接口来创建目标升级容器。容器在创建后会自动执行启动脚本,在本实施例中利用容器的该特性,通过容器配置文件将待升级应用的升级脚本配置为目标升级容器的启动脚本,使得在目标升级容器创建后,在目标升级容器中会自动执行该升级脚本,从而通过执行该升级脚本来采用升级文件对待升级应用进行升级。根据对待升级应用的升级需求不同,技术人员可以编写不同的升级脚本,进而实现不同的升级流程,具体在本实施例中并不做限制。
82.在本实施例中,通过获取目标容器镜像,目标容器镜像是对待升级应用的升级脚本和升级文件进行打包创建得到的,获取用于创建目标升级容器的容器配置文件,其中,容器配置文件包括用于将升级脚本配置为目标升级容器的启动脚本的配置信息,基于目标容器镜像和容器配置文件创建目标升级容器,以在目标升级容器中执行作为启动脚本的升级脚本,通过执行升级脚本来采用升级文件对待升级应用进行升级。本实施例中,通过将待升级应用的升级脚本配置为容器的启动脚本,进而利用容器创建后会自动执行启动脚本的特性来通过容器执行升级脚本升级应用,实现了无需针对不同应用开发相应的升级接口即可完成裸机部署应用的升级,降低了研发成本。
83.基于上述第一实施例,提出本发明应用升级方法第二实施例,在本实施例中,所述步骤s30中通过执行所述升级脚本来采用所述升级文件对所述待升级应用进行升级的步骤包括:
84.步骤s301,通过执行所述升级脚本来按照所述映射关系查找所述宿主机目录,通过查找所述宿主机目录获取所述待升级应用的应用文件的存储位置,并采用所述升级文件对在所述存储位置存储的所述应用文件进行更新,以对所述待升级应用进行升级。
85.在本实施例中,当对待升级应用进行升级是需要采用升级文件对待升级应用的应用文件进行更新时,在容器配置文件中还可以包括目标升级容器的目录与宿主机目录之间的映射关系。
86.由于待升级应用是裸机部署的应用,其应用文件所在目录是宿主机的目录,而升级脚本是在目标升级容器中执行的,其可见范围是目标升级容器的目录范围,所以为使得执行升级脚本时能够找到宿主机中的应用文件并进行更新,在容器配置文件中配置目标升
级容器的目录与宿主机目录之间的映射关系,根据该映射关系,在执行升级脚本时,可以通过从宿主机目录中查找该待升级应用的应用文件来获取该应用文件的存储位置,并通过执行升级脚本采用升级文件对该存储位置存储的该应用文件进行更新,以达到对待升级应用进行升级的目的。
87.在其它实施方式中,也可以采用其他的方法使得在目标升级容器中执行升级脚本时可以找到待升级应用的应用文件。
88.进一步地,在一实施方式中,所述步骤s30通过执行所述升级脚本来采用所述升级文件对所述待升级应用进行升级的步骤包括:
89.步骤s302,通过执行所述升级脚本来采用所述升级文件更新所述待升级应用的应用文件;
90.在一些场景下,对待升级应用的应用文件进行更新并不能够及时地更新待升级应用正在提供的服务,只有当待升级应用下一次启动时才能够基于更新后的应用文件进行启动进而提供升级后的服务。在本实施方式中,为了提高对待升级应用升级后的服务的部署速度,提出在升级脚本中增加应用进程的监控和终止功能,并为了能够使得升级脚本可以监控到待升级应用的应用进程,设置容器配置文件中还包括命名空间配置信息,该命名空间配置信息用于配置目标升级容器与宿主机之间共享命名空间。
91.具体地,先通过在目标升级容器中执行升级脚本来采用升级文件更新待升级应用的应用文件。
92.步骤s303,通过执行所述升级脚本从所述宿主机的进程信息中首次查询所述待升级应用的应用进程信息;
93.由于待升级应用是裸机部署的应用,其应用进程信息只在宿主机的命名空间可见,而升级脚本是在目标升级容器中执行的,其可见范围是目标升级容器的命名空间,所以为使得执行升级脚本时能够查询到待升级应用的应用进程信息,在容器配置文件中配置目标升级容器与宿主机之间共享命名空间,在执行升级脚本时,若待升级应用处于运行状态,则可以查询到在宿主机环境运行的待升级应用的应用进程信息。
94.将在对待升级应用的应用文件进行更新后对应用进程信息的查询称为首次查询,以区别于后续的再次查询。
95.步骤s304,若首次查询到所述待升级应用的应用进程信息,则通过执行所述升级脚本终止所述待升级应用的应用进程;
96.若首次查询时查询到了待升级应用的应用进程信息,说明待升级应用处于运行状态,为快速地部署升级后的服务,此时可以通过执行升级脚本来终止待升级应用的应用进程。
97.步骤s305,通过执行所述升级脚本从所述宿主机的进程信息中再次查询所述待升级应用的应用进程信息;
98.终止待升级应用的应用进程的目的是触发待升级应用的自动启动功能或者是触发人工对待升级应用进行启动,从而使得待升级应用快速地基于更新后的应用文件启动以提供升级后的服务。
99.在终止待升级应用的应用进程后,可以通过执行升级脚本来从宿主机的进程信息中再次查询待升级应用的应用进程信息,目的是确定待升级应用是否被重新启动。
100.步骤s306,若在预设时长内再次查询到所述待升级应用的应用进程信息,则确定完成所述待升级应用的升级。
101.若在预设时长内再次查询到待升级应用的应用进程信息,则说明待升级应用被重新启动了,此时可以确定完成了待升级应用的升级。其中,预设时长可以根据需要进行设置,在本实施例中并不做限制。进一步地,在一实施方式中,当确定完成了待升级应用的升级后,可以正常地结束升级脚本。
102.进一步地,在一实施方式中,所述方法还包括:
103.步骤s40,定时查询所述待升级应用的应用进程状态,并在检测到所述待升级应用的应用进程处于终止状态时,重新启动所述待升级应用的应用进程。
104.在本实施例中,为进一步提高对待升级应用升级后的服务的部署速度,可以定时地查询待升级应用的应用进程状态,并在检测到待升级应用的应用进程处于终止状态时,重新启动待升级应用的应用进程,这样使得当在通过执行升级脚本时终止了待升级应用的应用进程后,能够在一定时间后重新启动待升级应用,从而使得通过执行升级脚本对待升级应用的应用进程信息进行再次查询时,能够在预设时长内查询到待升级应用的应用进程信息,从而快速地完成待升级应用的升级。定时查询待升级应用的应用进程状态是指每隔一定时长查询一次应用进程状态,该间隔时长小于预设时长,但具体间隔多久查询一次可以根据需要进行设置,在本实施例中并不做限制。
105.在具体实施方式中,若针对裸机部署的应用在裸机环境中还部署了该应用的守护进程(该进程每隔一定时长查询一次该应用的状态,在查询到应用终止时自动启动该应用),则可以通过待升级应用的守护进程来执行步骤s40对应的操作。
106.进一步地,在一实施方式中,所述方法还包括:
107.步骤s50,若首次未查询到所述待升级应用的应用进程信息,或在预设时长内未再次查询到所述待升级应用的应用进程信息,则返回执行所述基于所述目标容器镜像和所述容器配置文件创建所述目标升级容器的步骤。
108.若在对待升级应用的应用文件进行更新后,通过执行升级脚本对待升级应用的应用进程信息进行首次查询时未查询到,或者是,在通过执行升级脚本对待升级应用的应用进程进行终止后对待升级应用的应用进程信息进行再次查询时在预设时长内未查询到,则说明在升级过程中可能出现了异常,导致升级未成功,此时,可以再次基于目标容器镜像和容器配置文件创建目标升级容器,以再次通过执行升级脚本来对待升级应用进行升级,通过再次尝试来提高应用升级的成功率。
109.进一步地,在其它实施方式中,当首次未查询到待升级应用的应用进程信息,或在预设时长内未再次查询到待升级应用的应用进程信息时,也可以输出提示信息,提示技术人员升级失败,以使得技术人员了解升级结果,进而排查升级失败的原因。
110.进一步地,基于上述第一和/或第二实施例,提出本发明应用升级方法第三实施例,在本实施例中,所述步骤s10包括:
111.步骤s101,获取用户终端上传的所述待升级应用的升级脚本和升级文件,将所述升级脚本和所述升级文件打包创建得到目标容器镜像;
112.在本实施例中,应用升级方法可以应用于宿主机中部署的云平台。云平台具体可以是用于提供容器服务的云平台,例如,docker云平台,在本实施例中并不做限制。
113.云平台获取目标容器镜像具体可以是在用户终端上传待升级应用的升级脚本和升级文件后,云平台基于该升级脚本和升级文件打包创建得到目标容器镜像。
114.用户终端可以是个人电脑、智能手机等终端,在本实施例中并不做限制。
115.步骤s102,获取所述用户终端上传的所述目标容器镜像,其中,所述目标容器镜像是对所述待升级应用的所述升级脚本和所述升级文件打包创建得到的。
116.或者,还可以是由技术人员通过用户终端远程连接云平台,通过用户终端将目标容器镜像上传至云平台。而其中,技术人员可以直接将从其他设备中创建好的目标容器镜像上传用户终端,也可以是将升级脚本和升级文件上传用户终端,基于用户终端中提供的容器镜像创建工具对升级脚本和升级文件进行打包创建得到目标容器镜像。
117.在本实施例中,通过将本实施例应用升级方法应用于宿主机中部署的云平台,使得技术人员可以远程地在云平台中部署目标容器镜像,进而远程升级宿主机中部署的待升级应用,无需去到机房升级,降低了人力成本,且直接通过云平台发布容器镜像即可完成升级,降低了现场误操作的风险。
118.进一步地,在一实施方式中,所述步骤s20包括:
119.步骤s201,获取用户终端上传的用于创建目标升级容器的容器配置文件;
120.在本实施例中,应用升级方法可以应用于宿主机中部署的云平台。云平台具体可以是用于提供容器服务的云平台,例如,docker云平台,在本实施例中并不做限制。
121.云平台获取容器配置文件具体可以是获取用户终端上传的容器配置文件,也即,技术人员可以在通过用户终端连接云平台,通过用户终端将容器配置文件上传到云平台。而其中,技术人员可以直接将从其他设备中编排好的容器配置文件上传用户终端,也可以是在用户终端中编排容器配置文件。
122.步骤s202,获取基于所述云平台在用户终端中提供的在线编排功能编排的用于创建目标升级容器的容器配置文件。
123.或者,云平台可以提供容器配置文件的在线编排功能,技术人员通过在用户终端中使用云平台所提供的在线编排功能编排容器配置文件,并在编排完成后触发云平台保存该容器配置文件以用于后续的应用升级。
124.在本实施例中,通过将本实施例应用升级方法应用于宿主机中部署的云平台,使得技术人员可以远程地在云平台中部署容器配置文件,进而远程升级宿主机中部署的待升级应用,无需去到机房升级,降低了人力成本,且直接通过云平台发布容器镜像即可完成升级,降低了现场误操作的风险。
125.进一步地,在一实施方式中,如图3所示,提供一种应用升级的系统架构。
126.1、技术人员可通过本地pc端的容器镜像制作模块基于待升级应用的升级脚本和升级文件(也称为成果物)打包创建目标容器镜像。
127.2、通过容器镜像导入模块将目标容器镜像导入宿主机中部署的云平台。
128.3、通过升级容器发布模块将编排的容器配置文件上传云平台,并触发应用升级任务。技术人员可以选择在云平台进行在线编排,也可以将编排好的容器配置文件上传云平台。
129.4、云平台通过容器升级模块调用底层的kuber基于目标容器镜像和容器配置文件创建(发布)目标升级容器。
130.5、目标升级容器创建后,自动执行启动脚本,即升级脚本,执行如图4所示的升级流程;其中,更新成果物即采用升级文件更新待升级应用的应用文件
131.6、应用的守护进程部署在裸机环境中,定时去查询该应用进程的状态,发现该应用进程被升级脚本停止以后,会重新拉起应用进程,从而完成了更新应用成果物后的重启。
132.本实施例应用升级方法可以实现如下技术效果:
133.1)对于宿主机部署的应用,容器部署的应用,可以统一通过云平台,去远程进行应用的升级。
134.2)所有升级相关的脚本,成果物均打包在升级的容器镜像内,使升级成果物标准规范化。
135.3)直接通过云平台发布容器镜像即可完成升级,降低了现场误操作的风险。
136.4)减少裸机部署应用升级与平台之间的耦合性,无需额外开发升级应用的相关接口。
137.此外,本发明实施例还提出一种应用升级装置,参照图5,所述应用升级装置包括:
138.第一获取模块10,用于获取目标容器镜像,所述目标容器镜像是对待升级应用的升级脚本和升级文件进行打包创建得到的;
139.第二获取模块20,用于获取用于创建目标升级容器的容器配置文件,其中,所述容器配置文件包括用于将所述升级脚本配置为所述目标升级容器的启动脚本的配置信息;
140.升级模块30,用于基于所述目标容器镜像和所述容器配置文件创建所述目标升级容器,以在所述目标升级容器中执行作为启动脚本的所述升级脚本,通过执行所述升级脚本来采用所述升级文件对所述待升级应用进行升级。
141.进一步地,所述容器配置文件还包括所述目标升级容器的目录与宿主机目录之间的映射关系;
142.所述升级模块30还用于:
143.通过执行所述升级脚本来按照所述映射关系查找所述宿主机目录,通过查找所述宿主机目录获取所述待升级应用的应用文件的存储位置,并采用所述升级文件对在所述存储位置存储的所述应用文件进行更新,以对所述待升级应用进行升级。
144.进一步地,所述容器配置文件还包括命名空间配置信息,所述命名空间配置信息用于配置所述目标升级容器与宿主机之间共享命名空间;
145.所述升级模块30还用于:
146.通过执行所述升级脚本来采用所述升级文件更新所述待升级应用的应用文件;
147.通过执行所述升级脚本从所述宿主机的进程信息中首次查询所述待升级应用的应用进程信息;
148.若首次查询到所述待升级应用的应用进程信息,则通过执行所述升级脚本终止所述待升级应用的应用进程;
149.通过执行所述升级脚本从所述宿主机的进程信息中再次查询所述待升级应用的应用进程信息;
150.若在预设时长内再次查询到所述待升级应用的应用进程信息,则确定完成所述待升级应用的升级。
151.进一步地,所述应用升级装置还包括:
152.启动模块,用于定时查询所述待升级应用的应用进程状态,并在检测到所述待升级应用的应用进程处于终止状态时,重新启动所述待升级应用的应用进程。
153.进一步地,所述升级模块30还用于:
154.若首次未查询到所述待升级应用的应用进程信息,或在预设时长内未再次查询到所述待升级应用的应用进程信息,则返回执行所述基于所述目标容器镜像和所述容器配置文件创建所述目标升级容器的操作。
155.进一步地,所述应用升级方法应用于宿主机中部署的云平台,所述第一获取模块10还用于:
156.获取用户终端上传的所述待升级应用的升级脚本和升级文件,将所述升级脚本和所述升级文件打包创建得到目标容器镜像;或,
157.获取所述用户终端上传的所述目标容器镜像,其中,所述目标容器镜像是对所述待升级应用的所述升级脚本和所述升级文件打包创建得到的。
158.进一步地,所述应用升级方法应用于宿主机中部署的云平台,所述第一获取模块20还用于:
159.获取用户终端上传的用于创建目标升级容器的容器配置文件;或,
160.获取基于所述云平台在用户终端中提供的在线编排功能编排的用于创建目标升级容器的容器配置文件。
161.本发明应用升级装置的具体实施方式的拓展内容与上述应用升级方法各实施例基本相同,在此不做赘述。
162.此外,本发明实施例还提出一种计算机可读存储介质,所述存储介质上存储有应用升级程序,所述应用升级程序被处理器执行时实现如下所述的应用升级方法的步骤。
163.本发明应用升级设备、系统和计算机可读存储介质各实施例,均可参照本发明应用升级方法各个实施例,此处不再赘述。
164.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
165.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
166.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
167.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献