CN108984193A - 软件服务部署方法 - Google Patents
软件服务部署方法 Download PDFInfo
- Publication number
- CN108984193A CN108984193A CN201810642045.7A CN201810642045A CN108984193A CN 108984193 A CN108984193 A CN 108984193A CN 201810642045 A CN201810642045 A CN 201810642045A CN 108984193 A CN108984193 A CN 108984193A
- Authority
- CN
- China
- Prior art keywords
- service
- operation host
- host
- homework type
- parameter
- 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.)
- Pending
Links
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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
Abstract
本发明公开了一种软件服务部署方法,所述软件服务部署方法通过运行脚本执行如下步骤来实现:根据服务及其作业类型、作业主机以及所述服务在相应作业主机上的环境变量和启动参数的关联关系,确定所述服务的作业类型、作业主机以及相应作业主机上的环境变量和启动参数;在所述作业类型是更新时,向相应所确定的所述作业主机分发、安装新版本的服务包,并为所述作业主机配置所确定的环境变量和启动参数。通过上述实施方式,极大地减少了人工参与软件服务的部署,自动化程度高,节省了人力,提高了工作效率并降低了错误率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种软件服务部署方法。
背景技术
一般传统的java部署方式采用scp、xftp、rz等方式将待更新的jar服务包上传到服务器,然后运维人员再通过ssh或telnet登录服务器,替换原有的jar服务包,最后重启服务完成部署。
传统方法需要运维人员全程参与,存在耗时费力,出错机率大,版本不好管理等缺点。
发明内容
本发明为解决上述技术问题提供一种软件服务部署方法,极大地减少了人工参与软件服务的部署,自动化程度高,节省了人力,提高了工作效率并降低了错误率。
为解决上述技术问题,本发明提供一种软件服务部署方法,所述软件服务部署方法通过运行脚本执行如下步骤来实现:根据服务及其作业类型、作业主机以及所述服务在相应作业主机上的环境变量和启动参数的关联关系,确定所述服务的作业类型、作业主机以及在相应作业主机上的环境变量和启动参数;在所述作业类型是更新时,向相应所确定的所述作业主机分发、安装新版本的服务包,并为所述作业主机配置所确定的环境变量和启动参数。
进一步地,在确定所述服务的作业类型、作业主机以及相应作业主机上的环境变量和启动参数的步骤之中,包括:根据入参确定服务的作业类型;根据入参确定所述服务的作业主机;根据入参确定所述服务在相应作业主机上的环境变量和启动参数。
进一步地,在向相应所确定的所述作业主机分发、安装新版本的服务包的步骤之前,运行所述脚本还执行如下步骤:备份相应所述作业主机上当前版本的服务包。
进一步地,在根据入参确定服务的作业类型的步骤之后,运行所述脚本还执行如下步骤:检测所述服务的作业类型,所述服务类型包括更新和回滚;在检测到所述作业类型是更新时,备份相应所述作业主机上当前版本的服务包;随后,向相应所确定的所述作业主机分发、安装新版本的服务包,并为所述作业主机配置所确定的环境变量和启动参数进而完成服务的更新;而在检测到所述作业类型是回滚时,将相应所述作业主机上当前版本的服务包回滚至上一版本的服务包,并为所述作业主机配置所确定的环境变量和启动参数进而完成服务的回滚。
进一步地,在服务的更新或回滚完成之后,运行所述脚本还执行如下步骤:重启相应所述作业主机上的服务并生成启动日志;根据所述启动日志判断启动是否成功;如果判断为启动成功,则记录本次作业日志,结束作业;如果判断为启动失败,中止更新或回滚,记录本次作业日志,结束作业。
进一步地,在根据入参确定服务的作业类型的步骤之中,包括:根据入参确定服务的服务名称列表;根据所述服务名称列表确定服务的作业类型。
进一步地,所述脚本被配置存储于任意一台作业主机上或者被配置存储于非作业主机上;所述作业主机是电脑主机或者服务器。
进一步地,在运行所述脚本之前,进行如下步骤:从代码版本管理系统中获取最新版本的代码,并将所述代码封装成服务包;上传所述服务包进行存储。
进一步地,所述代码及由其封装形成的服务包被配置存储于相同或者不同的作业主机上或者非作业主机上。
为解决上述技术问题,本发明提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行实现如上述任一项实施例所述的软件服务部署方法的步骤。
本发明的软件服务部署方法,具有如下有益效果:
通过运行脚本根据脚本内待配置的服务及其作业类型、作业主机及在相应作业主机上的环境变量和启动参数的关联关系,确定服务的作业类型、作业主机以及相应作业主机上的环境变量和启动参数,进而对相应作业主机进行对应作业类型的操作(更新或回滚),全程几乎无需人工参与配置,自动化程度高,节省了人力,提高了工作效率并降低了错误率。
附图说明
图1是本发明软件服务部署方法第一实施例的流程图。
图2是本发明软件服务部署方法第二实施例的流程图。
具体实施方式
下面结合附图和实施方式对本发明进行详细说明。
如图1所示,本发明提供一种软件服务部署方法。软件服务部署方法通过运行脚本执行如下步骤来实现:
步骤S1,根据服务及其作业类型、作业主机以及服务在相应作业主机上的环境变量和启动参数的关联关系,确定服务的作业类型、作业主机以及该服务在相应作业主机上的环境变量和启动参数。
其中,环境变量和启动参数具有关联关系,均由脚本内容来确定。根据服务在作业主机上的运行需求,同一服务在相同或不同作业主机上的启动参数可以配置为相同或不同,有助于实现启动参数的差异化处理,进而使该服务应用于不同的环境(开发、测试、生产,或生产A环境、生产B环境...)。
步骤S2,在作业类型是更新时,向相应所确定的作业主机分发、安装新版本的服务包,并为作业主机配置所确定的环境变量和启动参数。
结合图2进行参阅,在一具体实施例中,具体在步骤S1之中,即在确定服务的作业类型、作业主机以及相应作业主机上的环境变量和启动参数的步骤之中,包括:
步骤S11,根据入参确定服务的作业类型。
步骤S12,根据入参确定服务的作业主机。
其中,一个服务可以对应安装到一个或多个指定的作业主机。一个作业主机可以对应安装一个或多个指定的服务。具体的,其通常是根据入参直接或间接(通过作业主机的名称)确定相应作业主机的IP地址。
步骤S13,根据入参确定服务在相应作业主机上的环境变量和启动参数。
在一具体实施例中,具体在步骤S2之前,即在向相应所确定的作业主机分发、安装新版本的服务包的步骤之前,运行脚本还执行如下步骤:
步骤S21,备份相应作业主机上当前版本的服务包。
在一具体实施例中,具体在步骤S11之后,即在根据入参确定服务的作业类型的步骤之后,运行脚本还执行如下步骤:
步骤S14,检测服务的作业类型。其中,服务类型包括更新和回滚。
在步骤S14中检测到作业类型是更新时,备份相应作业主机上当前版本的服务包,即进入步骤S21。然后,进入步骤S2,即向相应所确定的作业主机分发、安装新版本的服务包,并为作业主机配置所确定的环境变量和启动参数进而完成服务的更新。
而在步骤S14中检测到作业类型是回滚时,进入步骤S22:
将相应作业主机上当前版本的服务包回滚至上一版本的服务包,并为所述作业主机配置所确定的环境变量和启动参数。进而,经过步骤S22,完成了服务的回滚。
在一具体实施例中,在步骤S2:服务的更新之后,或者在步骤S22:服务的回滚之后,运行脚本还执行如下步骤:
步骤S23,重启相应作业主机上的服务并生成启动日志。
步骤S24,根据启动日志判断启动是否成功。
在步骤S24中,如果判断为启动成功,进入步骤S25。如果判断为启动失败,进入步骤S26。
步骤S25,记录本次作业日志,结束作业。
步骤S26,中止更新或回滚,记录本次作业日志,结束作业。
在一具体实施例中,具体在步骤S11之中,即在根据入参确定服务的作业类型的步骤之中,包括:
根据入参确定服务的服务名称列表。
根据服务名称列表确定服务的作业类型。
上述实施例中,代码可以采用Java语言或C语言等进行开发。以采用Java语言开发的代码为例,由该代码封装形成的服务包通常是jar格式的服务包,上述的方法也适用于如C语言等开发的代码封装形成的服务包进行服务更新或回滚。
以代码由Java开发的为例,上述的代码举例可以被管理于SVN代码版本管理系统中,并举例通过jenkins工具从SVN代码版本管理系统中拉取、封装打包及上传。对应的,该脚本举例是shell脚本。
举例而言,步骤S11至步骤S13中的入参通常可以是相应服务的服务名称(servicename),还可以是服务名称和作业类型(更新或回滚)的组合,也即整个更新或回滚的过程可以从服务的关键字开始匹配,也即可以从本文例举的服务名称或是服务名称及作业类型的组合开始上述过程。程序化实现时,其流程大致举例描述为:
1.该shell脚本命名为update.sh,脚本执行语法:
update.sh servicename [update/rollback];
2.根据servicename确定作业主机hostlist(即作业主机列表在脚本内根据服务名称的关联关系确定);
3.根据hostlist依次确定启动参数start_conf。
4.依次在hostlist相关主机上对现有jar包进行备份;
5.依次向hostlist相关主机分发新的jar包,或回滚上一版;
6.依次对hostlist相关主机上的servicename服务进行重启;
7.对hostlist上servicename服务的启动日志进行判断,如果启动失败,则中止更新;
8.记录本次作业日志,更新或回滚处理结束。
上述实施例中,脚本通常可以被配置存储于任意一台作业主机上,以节约硬件资源。当然,出于安全考虑,脚本还可以被配置存储于非作业主机上,即独立于上述的作业主机的另一主机上。上述的作业主机及非作业主机均可以被理解为电脑主机(台式电脑、笔记本或平板电脑等具有处理器及存储器的电子设备)或者服务器。脚本在其安装的作业主机或非作业主机运行时,常通过ssh方式登录到其他作业主机。
在一具体实施例中,在运行脚本之前,进行如下步骤:
步骤S101,从代码版本管理系统中获取最新版本的代码,并将代码封装成服务包。
步骤S102,上传服务包进行存储。
代码及由其封装形成的服务包被配置存储于相同或者不同的作业主机上或者非作业主机上。此处的作业主机及非作业主机均可以被理解为电脑主机(台式电脑、笔记本或平板电脑等具有处理器及存储器的电子设备)或者服务器。
上述实施例中,在仅设置了多台作业主机时,各作业主机之间可通过网络实现相互通讯并配置为允许ssh登录;在既设置了多台作业主机、又设置了一台以上非作业主机时,各作业主机及非作业主机之间可通过网络建立通讯并配置为允许ssh登录。该网络可以是公网,也可以是局域网。
上述实施例中,常可通过人为触发或自动触发启动脚本开始运行。自动触发时,脚本可以执行定期检测是否有新版本的服务包的步骤,并在检测到有新版本的服务包存在时,自动执行上述的各项步骤。
本发明提供一种计算机程序。该计算机程序被处理器执行实现如上述任一项实施例的软件服务部署方法的步骤。
本发明提供一种计算机可读存储介质。计算机可读存储介质存储有计算机程序,计算机程序被处理器执行实现如上述任一项实施例的软件服务部署方法的步骤。
本发明的软件服务部署方法,具有如下有益效果:
利用服务的关键字(入参中的任意一种如服务名称)自动匹配作业主机,减少了人工干预,避免了人为失误,提高了工作效率和正确率;
利用由脚本完成作业主机与环境变量的管理判断自动匹配启动参数,可实现同一服务在不同主机启动,启动参数差异化处理以适应于不同工作环境;
实现集群化部署环境下的服务灰度发布,在不中断服务的情况下,实现业务服务的灰度发布;
能够对启动日志进行判断,及时发现服务启动异常。
以上仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种软件服务部署方法,其特征在于,所述软件服务部署方法通过运行脚本执行如下步骤来实现:
根据服务及其作业类型、作业主机以及所述服务在相应作业主机上的环境变量和启动参数的关联关系,确定所述服务的作业类型、作业主机以及相应作业主机上的环境变量和启动参数;
在所述作业类型是更新时,向相应所确定的所述作业主机分发、安装新版本的服务包,并为所述作业主机配置所确定的环境变量和启动参数。
2.根据权利要求1所述的软件服务部署方法,其特征在于:
在确定所述服务的作业类型、作业主机以及相应作业主机上的环境变量和启动参数的步骤之中,包括:
根据入参确定服务的作业类型;
根据入参确定所述服务的作业主机;
根据入参确定所述服务在相应作业主机上的环境变量和启动参数。
3.根据权利要求2所述的软件服务部署方法,其特征在于:
在向相应所确定的所述作业主机分发、安装新版本的服务包的步骤之前,运行所述脚本还执行如下步骤:
备份相应所述作业主机上当前版本的服务包。
4.根据权利要求3所述的软件服务部署方法,其特征在于:
在根据入参确定服务的作业类型的步骤之后,运行所述脚本还执行如下步骤:
检测所述服务的作业类型,所述服务类型包括更新和回滚;
在检测到所述作业类型是更新时,备份相应所述作业主机上当前版本的服务包;随后,向相应所确定的所述作业主机分发、安装新版本的服务包,并为所述作业主机配置所确定的环境变量和启动参数进而完成服务的更新;
而在检测到所述作业类型是回滚时,将相应所述作业主机上当前版本的服务包回滚至上一版本的服务包,并为所述作业主机配置所确定的环境变量和启动参数进而完成服务的回滚。
5.根据权利要求4所述的软件服务部署方法,其特征在于:
在服务的更新或回滚完成之后,运行所述脚本还执行如下步骤:
重启相应所述作业主机上的服务并生成启动日志;
根据所述启动日志判断启动是否成功;
如果判断为启动成功,则记录本次作业日志,结束作业;
如果判断为启动失败,中止更新或回滚,记录本次作业日志,结束作业。
6.根据权利要求2所述的软件服务部署方法,其特征在于:
在根据入参确定服务的作业类型的步骤之中,包括:
根据入参确定服务的服务名称列表;
根据所述服务名称列表确定服务的作业类型。
7.根据权利要求1所述的软件服务部署方法,其特征在于:
所述脚本被配置存储于任意一台作业主机上或者被配置存储于非作业主机上;
所述作业主机是电脑主机或者服务器。
8.根据权利要求1所述的软件服务部署方法,其特征在于:
在运行所述脚本之前,进行如下步骤:
从代码版本管理系统中获取最新版本的代码,并将所述代码封装成服务包;
上传所述服务包进行存储。
9.根据权利要求8所述的软件服务部署方法,其特征在于:
所述代码及由其封装形成的服务包被配置存储于相同或者不同的作业主机上或者非作业主机上。
10.一种计算机可读存储介质,其特征在于,其特征在于:
所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行实现如权利要求1~9任一项所述的软件服务部署方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810642045.7A CN108984193A (zh) | 2018-06-21 | 2018-06-21 | 软件服务部署方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810642045.7A CN108984193A (zh) | 2018-06-21 | 2018-06-21 | 软件服务部署方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108984193A true CN108984193A (zh) | 2018-12-11 |
Family
ID=64541593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810642045.7A Pending CN108984193A (zh) | 2018-06-21 | 2018-06-21 | 软件服务部署方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108984193A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990033A (zh) * | 2019-10-21 | 2020-04-10 | 望海康信(北京)科技股份公司 | 远程升级方法及系统 |
CN110991970A (zh) * | 2019-12-11 | 2020-04-10 | 成都市赛力培物流科技有限公司 | 一种物流平台自动化运维管理方法 |
CN112083947A (zh) * | 2020-07-27 | 2020-12-15 | 上海云刹技术有限公司 | 一种供应链多语言环境的软件包发布方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1652512A (zh) * | 2004-02-04 | 2005-08-10 | 华为技术有限公司 | 设备升级方法 |
US7051327B1 (en) * | 2001-05-08 | 2006-05-23 | Gateway Inc. | System for providing data backup and restore with updated version by creating data package based upon configuration data application data and user response to suggestion |
CN102455915A (zh) * | 2010-10-18 | 2012-05-16 | 卓望数码技术(深圳)有限公司 | 一种分布式系统的自动化配置方法及服务器 |
CN102455936A (zh) * | 2010-11-25 | 2012-05-16 | 中标软件有限公司 | 集群的快速部署方法 |
CN106776148A (zh) * | 2016-12-30 | 2017-05-31 | 维沃移动通信有限公司 | 一种应用程序的试用方法及移动终端 |
CN108170448A (zh) * | 2017-12-26 | 2018-06-15 | 车智互联(北京)科技有限公司 | 一种自动化高效进行软件更新版本发布的系统 |
-
2018
- 2018-06-21 CN CN201810642045.7A patent/CN108984193A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7051327B1 (en) * | 2001-05-08 | 2006-05-23 | Gateway Inc. | System for providing data backup and restore with updated version by creating data package based upon configuration data application data and user response to suggestion |
CN1652512A (zh) * | 2004-02-04 | 2005-08-10 | 华为技术有限公司 | 设备升级方法 |
CN102455915A (zh) * | 2010-10-18 | 2012-05-16 | 卓望数码技术(深圳)有限公司 | 一种分布式系统的自动化配置方法及服务器 |
CN102455936A (zh) * | 2010-11-25 | 2012-05-16 | 中标软件有限公司 | 集群的快速部署方法 |
CN106776148A (zh) * | 2016-12-30 | 2017-05-31 | 维沃移动通信有限公司 | 一种应用程序的试用方法及移动终端 |
CN108170448A (zh) * | 2017-12-26 | 2018-06-15 | 车智互联(北京)科技有限公司 | 一种自动化高效进行软件更新版本发布的系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990033A (zh) * | 2019-10-21 | 2020-04-10 | 望海康信(北京)科技股份公司 | 远程升级方法及系统 |
CN110990033B (zh) * | 2019-10-21 | 2023-07-18 | 望海康信(北京)科技股份公司 | 远程升级方法及系统 |
CN110991970A (zh) * | 2019-12-11 | 2020-04-10 | 成都市赛力培物流科技有限公司 | 一种物流平台自动化运维管理方法 |
CN112083947A (zh) * | 2020-07-27 | 2020-12-15 | 上海云刹技术有限公司 | 一种供应链多语言环境的软件包发布方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8156388B2 (en) | Analysis leading to automatic action | |
CN104199666B (zh) | 一种应用程序动态配置方法及装置 | |
US9842042B2 (en) | Datacenter management computing system | |
US9998323B2 (en) | Datacenter configuration management tool | |
CN100395707C (zh) | 升级程序的方法 | |
CN108984193A (zh) | 软件服务部署方法 | |
US9485151B2 (en) | Centralized system management on endpoints of a distributed data processing system | |
TWI575362B (zh) | 備份方法、環境更新預先檢測方法及其系統 | |
US20140081916A1 (en) | Failover and recovery for replicated data instances | |
CN110134518B (zh) | 一种提高大数据集群多节点应用高可用性的方法及系统 | |
CN102455936A (zh) | 集群的快速部署方法 | |
US20210191826A1 (en) | Building system with ledger based software gateways | |
US20080235357A1 (en) | On-line configuration management system and method | |
CN110932914B (zh) | 部署方法、部署装置、混合云系统架构及计算机存储介质 | |
CN110912728B (zh) | 一种操作系统补丁批量自动化更新管理方法及系统 | |
US20160092194A1 (en) | Datacenter platform switching tool | |
JP2012068771A (ja) | バックアップ・リストア処理装置とバックアップ・リストア処理方法およびプログラム | |
CN105959363A (zh) | 一种自适应硬件配置的大数据集群部署方法 | |
CN111813683B (zh) | 一种通用的软件测试环境自动同步方法 | |
CN110795105A (zh) | 一种配电自动化主站系统自动编译部署方法与系统 | |
US9207928B2 (en) | Computer-readable medium, apparatus, and methods of automatic capability installation | |
CN110096226B (zh) | 磁盘阵列部署方法和装置 | |
CN105912371A (zh) | 一种基于cs模式部署自动化部署操作系统的方法 | |
CN111240700A (zh) | 一种跨网段服务器os部署系统及方法 | |
CN106681747A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20181211 |
|
WD01 | Invention patent application deemed withdrawn after publication |