本发明涉及计算机程序,具体涉及一种适用于容器部署程序的软件升级方法及系统。
背景技术:
1、容器(docker)是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的linux或windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
2、现有技术中,已存在有较多的基于容器进行业务部署的技术方案,该类方案在使用时通常是基于开发环境打包构建得到容器镜像,随后在实际的生产环境中部署容器镜像并使得相关的应用程序在容器中运行,来实现快速部署以及较好的稳定性。
3、但是,在实际实施过程中,发明人发现,上述方案的容器部署程序,在需要进行升级、更新时,则需要在容器镜像内对相关程序、文件进行操作来完成更新过程,其相对繁琐且容易出错。
技术实现思路
1、针对现有技术中存在的上述问题,现提供一种适用于容器部署程序的软件升级方法;另一方面,还提供一种用于实施该软件升级方法的软件升级系统。
2、具体技术方案如下:
3、一种适用于容器部署程序的软件升级方法,所述容器部署程序包括前端页面、服务端和数据库;
4、所述软件升级方法包括:
5、步骤s1:获取对应于所述容器部署程序的多个待升级文件,根据所述待升级文件生成升级包;
6、步骤s2:根据所述升级包建立新的容器镜像;
7、步骤s3:重启所述服务端以完成对所述容器部署程序的更新过程。
8、另一方面,所述步骤s1包括:
9、步骤s11:根据所述前端页面查找新的前端业务包,将所述前端业务包添加至所述升级包中;
10、步骤s12:根据所述服务端查找服务端升级文件,将所述服务端升级文件添加至所述升级包中;
11、步骤s13:根据所述数据库获取数据库更新文件,将所述数据库更新文件添加至所述升级包中。
12、另一方面,所述步骤s2包括:
13、步骤s21:获取所述前端页面包含的业务静态文件,采用所述前端业务包替换所述业务静态文件并重新建立前端文件映射;
14、步骤s22:采用所述数据库更新文件对所述数据库进行更新;
15、步骤s23:采用所述服务器升级文件对所述服务端进行升级。
16、另一方面,所述步骤s22包括:
17、步骤s221:获取所述数据库当前的第一日期版本号,以及所述数据库更新文件的第二日期版本号;
18、步骤s222:根据所述第一日期版本号和所述第二日期版本号生成增量更新区间;
19、步骤s223:根据所述增量更新区间和所述数据库更新文件对所述数据库进行增量更新。
20、另一方面,所述步骤s223包括:
21、步骤s2231:基于所述增量更新区间对多个所述数据库更新文件进行筛选以获得至少一个中间文件,
22、步骤s2232:根据所有的所述中间文件创建增量更新文件;
23、步骤s2233:基于所述增量更新文件对所述数据库进行增量更新。
24、一种软件升级系统,用于实施上述的软件升级方法,包括:
25、升级包制作模块,所述升级包制作模块获取对应于所述容器部署程序的多个待升级文件,根据所述待升级文件生成升级包;
26、容器更新模块,所述容器更新模块连接所述升级包制作模块,所述容器更新模块根据所述升级包建立新的容器镜像;
27、重启模块,所述重启模块连接所述容器更新模块,所述重启模块在所述容器镜像创建完成后重启所述容器镜像中的服务端,以完成更新过程。
28、另一方面,所述升级包制作模块包括:
29、前端文件查找模块,所述前端文件查找模块根据所述前端页面查找新的前端业务包,将所述前端业务包添加至所述升级包中;
30、服务端文件查找模块,所述服务端文件查找模块根据所述服务端查找服务端升级文件,将所述服务端升级文件添加至所述升级包中;
31、数据库文件查找模块,所述数据库文件查找模块根据所述数据库获取数据库更新文件,将所述数据库更新文件添加至所述升级包中。
32、另一方面,所述容器更新模块包括:
33、前端更新模块,所述前端更新模块获取所述前端页面包含的业务静态文件,采用所述前端业务包替换所述业务静态文件并重新建立前端文件映射;
34、数据库更新模块,所述数据库更新模块连接所述前端更新模块,所述数据库更新模块采用所述数据库更新文件对所述数据库进行更新;
35、服务器更新模块,所述服务器更新模块连接所述数据库更新模块,所述服务器更新模块采用所述服务器升级文件对所述服务端进行升级。
36、另一方面,所述数据库更新模块包括:
37、日期查找模块,所述日期查找模块获取所述数据库当前的第一日期版本号,以及所述数据库更新文件的第二日期版本号;
38、日期比对模块,所述日期比对模块连接所述日期查找模块,所述日期比对模块根据所述第一日期版本号和所述第二日期版本号生成增量更新区间;
39、增量更新模块,所述增量更新模块连接所述日期比对模块,所述增量更新模块根据所述增量更新区间和所述数据库更新文件对所述数据库进行增量更新。
40、另一方面,所述增量更新模块包括:
41、文件筛选模块,所述文件筛选模块基于所述增量更新区间对多个所述数据库更新文件进行筛选以获得至少一个中间文件,
42、更新文件创建模块,所述更新文件创建模块连接所述文件筛选模块,所述更新文件创建模块根据所有的所述中间文件创建增量更新文件;
43、更新模块,所述更新模块连接所述更新文件创建模块,所述更新模块基于所述增量更新文件对所述数据库进行增量更新。
44、上述技术方案具有如下优点或有益效果:针对现有技术中的容器部署程序,在更新时需要运维人员对容器内的相关程序、文件进行调整过程较为繁琐的问题,上述方案通过获取待升级文件构建得到升级包,并基于升级包在原有的容器的基础上更新得到新的容器镜像,实现了容器内程序的自动更新过程,减少了容器部署程序更新时对人力的需求。
1.一种适用于容器部署程序的软件升级方法,其特征在于,所述容器部署程序包括前端页面、服务端和数据库;
2.根据权利要求1所述的软件升级方法,其特征在于,所述步骤s1包括:
3.根据权利要求2所述的软件升级方法,其特征在于,所述步骤s2包括:
4.根据权利要求3所述的软件升级方法,其特征在于,所述步骤s22包括:
5.根据权利要求4所述的软件升级方法,其特征在于,所述步骤s223包括:
6.一种软件升级系统,其特征在于,用于实施如权利要求1-5任意一项所述的软件升级方法,包括:
7.根据权利要求6所述的软件升级系统,其特征在于,所述升级包制作模块包括:
8.根据权利要求7所述的软件升级系统,其特征在于,所述容器更新模块包括:
9.根据权利要求8所述的软件升级系统,其特征在于,所述数据库更新模块包括:
10.根据权利要求9所述的软件升级系统,其特征在于,所述增量更新模块包括: