CN112698855B - 线上自动化部署服务器升级方法 - Google Patents
线上自动化部署服务器升级方法 Download PDFInfo
- Publication number
- CN112698855B CN112698855B CN202011610248.1A CN202011610248A CN112698855B CN 112698855 B CN112698855 B CN 112698855B CN 202011610248 A CN202011610248 A CN 202011610248A CN 112698855 B CN112698855 B CN 112698855B
- Authority
- CN
- China
- Prior art keywords
- deployment
- upgrading
- server
- application
- script
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供一种线上自动化部署服务器升级方法,包括:将所需的升级文件、操作手册打包生成一个最终升级包;将所述最终升级包上传至公用的FTP服务器,并在所述FTP服务器对所述最终升级包进行解压以获得升级文件;在需要升级部署的服务器上访问所述FTP服务器,并下载所述升级文件进行自动升级。本申请的有益之处在于提供一种大大降低了部署难度并且提高了部署效率的线上自动化部署服务器升级方法。
Description
技术领域
本申请涉及一种线上自动化部署服务器升级方法。
背景技术
当前金融行业随着互联网的发展正经历着快速变革:各类业务创新快速涌现、交易量呈爆炸式增长、信息系统规模迅速增长、数量越来越多,系统间的复杂程度进一步提高。同时,同业之间的激烈竞争导致用户粘性降低,行业监管也愈发严格。业务部门对IT系统交付能力的要求持续提高:代码开发和测试的周期越来越短、投产频率大大增加、投产过程要求稳定高效,降低发布过程中对业务的影响度,规避可能产生的风险。
银行等互联网金融公司基于安全考虑,不会对部署在行方的系统开通外网访问。互联网金融系统远程部署流程依赖于手工操作,及其容易出现纰漏。目前的线上部署就存在以下缺陷:(1)效率低。每次的更新服务项都不相同,因此需要编写操作手册。(2)易出错。手动更新版本ID,手动匹配代码包名与操作手册写明中的一致,手动生成升级介质目录结构,全程手动部署项目。(3)流程复杂。部署人员需分机器分服务部署,需熟悉Linux环境和命令,会查看程序运行日志。(4)重复操作。由于同一个服务有多台实例,存在着重复工作量。针
发明内容
为了解决现有技术的不足之处,本申请提供一种一种线上自动化部署服务器升级方法,包括:将所需的升级文件、操作手册打包生成一个最终升级包;将所述最终升级包上传至公用的FTP服务器,并在所述FTP服务器对所述最终升级包进行解压以获得升级文件;在需要升级部署的服务器上访问所述FTP服务器,并下载所述升级文件进行自动升级。
进一步地,所述升级文件包括shell脚本。
进一步地,所述最终升级包的打包方法包括:
S01在浏览器界面填写打包路径、升级版本号、发布日期、上线背景说明
S02发起打包请求
S03判断打包路径是否存在,若否会返回步骤S01,若为是则进行下一步。
进一步地,所述最终升级包的打包方法还包括:
S04列出待扫描文件夹下所有zip、sql结尾的文件;
S05对每一个文件的文件名一次进行标识符前缀匹配;
S06如果匹配上,则同时获取文件大小等信息。
进一步地,所述最终升级包的打包方法还包括:
S07对匹配上的列表进行排序以生成服务执行顺序;
S08用FreeMarker依次生成对应的Shell脚本;
S09按应用所在的主机组进行归并,提取出各个主机及需要升级的应用;
S10生成主机统一部署和回滚用shell脚本。
进一步地,所述最终升级包的打包方法还包括:
S11用FreeMarker生成Markdown形式的操作手册
进一步地,所述最终升级包的打包方法还包括:
S12压缩Shell脚本包,并同操作手册,升级服务项一同压缩生成所述最终升级包进一步地,生成所述shell脚本的方法包括:
将参数渲染进FreeMarker模板中,并转存为带有参数的Shell;
带有参数的Shell引入通用Shell模板脚本,将上传到公共FTP服务器中的压缩包拉取下来;带有参数的Shell将参数传入通用的Shell模板。
进一步地,在需要升级部署的服务器上进行自动升级的方法具体包括如下步骤:
使应用服务器已安装FTP;
使FTP服务端开启20、21端口;
输入FTP脚本包中的用户名和密码;
将升级包上传到公用的FTP服务器上。解压获取到脚本包用于升级;
将脚本包上传到服务器公共路径下,解压脚本包到当前文件夹。
进一步地,在需要升级部署的服务器上进行自动升级的方法具体包括如下步骤:
根据操作手册,输入只需进入到指定的文件夹下,按主机部署应用;
应用部署结果会根据每个应用的健康检查结果给出最终的部署结果;如果失败中断,则可根据提示查看日志;
判断能否解决导致部署中断的问题,否则,根据操作手册,回滚单个应用的部署进程。
本申请的有益之处在于:提供一种大大降低了部署难度并且提高了部署效率的线上自动化部署服务器升级方法。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请一种实施例的线上自动化部署服务器升级方法的步骤示意框图;
图2是根据本申请一种实施例的线上自动化部署服务器升级方法中最终升级包打包的步骤示意框图;
图3是根据本申请一种实施例的线上自动化部署服务器升级方法中在服务器进行自动部署的示意框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
参照图1至图3所示,本申请提供一种线上自动化部署服务器升级方法,包括:将所需的升级文件、操作手册打包生成一个最终升级包;将最终升级包上传至公用的FTP服务器,并在FTP服务器对最终升级包进行解压以获得升级文件;在需要升级部署的服务器上访问FTP服务器,并下载升级文件进行自动升级。
具体而言,升级文件包括shell脚本。
具体而言,最终升级包的打包方法包括:
S01在浏览器界面填写打包路径、升级版本号、发布日期、上线背景说明
S02发起打包请求
S03判断打包路径是否存在,若否会返回步骤S01,若为是则进行下一步。
S04列出待扫描文件夹下所有zip、sql结尾的文件;
S05对每一个文件的文件名一次进行标识符前缀匹配;
S06如果匹配上,则同时获取文件大小等信息。
S07对匹配上的列表进行排序以生成服务执行顺序;
S08用FreeMarker依次生成对应的Shell脚本;
S09按应用所在的主机组进行归并,提取出各个主机及需要升级的应用;
S10生成主机统一部署和回滚用shell脚本。
S11用FreeMarker生成Markdown形式的操作手册
S12压缩Shell脚本包,并同操作手册,升级服务项一同压缩生成最终升级包
作为本申请的具体方案,生成shell脚本的方法包括:
将参数渲染进FreeMarker模板中,并转存为带有参数的Shell;
带有参数的Shell引入通用Shell模板脚本,将上传到公共FTP服务器中的压缩包拉取下来;
带有参数的Shell将参数传入通用的Shell模板。
作为更具体的方案,
具体而言,在需要升级部署的服务器上进行自动升级的方法具体包括如下步骤:
使应用服务器已安装FTP;
使FTP服务端开启20、21端口;
输入FTP脚本包中的用户名和密码;
将升级包上传到公用的FTP服务器上。解压获取到脚本包用于升级;
将脚本包上传到服务器公共路径下,解压脚本包到当前文件夹。
具体而言,在需要升级部署的服务器上进行自动升级的方法具体包括如下步骤:
根据操作手册,输入只需进入到指定的文件夹下,按主机部署应用;
应用部署结果会根据每个应用的健康检查结果给出最终的部署结果;如果失败中断,则可根据提示查看日志;
判断能否解决导致部署中断的问题,否则,根据操作手册,回滚单个应用的部署进程。
另外,作为本申请的另一方面,后端服务的部署实现:先备份,关闭应用,再引入外部脚本(无外部脚本则忽略),之后解压代码包到目的目录,启动应用,请求健康检查接口,无误则继续执行同服务器的下一个应用部署。回滚实现:同部署实现,但无需备份应用。
前端服务的部署实现:先备份,根据实际需求,前端代码包中如果含有引入时间戳的H5服务,先删除H5服务再解压代码包到目的目录。回滚实现:如果升级只升级Web端,则直接升级;如果含有时间戳的H5服务,需给予提示,再根据实际需求,在解压代码包到目的目录之前,先选择是否删除H5服务。
数据库的部署实现:登录到数据库中,使用特定用户,特定编码格式实现数据操作。
另外,因升级介质内容导致的部署/回滚失败会给出查看日志的提示,方便排查问题。部署和回滚失败则引入中断机制,部署/回滚失败则终止部署/回滚操作。
作为更具体的方案,参照图3所示,在服务器上进行部署时,包括如下步骤:
①确认应用服务器已安装FTP。
②确保FTP服务端开启20、21端口。
③确认FTP脚本包中的用户名和密码。
④将升级包上传到公用的FTP服务器上。解压获取到脚本包用于升级。
⑤将脚本包上传到服务器公共路径下,解压脚本包到当前文件夹。
⑥根据操作手册,输入只需进入到指定的文件夹下,运行命令即可部署当前主机上的所有应用。
⑦应用部署结果会根据每个应用的健康检查结果给出最终的部署结果。失败中断,也可根据提示,查看日志。
⑧可快速解决便当场解决,否则,根据操作手册,运行命令即可回滚单个应用。
本申请可以根据公司实际需求,自动生成Shell脚本以实现基于外网不可达用于上线的自动化部署需求。本申请的第一个目的是生成升级介质的目录结构并打包。升级介质必要包含操作手册,升级服务内容项,实现自动升级的脚本包。一次升级需部署多个服务;同一个服务项会部署在不同的服务器上;多个服务器部署的服务可能相同;服务间有依赖关系,升级需要指明顺序。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (1)
1.一种线上自动化部署服务器升级方法,其特征在于:
所述线上自动化部署服务器升级方法包括:
将所需的升级文件、操作手册打包生成一个最终升级包;
将所述最终升级包上传至公用的FTP服务器,并在所述FTP服务器对所述最终升级包进行解压以获得升级文件;
在需要升级部署的服务器上访问所述FTP服务器,并下载所述升级文件进行自动升级;
所述升级文件包括shell脚本;
所述最终升级包的打包方法包括:
S01在浏览器界面填写打包路径、升级版本号、发布日期、上线背景说明;
S02发起打包请求;
S03判断打包路径是否存在,若否会返回步骤S01,若为是则进行下一步;
S04列出待扫描文件夹下所有zip、sql结尾的文件;
S05对每一个文件的文件名一次进行标识符前缀匹配;
S06如果匹配上,则同时获取文件大小信息;
S07对匹配上的列表进行排序以生成服务执行顺序;
S08用FreeMarker依次生成对应的Shell脚本;
S09按应用所在的主机组进行归并,提取出各个主机及需要升级的应用;
S10生成主机统一部署和回滚用shell脚本;
S11用FreeMarker生成Markdown形式的操作手册;
S12压缩Shell脚本包,并同操作手册,升级服务项一同压缩生成所述最终升级包;
生成所述shell脚本的方法包括:
将参数渲染进FreeMarker模板中,并转存为带有参数的Shell;
带有参数的Shell引入通用Shell模板脚本,将上传到公共FTP服务器中的压缩包拉取下来;
带有参数的Shell将参数传入通用的Shell模板;
在需要升级部署的服务器上进行自动升级的方法具体包括如下步骤:
使应用服务器已安装FTP;
使FTP服务端开启20、21端口;
输入FTP脚本包中的用户名和密码;
将升级包上传到公用的FTP服务器上,解压获取到脚本包用于升级;
将脚本包上传到服务器公共路径下,解压脚本包到当前文件夹;
根据操作手册,输入只需进入到指定的文件夹下,按主机部署应用;
应用部署结果会根据每个应用的健康检查结果给出最终的部署结果;如果失败中断,则可根据提示查看日志;
判断能否解决导致部署中断的问题,否则,根据操作手册,回滚单个应用的部署进程;
在后端服务部署时,先备份,关闭应用,再引入外部脚本,之后解压代码包到目的目录,启动应用,请求健康检查接口,无误则继续执行同服务器的下一个应用部署;回滚实现:同部署实现,但无需备份应用;
在前端服务部署时,先备份,根据实际需求,前端代码包中如果含有引入时间戳的H5服务,先删除H5服务再解压代码包到目的目录;回滚实现:如果升级只升级Web端,则直接升级;如果含有时间戳的H5服务,需给予提示,再根据实际需求,在解压代码包到目的目录之前,先选择是否删除H5服务;
当升级介质内容导致的部署/回滚失败会给出查看日志的提示;当部署和回滚失败则引入中断机制,部署/回滚失败则终止部署/回滚操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011610248.1A CN112698855B (zh) | 2020-12-30 | 2020-12-30 | 线上自动化部署服务器升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011610248.1A CN112698855B (zh) | 2020-12-30 | 2020-12-30 | 线上自动化部署服务器升级方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112698855A CN112698855A (zh) | 2021-04-23 |
CN112698855B true CN112698855B (zh) | 2023-03-14 |
Family
ID=75512549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011610248.1A Active CN112698855B (zh) | 2020-12-30 | 2020-12-30 | 线上自动化部署服务器升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112698855B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113806382A (zh) * | 2021-08-05 | 2021-12-17 | 南京壹证通信息科技有限公司 | 一种基于服务升级时自动升级数据库的实现方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246516A (zh) * | 2013-05-16 | 2013-08-14 | 中国科学院计算机网络信息中心 | 一种基于互联网的遥感数据分析工具的封装服务方法 |
CN107038036A (zh) * | 2017-05-02 | 2017-08-11 | 山东浪潮通软信息科技有限公司 | 一种SaaS服务分发平台的实现方法 |
CN108376127A (zh) * | 2018-03-15 | 2018-08-07 | 武汉斗鱼网络科技有限公司 | 一种文档生成的方法、装置及计算机可读存储介质 |
CN108494622A (zh) * | 2018-03-13 | 2018-09-04 | 新华三云计算技术有限公司 | 监控规则配置方法、装置及服务器 |
CN110096290A (zh) * | 2019-04-04 | 2019-08-06 | 武汉精能电子技术有限公司 | 一种电池模拟器主控板软件升级方法 |
CN111124465A (zh) * | 2019-11-28 | 2020-05-08 | 武汉虹信技术服务有限责任公司 | 一种跨网络c/s程序远程升级方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102065110A (zh) * | 2009-11-12 | 2011-05-18 | 钟惠波 | 一种基于p2sp的客户端软件在线升级的方法和系统 |
CN104199695A (zh) * | 2014-08-27 | 2014-12-10 | 浪潮软件股份有限公司 | 一种web应用自动升级方法 |
CN108632375B (zh) * | 2018-05-09 | 2021-04-27 | 四川华创世纪科技有限公司 | 一种针对分布式部署服务软件程序的在线升级方法 |
CN109347931A (zh) * | 2018-09-28 | 2019-02-15 | 四川长虹电器股份有限公司 | 一种基于分层交互设计的ota升级下载方法 |
-
2020
- 2020-12-30 CN CN202011610248.1A patent/CN112698855B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246516A (zh) * | 2013-05-16 | 2013-08-14 | 中国科学院计算机网络信息中心 | 一种基于互联网的遥感数据分析工具的封装服务方法 |
CN107038036A (zh) * | 2017-05-02 | 2017-08-11 | 山东浪潮通软信息科技有限公司 | 一种SaaS服务分发平台的实现方法 |
CN108494622A (zh) * | 2018-03-13 | 2018-09-04 | 新华三云计算技术有限公司 | 监控规则配置方法、装置及服务器 |
CN108376127A (zh) * | 2018-03-15 | 2018-08-07 | 武汉斗鱼网络科技有限公司 | 一种文档生成的方法、装置及计算机可读存储介质 |
CN110096290A (zh) * | 2019-04-04 | 2019-08-06 | 武汉精能电子技术有限公司 | 一种电池模拟器主控板软件升级方法 |
CN111124465A (zh) * | 2019-11-28 | 2020-05-08 | 武汉虹信技术服务有限责任公司 | 一种跨网络c/s程序远程升级方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112698855A (zh) | 2021-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7011737B2 (ja) | コネクタ開発および統合チャネル展開のためのシステムおよび方法 | |
US7840955B1 (en) | Method and system for restoring software | |
US20030195951A1 (en) | Method and system to dynamically detect, download and install drivers from an online service | |
US7831968B1 (en) | Method and system for restoring software | |
CN102622241B (zh) | 一种软件升级方法及装置 | |
US7802247B1 (en) | Method and system for restoring software | |
CN106681956A (zh) | 一种大规模计算机集群的操作方法及装置 | |
CN112698855B (zh) | 线上自动化部署服务器升级方法 | |
CN110336695A (zh) | 一种部署和维护应用的方法和服务器 | |
CN108170588B (zh) | 一种测试环境搭建方法及装置 | |
CN110795356A (zh) | 基于Ansible实现软件一键式部署与自动化测试的系统及其方法 | |
CN112860645A (zh) | 一种离线压缩文件的处理方法、装置、计算机设备及介质 | |
US7770167B1 (en) | Method and system for installing software | |
CN114840226A (zh) | 基于sa进行微服务升级版本的管理系统及方法 | |
CN114500268B (zh) | chart资源的部署方法、装置、服务器及存储介质 | |
US9513890B1 (en) | Method and system for installing software | |
CN110825538A (zh) | 一种基于mq可自定义数据类型动态进行数据交互的方法 | |
CN109901871A (zh) | 一种Linux下自动实现老化测试的环境配置与运行的方法 | |
CN113259156B (zh) | 一种具有物联网模块的网络设备远程升级方法及系统 | |
CN115629784A (zh) | 更新机台文件的方法、系统、设备及计算机可读存储介质 | |
US20040123268A1 (en) | Program code distribution | |
CN112256365B (zh) | 一种自动化管理多语言版本的方法及终端 | |
CN114879977A (zh) | 应用部署方法、装置及存储介质 | |
US8381171B2 (en) | Customized networked-based commerce system packages | |
CN113326054A (zh) | 软件部署方法和装置、计算机可读存储介质、电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |