线上自动化部署服务器升级方法与流程

文档序号:24807813发布日期:2021-04-23 17:08阅读:386来源:国知局
线上自动化部署服务器升级方法与流程

1.本申请涉及一种线上自动化部署服务器升级方法。


背景技术:

2.当前金融行业随着互联网的发展正经历着快速变革:各类业务创新快速涌现、交易量呈爆炸式增长、信息系统规模迅速增长、数量越来越多,系统间的复杂程度进一步提高。同时,同业之间的激烈竞争导致用户粘性降低,行业监管也愈发严格。业务部门对it系统交付能力的要求持续提高:代码开发和测试的周期越来越短、投产频率大大增加、投产过程要求稳定高效,降低发布过程中对业务的影响度,规避可能产生的风险。
3.银行等互联网金融公司基于安全考虑,不会对部署在行方的系统开通外网访问。互联网金融系统远程部署流程依赖于手工操作,及其容易出现纰漏。目前的线上部署就存在以下缺陷:(1)效率低。每次的更新服务项都不相同,因此需要编写操作手册。(2)易出错。手动更新版本id,手动匹配代码包名与操作手册写明中的一致,手动生成升级介质目录结构,全程手动部署项目。(3)流程复杂。部署人员需分机器分服务部署,需熟悉linux环境和命令,会查看程序运行日志。(4)重复操作。由于同一个服务有多台实例,存在着重复工作量。针


技术实现要素:

