集群模式下的补丁更新方法及装置、介质、设备与流程

文档序号:33321454发布日期:2023-03-03 20:53阅读:27来源:国知局
集群模式下的补丁更新方法及装置、介质、设备与流程

1.本发明涉及系统维护技术领域,特别是涉及一种集群模式下的补丁更新方法及装置、介质、设备。


背景技术:

2.当前社会正处于信息数字化转型的重要时刻,软件系统面临着快速迭代。面对快速持续化交付的需求,原有交付维护模式将面临着以下几个问题:
3.原有软件系统的运维通常采用手动执行脚本更新数据库、手动部署应用程序覆盖文件等方法,单台服务器的情况还能应付过来。但是当遇到集群模式、拆微服务、拆库拆表等复杂的部署模式情况下,传统做法将变得费时费力,且不能满足日益增长的软件需求。而且,软件系统经常面临多数据库的情况,一套大型系统可能同时涉及几种不同数据库,之前维护人员需要同时熟悉几种数据库,费时费力。还有,软件系统的部署环境复杂多样,涉及各种操作系统,也会增加维护人员的复杂性及维护成本。还有,现在软件系统的微服务架构越来越多,微服务架构是将系统中的不同功能模块拆分成多个不同的服务,这些服务进行独立地开发和部署,每个服务都运行在自己的进程内,这样每个服务的更新都不会影响其他服务的运行。微服务架构要求拆成不同的服务独立部署。可见微服务架构增加了系统维护的难度。


技术实现要素:

4.针对以上至少一个技术问题,本发明实施例提供一种集群模式下的补丁更新方法及装置、介质、设备。
5.根据第一方面,本发明实施例提供的集群模式下的补丁更新方法,包括:
6.确定待更新的软件系统,针对所述待更新的软件系统确定待更新的微服务模块,并将所述待更新的微服务模块作为第一微服务模块;
7.根据所述第一微服务模块的补丁安装记录,确定所述第一微服务模块的待安装补丁;
8.响应于用户在所述待安装补丁中的选择操作,确定用户的所选补丁;
9.确定用户的所选补丁和所选补丁的依赖补丁涉及到的各个微服务模块,将涉及到的每一个微服务模块作为一个第二微服务模块;
10.根据每一个第二微服务模块和该第二微服务模块对应的所选补丁或依赖补丁,生成对应的补丁安装命令;
11.将各个所述补丁安装命令下发至各自对应的第二微服务模块中,以使各个第二微服务模块执行补丁安装操作。
12.根据第二方面,本发明实施例提供的集群模式下的补丁更新装置,包括:
13.第一确定模块,用于确定待更新的软件系统,针对所述待更新的软件系统确定待更新的微服务模块,并将所述待更新的微服务模块作为第一微服务模块;
14.第二确定模块,用于根据所述第一微服务模块的补丁安装记录,确定所述第一微服务模块的待安装补丁;
15.第三确定模块,用于响应于用户在所述待安装补丁中的选择操作,确定用户的所选补丁;
16.第四确定模块,用于确定用户的所选补丁和所选补丁的依赖补丁涉及到的各个微服务模块,将涉及到的每一个微服务模块作为一个第二微服务模块;
17.命令生成模块,用于根据每一个第二微服务模块和该第二微服务模块对应的所选补丁或依赖补丁,生成对应的补丁安装命令;
18.命令下发模块,用于将各个所述补丁安装命令下发至各自对应的第二微服务模块中,以使各个第二微服务模块执行补丁安装操作。
19.根据第三方面,本发明实施例提供计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行实现第一方面提供的方法。
20.根据第四方面,本发明实施例提供的计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面提供的方法。
21.本发明实施例提供的集群模式下的补丁更新方法及装置、介质、设备,具有以下有益效果:
22.(1)确定待更新的软件系统,针对所述待更新的软件系统确定待更新的微服务模块,并将所述待更新的微服务模块作为第一微服务模块;根据所述第一微服务模块的补丁安装记录,确定所述第一微服务模块的待安装补丁;响应于用户在所述待安装补丁中的选择操作,确定用户的所选补丁;确定用户的所选补丁和所选补丁的依赖补丁涉及到的各个微服务模块,将涉及到的每一个微服务模块作为一个第二微服务模块;根据每一个第二微服务模块和该第二微服务模块对应的所选补丁或依赖补丁,生成对应的补丁安装命令;将各个所述补丁安装命令下发至各自对应的第二微服务模块中,以使各个第二微服务模块执行补丁安装操作。可见,本发明实施例提供的方法可以针对任一个软件系统中的任一个微服务模块进行补丁更新操作,非常适合于微服务架构的软件系统。而且,通过本发明实施例提供的方法不需要工作人员直接面对各种数据库,因此不需要熟悉数据库,因此省时省力。而且,也不需要工作人员直接面对软件系统的部署环境,不会操作系统不同而增加补丁更新的难度,即使得补丁更新变得简单。
23.(2)在一个实施例中,在确定用户的所选补丁后,还会确定用户的所选补丁的依赖补丁,对所选补丁和依赖补丁均进行安装,以保证所选补丁能够顺利安装和使用。
24.(3)在一个实施例中,针对一个软件系统的一个第一微服务模块创建补丁更新任务,进而得到该补丁更新任务对应的多个补丁安装命令,使得各个第二微服务模块按照各自对应的补丁安装命令进行补丁安装操作。可以针对多个软件系统的多个第一微服务模块创建补丁更新任务,通过多个补丁更新任务可以实现几台甚至几十台服务器的更新,并且可以选择需要更新的补丁,快速、准确更新补丁,提高补丁更新的效率,达到快速交付和软件系统维护的目的。
附图说明
25.图1为本发明一实施例中集群模式下的补丁更新方法的流程示意图;
26.图2为本发明一个实施例中应用服务器的基本信息的设置页面的示意图;
27.图3为本发明一个实施例中数据库的基本信息的设置页面的示意图;
28.图4为本发明一个实施例中两个软件系统和每一个软件系统下微服务模块的展示示意图;
29.图5为本发明一个实施例中在第一任务创建页面上选择软件系统和微服务模块的示意图;
30.图6为本发明一个实施例中在第二任务创建页面上展示的各个待安装补丁中选择补丁的示意图;
31.图7为本发明一个实施例中用户的所选补丁的示意图;
32.图8为本发明一个实施例中任务页面上各个补丁更新任务的展示示意图;
33.图9为本发明一个实施例中一个补丁安装命令的各个步骤的执行情况示意图。
具体实施方式
34.第一方面,本发明实施例提供一种集群模式下的补丁更新方法。
35.参见图1,该方法包括如下步骤s110~s160:
36.s110、确定待更新的软件系统,针对所述待更新的软件系统确定待更新的微服务模块,并将所述待更新的微服务模块作为第一微服务模块;
37.可理解的是,在不同的环境中所使用的软件系统不同,例如,在开发环境、测试环境、准生产环境、生产环境中采用不同的软件系统。
38.在实际场景中,可以提前对各个软件系统进行定义。具体的,设置软件系统的基本信息,例如,软件系统编号、软件系统名称、软件系统类型、软件系统的描述信息等。其中,不同的软件系统类型对应不同的使用环境。
39.可理解的是,每一个软件系统包括多个微服务模块,通过集群模式部署各个微服务模块,例如,一个服务器上部署一个或者多个微服务模块。其中,一个微服务模块是软件系统中能够提供某个功能的模块。参见图4,一个软件系统为gs cloud,一个软件系统为localhost,软件系统gs cloud中包括微服务模块sys-184。
40.在实际场景中,还可以提前对每一个软件系统中的每一个微服务模块进行定义,例如可以定义每一个微服务模块所在的应用服务器的基本信息、每一个微服务模块所使用的数据库的基本信息、数据对象等。
41.具体的,参见图2,应用服务器的基本信息可以包括应用服务器的编号、应用服务器的名称、应用服务器的实例端口、应用服务器的地址、应用服务器的路径信息等。一个应用服务器上可以部署多个微服务模块。
42.具体的,参见图3,数据库的基本信息包括数据库类型、数据库的ip地址、数据库的端口、数据库的实例名、实例登录账号等信息。一个数据库可以由多个微服务模块使用。
43.具体的,数据对象可以包括微服务模块所涉及到的业务数据所在的数据库表。
44.其中,应用服务器的应用程序和数据库均支持标记为主节点或者从节点,在后续进行补丁更新时,先对主节点进行补丁更新,然后按照主节点的补丁更新方式对从节点进行补丁更新。
45.可理解的是,本发明实施例提供的方法可以由任一计算设备执行。
46.在一个实施例中,s110可以包括:
47.创建补丁更新任务,并在所述补丁更新任务的第一任务创建页面中展示各个软件系统以及每一个软件系统下的各个微服务模块,以供用户选择所述待更新的软件系统以及针对所述待更新的软件系统选择所述待更新的微服务模块。
48.也就是说,每次进行补丁更新都需要创建一个补丁更新任务。首先,可以在计算设备的操作界面上点击任务创建按钮,然后计算设备展示第一任务创建页面,在第一任务创建页面中展示了各个软件系统以及每一个软件系统下的各个微服务模块,这样用户可以选择其中一个软件系统,进而在该软件系统下选择一个微服务模块。用户选择的软件系统为待更新的软件系统。用户选择的微服务模块为待更新的微服务模块,也可以称为第一微服务模块。
49.参见图5,在第一任务创建页面中选择了软件系统localhost中的微服务模块sys-local。
50.可理解的是,在选择好软件系统和微服务模块之后,补丁更新任务还没有创建成功,只有经过后续步骤生成补丁安装命令之后,补丁更新任务才创建成功,才可以在计算设备的页面中看到所创建的补丁更新任务。
51.可见,创建的补丁更新任务是以微服务模块为粒度。
52.s120、根据所述第一微服务模块的补丁安装记录,确定所述第一微服务模块的待安装补丁;
53.例如,获取第一微服务模块对应的应用服务器中的配置文件补丁安装记录、所使用数据库的补丁安装记录,根据这些补丁安装记录,确定第一微服务模块的待安装补丁。
54.在一个实施例中,s120可以包括:根据所述第一微服务模块的补丁安装记录,确定所述第一微服务模块的已安装补丁,将所述第一微服务模块的已安装补丁之外的其余补丁作为所述待安装补丁。
55.也就是说,根据第一微服务模块的补丁安装记录,可以得知第一微服务模块已经安装了哪些补丁,因此本次不需要安装这些已经安装过的补丁,因此将已经安装的补丁之外的其余补丁作为待安装补丁。
56.通过这种方式,计算设备可以计算出第一微服务模块的待安装补丁。
57.s130、响应于用户在所述待安装补丁中的选择操作,确定用户的所选补丁;
58.在一个实施例中,s130可以包括:
59.在所述补丁更新任务的第二任务创建页面中展示所述第一微服务模块的各个待安装补丁;将用户在所述第二任务创建页面上展示的各个待安装补丁中所选择的补丁作为用户的所选补丁。
60.也就是说,计算设备会在第二任务创建页面中展示第一微服务模块的各个待安装补丁,这样用户在第二任务创建页面中进行选择,然后将用户在各个待安装补丁中选择的补丁作为用户的所选补丁。
61.例如,参见图6,在第二任务创建页面中展示了4个待安装补丁,根据勾选的前两个安装补丁,可知用户想要将前两个待安装补丁作为所选补丁。接着,参见图7,展示了用户的两个所选补丁。
62.s140、确定用户的所选补丁和所选补丁的依赖补丁涉及到的各个微服务模块,将
涉及到的每一个微服务模块作为一个第二微服务模块;
63.可理解的是,某些补丁是可以独立安装和运行的,而有些补丁是需要依赖于其它补丁的,如果用户的所选补丁中包括需要依赖于其它补丁的补丁,也需要对所依赖的补丁一并更新。如果一个补丁需要依赖于其它补丁,会在补丁的代码中表明该补丁依赖于其它补丁。
64.其中,依赖补丁是指被其它补丁依赖的补丁。
65.可见,在s140中判断用户的每一个所选补丁是否依赖于其它补丁,如果依赖于其它补丁,确定依赖于何种补丁。然后确定用户的所选补丁和所选补丁的依赖补丁涉及到的各个微服务模块,将这些微服务模块作为第二微服务模块。
66.可理解的是,第二微服务模块中包括第一微服务模块,当然还包括其它的微服务模块。
67.在一个实施例中,s140可以包括:确定用户的所选补丁和所选补丁的依赖补丁所涉及到的各个微服务单元,将每一个微服务单元所属的微服务模块作为一个涉及到的微服务模块。
68.即,首先确定用户的所选补丁和所选补丁的依赖补丁涉及到哪些微服务单元,然后将这些微服务单元所属的各个微服务模块作为涉及到的微服务模块。
69.其中,微服务单元是微服务模块中的功能单元,一个微服务模块中可以包括多个微服务单元。
70.s150、根据每一个第二微服务模块和该第二微服务模块对应的所选补丁或依赖补丁,生成对应的补丁安装命令;
71.也就是说,针对每一个第二微服务模块和该微服务模块对应的补丁,生成一个补丁安装命令。其中,补丁是指所选补丁或者所选补丁的依赖补丁。一个第二微服务模块对应一个补丁安装命令,在补丁安装命令中会标明这个第二微服务模块需要安装的补丁。
72.至此,一个补丁更新任务创建完成。可见,针对一个补丁更新任务,会生成多个补丁安装命令。
73.s160、将各个所述补丁安装命令下发至各自对应的第二微服务模块中,以使各个第二微服务模块执行补丁安装操作。
74.即,将每一个补丁安装命令下发至对应的第二微服务模块中,这样该第二微服务模块会根据补丁安装命令执行补丁安装操作。
75.在一个实施例中,本发明实施例提供的方法还可以包括:
76.在基于一个软件系统的一个第一微服务模块生成各个补丁安装命令后,所述补丁更新任务创建完成,并在任务页面中展示针对各个软件系统的各个第一微服务模块所创建的各个补丁更新任务;其中,一个补丁更新任务对应于基于一个软件系统的一个第一微服务模块所生成的各个补丁安装命令。
77.也就是说,基于所选择的一个软件系统中所选择的一个第一微服务模块,执行上述步骤得到各个第二微服务模块的补丁安装命令之后,针对这个软件系统的这个第一微服务模块的补丁更新任务才创建完成。每一个软件系统中每一个第一微服务模块的补丁更新任务的创建过程都是一样的。然后在计算设备的任务页面中展示针对各个软件系统的各个第一微服务模块所创建的各个补丁更新任务。例如,参见图8,展示了在多次补丁更新过程
中针对两个软件系统的两个微服务模块创建的补丁更新任务。在该页面中点击“执行”,便触发了执行操作。
78.进一步的,s160可以包括:响应于用户对一个补丁更新任务的触发执行操作,将该补丁更新任务对应的各个补丁安装命令下发至各自对应的第二微服务模块中,以使各个第二微服务模块执行补丁安装操作。
79.也就是说,用户在任务页面中选择一个或者多个补丁更新任务,然后点击执行,即触发了执行操作,此时计算设备会将用户所选择的补丁更新任务的各个补丁安装命令下发给对应的第二微服务模块,这样接收到补丁安装命令的每一个第二微服务模块就会执行补丁安装操作。
80.在一个实施例中,每一个第二微服务模块执行补丁安装操作包括如下步骤:进行补丁的分发;将该第二微服务模块所在的应用服务器停止运行;控制该第二微服务模块的应用程序安装补丁;控制该第二微服务模块的数据库安装补丁;控制该第二微服务模块所在的应用服务器启动。
81.可见,第二微服务模块执行补丁安装操作包括5个步骤,这5个步骤是串行执行的。在计算设备的页面中可以展示每一个步骤的执行情况。参见图9,可以看出这5个步骤都执行成功。
82.在实际场景中,补丁更新任务执行失败后,将执行结果显示在计算设备的页面上,用户可以在页面上选择重新执行,再次执行补丁更新任务。
83.可见,本发明实施例中引入了补丁更新任务,每次更新补丁都可以创建一个补丁更新任务,以一台服务器中的一个第一微服务模块为粒度执行上述各个步骤,从而解决在集群模式下复杂的更新补丁问题。
84.可理解的是,针对具有依赖关系的补丁,需要先对依赖补丁的第二微服务模块进行补丁安装,之后依赖该依赖补丁的补丁对应的第二微服务模块再进行补丁安装。可见,大部分第二微服务模块之间的补丁安装命令可以同步执行,但是个别补丁安装命令的执行具有先后顺序,因此可以根据补丁之间的依赖关系,对各个补丁安装命令之间的先后顺序进行编排,进而控制各个第二微服务模块按照一定的顺序执行补丁安装命令。
85.可理解的是,通过本发明实施例提供的方法可以同时更新几台甚至几十台服务器,并且可以选择需要更新的补丁,快速、准确更新补丁,提高补丁更新的效率,达到快速交付和软件系统维护的目的。
86.而且,面对不同类型的数据库,本发明实施例提供的方法不需要工作人员直接面对各种数据库,因此不需要熟悉数据库,因此省时省力。而且,也不需要工作人员直接面对软件系统的部署环境,不会操作系统不同而增加补丁更新的难度,即使得补丁更新变得简单。还有,本发明实施例提供的方法非常适用于微服务架构的软件系统。
87.第二方面,本发明实施例提供一种集群模式下的补丁更新装置,包括:
88.第一确定模块,用于确定待更新的软件系统,针对所述待更新的软件系统确定待更新的微服务模块,并将所述待更新的微服务模块作为第一微服务模块;
89.第二确定模块,用于根据所述第一微服务模块的补丁安装记录,确定所述第一微服务模块的待安装补丁;
90.第三确定模块,用于响应于用户在所述待安装补丁中的选择操作,确定用户的所
选补丁;
91.第四确定模块,用于确定用户的所选补丁和所选补丁的依赖补丁涉及到的各个微服务模块,将涉及到的每一个微服务模块作为一个第二微服务模块;
92.命令生成模块,用于根据每一个第二微服务模块和该第二微服务模块对应的所选补丁或依赖补丁,生成对应的补丁安装命令;
93.命令下发模块,用于将各个所述补丁安装命令下发至各自对应的第二微服务模块中,以使各个第二微服务模块执行补丁安装操作。
94.在一个实施例中,第二确定模块具体用于:根据所述第一微服务模块的补丁安装记录,确定所述第一微服务模块的已安装补丁,将所述第一微服务模块的已安装补丁之外的其余补丁作为所述待安装补丁。
95.在一个实施例中,第四确定模块具体用于:确定用户的所选补丁和所选补丁的依赖补丁所涉及到的各个微服务单元,将每一个微服务单元所属的微服务模块作为一个涉及到的微服务模块。
96.在一个实施例中,第一确定模块具体用于:创建补丁更新任务,并在所述补丁更新任务的第一任务创建页面中展示各个软件系统以及每一个软件系统下的各个微服务模块,以供用户选择所述待更新的软件系统以及针对所述待更新的软件系统选择所述待更新的微服务模块。
97.在一个实施例中,第三确定模块具体用于:在所述补丁更新任务的第二任务创建页面中展示所述第一微服务模块的各个待安装补丁;将用户在所述第二任务创建页面上展示的各个待安装补丁中所选择的补丁作为用户的所选补丁。
98.在一个实施例中,装置还包括:
99.任务展示模块,用于在基于一个软件系统的一个第一微服务模块生成各个补丁安装命令后,所述补丁更新任务创建完成,并在任务页面中展示针对各个软件系统的各个第一微服务模块所创建的各个补丁更新任务;其中,一个补丁更新任务对应于基于一个软件系统的一个第一微服务模块所生成的各个补丁安装命令;
100.对应的,命令下发模块具体用于:响应于用户对一个补丁更新任务的触发执行操作,将该补丁更新任务对应的各个补丁安装命令下发至各自对应的第二微服务模块中,以使各个第二微服务模块执行补丁安装操作。
101.在一个实施例中,每一个第二微服务模块具体用于:进行补丁的分发;将该第二微服务模块所在的应用服务器停止运行;控制该第二微服务模块的应用程序安装补丁;控制该第二微服务模块的数据库安装补丁;控制该第二微服务模块所在的应用服务器启动。
102.可理解的是,本发明实施例提供的装置中有关内容的解释、具体实施方式、有益效果、举例等内容可以参见第一方面提供的方法中的相应部分,此处不再赘述。
103.第三方面,本发明实施例提供一种计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行第一方面提供的方法。
104.具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或cpu或mpu)读出并执行存储在存储介质中的程序代码。
105.在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
106.用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如cd-rom、cd-r、cd-rw、dvd-rom、dvd-ram、dvd-rw、dvd+rw)、磁带、非易失性存储卡和rom。可选择地,可以由通信网络从服务器计算机上下载程序代码。
107.此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
108.此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展模块中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展模块上的cpu等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
109.可理解的是,本发明实施例提供的计算机可读介质中有关内容的解释、具体实施方式、有益效果、举例等内容可以参见第一方面提供的方法中的相应部分,此处不再赘述。
110.第四方面,本说明书一个实施例提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现执行说明书中任一个实施例中的方法。
111.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
112.本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、挂件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
113.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1