4.为了解决现有技术的不足之处,本申请提供一种一种线上自动化部署服务器升级方法,包括:将所需的升级文件、操作手册打包生成一个最终升级包;将所述最终升级包上传至公用的ftp服务器,并在所述ftp服务器对所述最终升级包进行解压以获得升级文件;在需要升级部署的服务器上访问所述ftp服务器,并下载所述升级文件进行自动升级。
5.进一步地,所述升级文件包括shell脚本。
6.进一步地,所述最终升级包的打包方法包括:
7.s01在浏览器界面填写打包路径、升级版本号、发布日期、上线背景说明
8.s02发起打包请求
9.s03判断打包路径是否存在,若否会返回步骤s01,若为是则进行下一步。
10.进一步地,所述最终升级包的打包方法还包括:
11.s04列出待扫描文件夹下所有zip、sql结尾的文件;
12.s05对每一个文件的文件名一次进行标识符前缀匹配;
13.s06如果匹配上,则同时获取文件大小等信息。
14.进一步地,所述最终升级包的打包方法还包括:
15.s07对匹配上的列表进行排序以生成服务执行顺序;
16.s08用freemarker依次生成对应的shell脚本;
17.s09按应用所在的主机组进行归并,提取出各个主机及需要升级的应用;
18.s10生成主机统一部署和回滚用shell脚本。
19.进一步地,所述最终升级包的打包方法还包括:
20.s11用freemarker生成markdown形式的操作手册
21.进一步地,所述最终升级包的打包方法还包括:
22.s12压缩shell脚本包,并同操作手册,升级服务项一同压缩生成所述最终升级包进一步地,生成所述shell脚本的方法包括:
23.将参数渲染进freemarker模板中,并转存为带有参数的shell;
24.带有参数的shell引入通用shell模板脚本,将上传到公共ftp服务器中的压缩包拉取下来;带有参数的shell将参数传入通用的shell模板。
25.进一步地,在需要升级部署的服务器上进行自动升级的方法具体包括如下步骤:
26.使应用服务器已安装ftp;
27.使ftp服务端开启20、21端口;
28.输入ftp脚本包中的用户名和密码;
29.将升级包上传到公用的ftp服务器上。解压获取到脚本包用于升级;
30.将脚本包上传到服务器公共路径下,解压脚本包到当前文件夹。
31.进一步地,在需要升级部署的服务器上进行自动升级的方法具体包括如下步骤:
32.根据操作手册,输入只需进入到指定的文件夹下,按主机部署应用;
33.应用部署结果会根据每个应用的健康检查结果给出最终的部署结果;如果失败中断,则可根据提示查看日志;
34.判断能否解决导致部署中断的问题,否则,根据操作手册,回滚单个应用的部署进程。
35.本申请的有益之处在于:提供一种大大降低了部署难度并且提高了部署效率的线上自动化部署服务器升级方法。
附图说明
36.构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
37.图1是根据本申请一种实施例的线上自动化部署服务器升级方法的步骤示意框图;
38.图2是根据本申请一种实施例的线上自动化部署服务器升级方法中最终升级包打包的步骤示意框图;
39.图3是根据本申请一种实施例的线上自动化部署服务器升级方法中在服务器进行自动部署的示意框图。
具体实施方式
40.为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范
围。
41.需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
42.参照图1至图3所示,本申请提供一种线上自动化部署服务器升级方法,包括:将所需的升级文件、操作手册打包生成一个最终升级包;将最终升级包上传至公用的ftp服务器,并在ftp服务器对最终升级包进行解压以获得升级文件;在需要升级部署的服务器上访问ftp服务器,并下载升级文件进行自动升级。
43.具体而言,升级文件包括shell脚本。
44.具体而言,最终升级包的打包方法包括:
45.s01在浏览器界面填写打包路径、升级版本号、发布日期、上线背景说明
46.s02发起打包请求
47.s03判断打包路径是否存在,若否会返回步骤s01,若为是则进行下一步。
48.s04列出待扫描文件夹下所有zip、sql结尾的文件;
49.s05对每一个文件的文件名一次进行标识符前缀匹配;
50.s06如果匹配上,则同时获取文件大小等信息。
51.s07对匹配上的列表进行排序以生成服务执行顺序;
52.s08用freemarker依次生成对应的shell脚本;
53.s09按应用所在的主机组进行归并,提取出各个主机及需要升级的应用;
54.s10生成主机统一部署和回滚用shell脚本。
55.s11用freemarker生成markdown形式的操作手册
56.s12压缩shell脚本包,并同操作手册,升级服务项一同压缩生成最终升级包
57.作为本申请的具体方案,生成shell脚本的方法包括:
58.将参数渲染进freemarker模板中,并转存为带有参数的shell;
59.带有参数的shell引入通用shell模板脚本,将上传到公共ftp服务器中的压缩包拉取下来;
60.带有参数的shell将参数传入通用的shell模板。
61.作为更具体的方案,
62.具体而言,在需要升级部署的服务器上进行自动升级的方法具体包括如下步骤:
63.使应用服务器已安装ftp;
64.使ftp服务端开启20、21端口;
65.输入ftp脚本包中的用户名和密码;
66.将升级包上传到公用的ftp服务器上。解压获取到脚本包用于升级;
67.将脚本包上传到服务器公共路径下,解压脚本包到当前文件夹。
68.具体而言,在需要升级部署的服务器上进行自动升级的方法具体包括如下步骤:
69.根据操作手册,输入只需进入到指定的文件夹下,按主机部署应用;
70.应用部署结果会根据每个应用的健康检查结果给出最终的部署结果;如果失败中断,则可根据提示查看日志;
71.判断能否解决导致部署中断的问题,否则,根据操作手册,回滚单个应用的部署进程。
72.另外,作为本申请的另一方面,后端服务的部署实现:先备份,关闭应用,再引入外部脚本(无外部脚本则忽略),之后解压代码包到目的目录,启动应用,请求健康检查接口,无误则继续执行同服务器的下一个应用部署。回滚实现:同部署实现,但无需备份应用。
73.前端服务的部署实现:先备份,根据实际需求,前端代码包中如果含有引入时间戳的h5服务,先删除h5服务再解压代码包到目的目录。回滚实现:如果升级只升级web端,则直接升级;如果含有时间戳的h5服务,需给予提示,再根据实际需求,在解压代码包到目的目录之前,先选择是否删除h5服务。
74.数据库的部署实现:登录到数据库中,使用特定用户,特定编码格式实现数据操作。
75.另外,因升级介质内容导致的部署/回滚失败会给出查看日志的提示,方便排查问题。部署和回滚失败则引入中断机制,部署/回滚失败则终止部署/回滚操作。
76.作为更具体的方案,参照图3所示,在服务器上进行部署时,包括如下步骤:
77.①
确认应用服务器已安装ftp。
78.②
确保ftp服务端开启20、21端口。
79.③
确认ftp脚本包中的用户名和密码。
80.④
将升级包上传到公用的ftp服务器上。解压获取到脚本包用于升级。
81.⑤
将脚本包上传到服务器公共路径下,解压脚本包到当前文件夹。
82.⑥
根据操作手册,输入只需进入到指定的文件夹下,运行命令即可部署当前主机上的所有应用。
83.⑦
应用部署结果会根据每个应用的健康检查结果给出最终的部署结果。失败中断,也可根据提示,查看日志。
84.⑧
可快速解决便当场解决,否则,根据操作手册,运行命令即可回滚单个应用。
85.本申请可以根据公司实际需求,自动生成shell脚本以实现基于外网不可达用于上线的自动化部署需求。本申请的第一个目的是生成升级介质的目录结构并打包。升级介质必要包含操作手册,升级服务内容项,实现自动升级的脚本包。一次升级需部署多个服务;同一个服务项会部署在不同的服务器上;多个服务器部署的服务可能相同;服务间有依赖关系,升级需要指明顺序。
86.以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1