CN107729019A - 版本部署的方法、装置、设备和计算机存储介质 - Google Patents
版本部署的方法、装置、设备和计算机存储介质 Download PDFInfo
- Publication number
- CN107729019A CN107729019A CN201710932199.5A CN201710932199A CN107729019A CN 107729019 A CN107729019 A CN 107729019A CN 201710932199 A CN201710932199 A CN 201710932199A CN 107729019 A CN107729019 A CN 107729019A
- Authority
- CN
- China
- Prior art keywords
- deployment
- version
- atom
- flow
- disposed
- 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
-
- 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
Abstract
本发明公开了一种版本部署的方法,所述版本部署的方法包括以下步骤:当检测到版本部署请求时,根据所述版本部署请求设置版本部署的部署流程;解析版本部署的部署流程,确定部署流程中包含的部署步骤;根据部署步骤调用预置原子库中的部署原子,并将部署原子配置生成部署流程的部署原子集合;当检测到版本部署执行命令时,获取所述执行命令中的执行信息,基于执行信息依次调用并执行部署原子集合中的部署原子,以完成版本部署的原子操作。本发明还公开了一种版本部署的装置、设备及计算机可读介质。本发明旨在通过版本部署的原子操作,减少版本部署过程中由人为操作导致的版本部署问题,提高版本部署的效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及版本部署的方法、装置、设备和计算机存储介质。
背景技术
现有的软件会根据用户的使用情况实时地进行调整,每一个系统或者软件都有对应的生命周期,在这个生命周期中需要不断地对软件进行维护和版本管理。
目前版本发布过程中,涉及到当前版本文件的获取、新版本文件的版本部署和版本文件的检测。目前版本文件的获取是由维护管理人员手工获取版本文件,人工版本文件的获取可能存在获取错误的可能性;在版本文件获取之后还对应有版本部署(版本部署是指将修改后的新的程序由运营维护人员部署至客户端或者服务器)和版本部署后或者版本周期中的回归测试(回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误),目前的版本部署和回归测试都是由人进行操作的,对系统进行一次版本更新,从简单的文件获取到版本部署、回归测试都需要系统的运营维护人员操作,每次进行版本发布都需要投入大量的人力,同时还可能会出现人工操作失误,使系统出现更大的问题。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种版本部署的方法、装置、设备和计算机存储介质,旨在通过版本部署的原子操作,减少版本部署过程中由人为操作导致的版本部署问题,提高版本部署的效率。
为实现上述目的,本发明提供一种版本部署的方法,版本部署的方法包括以下步骤:
当检测到版本部署请求时,根据版本部署请求设置版本部署的部署流程;
解析版本部署的部署流程,确定部署流程中包含的部署步骤;
根据部署步骤调用预置原子库中的部署原子,并将部署原子配置生成部署流程的部署原子集合;
当检测到版本部署执行命令时,获取执行命令中的执行信息,基于执行信息依次调用并执行部署原子集合中的部署原子,以完成版本部署的原子操作。
可选地,当检测到版本部署请求时,根据版本部署请求设置版本部署的部署流程的步骤之前,包括:
根据版本部署的部署步骤,确定执行部署步骤的逻辑语言,并根据逻辑语言创建部署原子;
将创建的部署原子进行校验,并将校验通过的部署原子保存,以生成预置原子库。
可选地,当检测到版本部署请求时,根据版本部署请求设置版本部署的部署流程的步骤包括:
当检测到版本部署请求时,获取版本部署的基础数据,并基于基础数据生成版本部署的配置文件;
根据版本部署的配置文件,设置版本部署的部署流程,以使运维人员根据部署流程设置原子操作。
可选地,根据部署步骤调用预置原子库中的部署原子,并将部署原子配置生成部署流程的部署原子集合的步骤包括:
根据部署步骤调用预置原子库中的部署原子,将完成单个部署步骤的单个和/或多个部署原子作为部署原子子集合;
判断部署原子子集合之间是否符合原子操作条件;
若部署原子子集合之间符合原子操作条件,则将部署原子子集合配置生成部署流程的部署原子集合。
可选地,判断部署原子子集合之间是否符合原子操作条件的步骤之后,包括:
若部署原子子集合之间不符合原子操作条件,则将部署原子子集合作为部署单元,以执行部署单元的原子操作;
当检测到部署单元的原子操作执行完成时,发送提示信息,以使运维人员根据部署流程触发该部署步骤的下一部署步骤对应的部署原子子集合。
可选地,当检测到版本部署执行命令时,获取执行命令中的执行信息,基于执行信息依次调用并执行部署原子集合中的部署原子,以完成版本部署的原子操作的步骤之后,包括:
当检测到版本发布的请求时,将在测试环境下部署完成的版本文件作为新版本文件;
获取新版本文件,将新版本文件在正式环境部署,以完成新版本文件发布。
可选地,获取新版本文件,将新版本文件在正式环境部署,以完成新版本文件发布的步骤之后,还包括:
实时地监测发布的新版本文件运行状态,当检测到新版本运行异常时,将新版本文件部署进行回滚,以避免新版本文件部署导致的误差。
为实现上述目的,本发明提供一种版本部署的装置,版本部署的装置包括:
检测设置模块,用于当检测到版本部署请求时,根据版本部署请求设置版本部署的部署流程;
解析确定模块,用于解析版本部署的部署流程,确定部署流程中包含的部署步骤;
调用配置模块,用于根据部署步骤调用预置原子库中的部署原子,并将部署原子配置生成部署流程的部署原子集合;
执行部署模块,用于当检测到版本部署执行命令时,获取执行命令中的执行信息,基于执行信息依次调用并执行部署原子集合中的部署原子,以完成版本部署的原子操作。
为实现上述目的,本发明提供一种版本部署的设备,版本部署的设备包括:存储器、处理器及存储在存储器上并可在处理器上运行的版本部署的程序,其中:
版本部署的程序被处理器执行时实现上述的版本部署的方法的步骤。
此外,为实现上述目的,本发明提供一种计算机存储介质,计算机存储介质上存储有版本部署的程序,版本部署的程序被处理器执行时实现上述的版本部署的方法的步骤。
本发明提供一种版本部署的方法、装置、设备和计算机可读度存储介质,在本发明版本部署的方法包括以下步骤:当检测到版本部署请求时,根据版本部署请求设置版本部署的部署流程;解析版本部署的部署流程,确定部署流程中包含的部署步骤;根据部署步骤调用预置原子库中的部署原子,并将部署原子配置生成部署流程的部署原子集合;当检测到版本部署执行命令时,获取执行命令中的执行信息,基于执行信息依次调用并执行部署原子集合中的部署原子,以完成版本部署的原子操作。通过与传统的版本部署方案相比本发明采用原子操作可以避免运维人员人工操作导致的部署问题,与单纯地创建原子通过原子操作进行版本部署相比,本发明中首先总结版本部署的部署步骤,创建部署原子生成预置原子库,在版本部署时可调用测试原子库中的部署原子,配置形成部署原子集合,实现版本部署的部署原子操作;避免了由运维人员进行人工版本部署导致的部署误差,提高版本部署的效率。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的服务器结构示意图;
图2为本发明版本部署的方法第一实施例的流程示意图;
图3为本发明版本部署的方法第二实施例的流程示意图;
图4为图2中版本部署的方法步骤S30的一实施例细化流程示意图;
图5为图2中版本部署的方法步骤S30的另一实施例的细化流程示意图;
图6为本发明版本部署的方法第三实施例的流程示意图;
图7为本发明版本部署的装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
由于现有技术在服务器或者终端中安装新的应用版本或者更新原有的应用版本时,均需要专业技术人员在该主机上的每一个逻辑环境中部署该应用版本,专业技术人员部署应用版本需要逐个文件逐个记录地处理,部署应用版本的效率低,且这种部署方式对专业技术人员的技术要求较高。以此同时,运维或开发人员在管理平台上生成相应文件,并根据不同的版本类型手动编写操作步骤,然后由晚班管理人员在凌晨操作实现版本部署。传统的这种方法,运维或开发人员手动编写操作步骤,不同运维或开发人员由于习惯或熟悉程度不同,写的部署文档操作步骤不一定合标准,且需要在运维人员手动操作,很容易漏操作步骤或者发生低级的误操作,从而导致无法实现版本更新的情况。
本发明实施例的主要解决方案是:由于现有的版本部署涉及到的操作较为复杂,自动化的版本部署实现较为困难,将版本部署的部署流程分解为不同的步骤,根据部署步骤,调用预置原子库中的部署原子,创建形成部署原子集合,并通过部署原子集合实现版本部署的原子操作,利用原子操作进行版本部署的自动化,本发明提供的版本部署自动化方案,使提高了版本部署的效率,避免了人为进行版本部署出现的错误操作,导致版本部署出错的情况。
需要补充说明的是:本发明中的版本部署不仅包括基本版本部署(基本版本部署是指:当前版本文件备份,新版本文件的部署,版本部署后的校验),还包括版本部署的细化或者延伸,版本文件的获取、回归测试、构建版本部署需要的目标环境(目标环境包括:组装测试环境、系统集成测试环境、自动化测试环境或者培训环境)文件拷贝和验证等,本方案中将版本文件在正式环境下的部署叫版本发布。
原子操作可以是一个步骤,也可以是多个操作步骤,但是其顺序不可以被打乱,也不可以被切割而只执行其中的一部分;将整个操作视作一个整体是原子性的核心特征;由于原子的不可分割性,每一个原子的中的步骤都是相对固定的,原子可以理解为执行在操作中不可被调用的逻辑语言(或者命令),在利用原子进行任务的原子操作时,大都需要单独的进行原子的制定,以实现任务的原子操作,因此现有的原子操作成本较高,在原子定制的过程中需要消耗大量的人力物力,以导致任务的原子操作并没有得到广泛地使用。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的服务器结构示意图。
本发明实施例服务器可以是PC,便携计算机等具有显示功能的设备,本发明中的服务器与终端通信连接,本发明中的终端可以是智能手机、平板电脑等可移动式终端设备,发明中服务器和/或终端用于提供版本部署或者版本发布的硬件条件,本发明版本部署的设备可以作为服务器和/或终端的一个组成部件,也可以作为独立的服务器和/或终端,现有的版本部署主要是在服务器上进行,由不同的终端进行程序的调用,以此本发明为了描述方便以服务器作为执行主体进行描述。
如图1所示,该服务器可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,服务器还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示屏的亮度。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,当然,服务器还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
本领域技术人员可以理解,图1中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及版本部署的应用程序。
在图1所示的服务器中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的版本部署的应用程序,并执行以下操作:
当检测到版本部署请求时,根据版本部署请求设置版本部署的部署流程;
解析版本部署的部署流程,确定部署流程中包含的部署步骤;
根据部署步骤调用预置原子库中的部署原子,并将部署原子配置生成部署流程的部署原子集合;
当检测到版本部署执行命令时,获取执行命令中的执行信息,基于执行信息依次调用并执行部署原子集合中的部署原子,以完成版本部署的原子操作。
进一步地,处理器1001可以调用存储器1005中存储的版本部署的应用程序,还执行以下操作:
当检测到版本部署请求时,根据版本部署请求设置版本部署的部署流程的步骤之前,包括:
根据版本部署的部署步骤,确定执行部署步骤的逻辑语言,并根据逻辑语言创建部署原子;
将创建的部署原子进行校验,并将校验通过的部署原子保存,以生成预置原子库。
进一步地,处理器1001可以调用存储器1005中存储的版本部署的应用程序,还执行以下操作:
当检测到版本部署请求时,根据版本部署请求设置版本部署的部署流程的步骤包括:
当检测到版本部署请求时,获取版本部署的基础数据,并基于基础数据生成版本部署的配置文件;
根据版本部署的配置文件,设置版本部署的部署流程,以使运维人员根据部署流程设置原子操作。
进一步地,处理器1001可以调用存储器1005中存储的版本部署的应用程序,还执行以下操作:
根据部署步骤调用预置原子库中的部署原子,并将部署原子配置生成部署流程的部署原子集合的步骤包括:
根据部署步骤调用预置原子库中的部署原子,将完成单个部署步骤的单个和/或多个部署原子作为部署原子子集合;
判断部署原子子集合之间是否符合原子操作条件;
若部署原子子集合之间符合原子操作条件,则将部署原子子集合配置生成部署流程的部署原子集合。
进一步地,处理器1001可以调用存储器1005中存储的版本部署的应用程序,还执行以下操作:
判断部署原子子集合之间是否符合原子操作条件的步骤之后,包括:
若部署原子子集合之间不符合原子操作条件,则将部署原子子集合作为部署单元,以执行部署单元的原子操作;
当检测到部署单元的原子操作执行完成时,发送提示信息,以使运维人员根据部署流程触发该部署步骤的下一部署步骤对应的部署原子子集合。
进一步地,处理器1001可以调用存储器1005中存储的版本部署的应用程序,还执行以下操作:
当检测到版本部署执行命令时,获取执行命令中的执行信息,基于执行信息依次调用并执行部署原子集合中的部署原子,以完成版本部署的原子操作的步骤之后,包括:
当检测到版本发布的请求时,将在测试环境下部署完成的版本文件作为新版本文件;
获取新版本文件,将新版本文件在正式环境部署,以完成新版本文件发布。
进一步地,处理器1001可以调用存储器1005中存储的版本部署的应用程序,还执行以下操作:
当检测到版本部署执行命令时,获取执行命令中的执行信息,基于执行信息依次调用并执行部署原子集合中的部署原子,以完成版本部署的原子操作的步骤之后,还包括:
实时地监测发布的新版本文件运行状态,当检测到新版本运行异常时,将新版本文件部署进行回滚,以避免新版本文件部署导致的误差。
参照图2,本发明一种版本部署的方法的第一实施例中,版本部署的方法包括:
步骤S10,当检测到版本部署请求时,根据版本部署请求设置版本部署的部署流程。
版本部署时运维人员在服务器上触发版本部署请求,服务器根据运维人员触发的版本部署请求,在显示界面上显示版本部署的任务单,以供运维人员输入任务单,服务器获取运维人员输入的任务单的部署任务(部署任务包括部署的目标环境构建、回归测试、版本文件信息等)和版本部署的基础数据生成配置文件(配置文件中包含相应的数据接口、配置文件和配置环境等),以使服务器根据配置文件中的部署任务和基础数据设置版本部署流程,即,服务器设置版本部署的流程节点,确定部署流程上设置的任务。具体地,在服务器确定部署流程时还包括:
步骤a、当检测到版本部署请求时,获取版本部署的基础数据,并基于基础数据生成版本部署的配置文件;
步骤b、根据版本部署的配置文件,设置版本部署的部署流程,以使运维人员根据部署流程设置原子操作。
步骤S20,解析版本部署的部署流程,确定部署流程中包含的部署步骤。
服务器解析部署流程,确定部署流程中包含的部署步骤(部署步骤:根据部署请求和部署任务确定,即部署步骤中包含版本文件获取、版本文件拷贝、单台或者多台设备的部署环境构建、部署的验证等步骤),在服务器确定部署步骤后,首先构建满足版本部署请求的目标环境,以使服务器根据目标环境的实际情况,确定版本部署的相关参数。
步骤S30,根据部署步骤调用预置原子库中的部署原子,并将部署原子配置生成部署流程的部署原子集合。
服务器根据部署步骤调用预置原子库中的部署原子(部署原子:部署原子是指用于完成部署任务的逻辑语言(或者命令),其中版本部署的部署原子包括:版本文件备份命令对应的部署原子、版本文件删除命令对应的部署原子和版本文件检测命令对应的部署原子等),将部署原子配置生成完成版本部署流程对应的部署原子集合。
步骤S40,当检测到版本部署执行命令时,获取执行命令中的执行信息,基于执行信息依次调用并执行部署原子集合中的部署原子,以完成版本部署的原子操作。
在服务器检测到版本部署的执行命令请求(执行命令中包含有版本部署的执行信息,即,调用的数据接口信息、文件位置信息和文件标识信息)时,服务器获取执行命令中的相关执行信息,基于执行信息依次调用并执行部署原子集合中的部署原子,以完成版本部署的原子操作,在版本部署后,生成版本部署的日志,以供查看版本部署的详细信息,在版本部署完成后运维人员只需要查看部署日志中的最终的结果,并对应地做出处理。
在本实施例中通过与传统的版本部署方案相比本发明采用原子操作可以避免运维人员人工操作导致的部署问题,本发明中首先总结版本部署的部署步骤,创建部署原子生成预置原子库,在版本部署时可调用测试原子库中的部署原子,配置形成部署原子集合,实现版本部署的部署原子操作;避免了由运维人员进行人工版本部署导致的部署误差,提高版本部署的效率。
进一步的,参照图3,本发明一种版本部署的方法第二实施例是在第一实施例的基础上提出的,与第一实施例的区别在于在本实施例中版本部署的方法还包括:
步骤S50,根据版本部署的部署步骤,确定执行部署步骤的逻辑语言,并根据逻辑语言创建部署原子。
步骤S60,将创建的部署原子进行校验,并将校验通过的部署原子保存,以生成预置原子库。
服务器根据版本部署涉及到部署步骤,确定完成该部署步骤涉及到逻辑语言(或者命令),并将对应的逻辑语言(或命令)作为创建部署原子。在创建部署原子后,服务器首先对单个的部署原子进行验证,在单个部署原子验证完成后,将校验通过的部署原子保存,以生成预置原子库。
例如,在一个简单的版本部署中,版本部署需要针对二个主服务器和二个备服务器上的TOMCAT(TOMCAT是一个轻量级应用服务器,在中小型系统和访问用户不是很多的场合下被普遍使用,是开发和调试程序的首选)下的WebApp(WebApp是指基于Web的系统和应用,其作用是向广大的最终用户发布一组复杂的内容和功能)目录部署版本文件包,并对其解压缩,执行启动命令对于以下固化步骤:
步骤a、备份当前版本文件包到对应日期备份目录;
步骤b、从版本日期目录获取新的应用版本文件包;
步骤c、登录每台服务器停止TOMCAT服务;
步骤d、登录每台服务器删除老的版本文件包;
步骤e、登录每台服务器将新包复制到WEBAPP目录
步骤f、登录每台服务器启动TOMCAT服务
对于以上步骤:
windows环境:(需要说明说明的是:下述为软件部署的系统环境)
COPY C:\tomcat\webapp\abc.war E:\Memo\20170808\
COPY X:\Ver\20170801\ABC.war E:\Ver\20170801\
C:\tomcat\webapp\
Cd c:\tomcat\bin
Shutdown.bat
Ps–ef|grep–i tomcat
Del C:\tomcat\webapp\abc.war
COPY E:\Ver\20170801\ABC.war C:\tomcat\webapp\
Cd c:\tomcat\bin
Startup.bat
Ps–ef|grep–i tomcat
通过创建6个部署原子,完成版本部署涉及的命令:(需要说明说明的是xxx表是的是配置文件中的信息逻辑语句等)
1.当前版本文件包备份(部署原子的格式:COPY xxx config1 xxx config2,其中,config1和config2为参数,分别为备份源文件和备份目标目录);
2.获取新的版本文件包到相应服务器(部署原子的格式:COPY xxx config3 xxxconfig4,其中,config3和config4为参数,分别为网络目录下的新版本文件包和当前服务器的对应目录);
3.停止相应服务器版本文件使用(部署原子的格式:Cd xxx、config5 xxx、config6、xxx config7;其中config5、config6和config7为参数,分别为TOMCAT的BIN目录路径,停止应用命令和检查进程命令);
4.删除相应服务器的当前版本文件包(部署原子的格式:del xxx config8;其中,config8为参数,为删除对象的路径和文件名):
5.复制新版本文件包至部署目录(部署原子的格式:COPY xxx config9 xxxconfig10;其中,config9和config10为参数,分别为当前服务器相应路径下新版本文件包文件名和部署目录)
6.启动相应服务器应用(Cd xxx config11、xxx config12、xxx config13;其中config11、config12和config13为参数,分别为TOMCAT的BIN目录路径,启动应用命令和检查进程命令)
部署原子的格式:
创建完成部署原子后,将部署原子进行验证,并创建一个自动化步骤集合;将上述6个原子,按照原子1至6的顺序排列。
创建变更任务,添加自动化步骤集合,并输入部署服务器1的config1、config2…config13这13个参数,作为子任务1,重复上述步骤,添加子任务2、3、4,分别输入部署服务器2、3、4的各13个参数;完成上述配置后,在版本包名称和路径不变的情况下,可以实现运维人员点击开始执行变更任务后,系统自动化执行自动化步骤集合完成服务器1的版本文件包更新后,再依次重复执行自动化步骤集合,以完成服务器2、3、4的版本部署(版本文件包更新),运维人员只需要查看最后的部署原子集合步骤集合执行结果即可。
将创建的部署原子保存至预置原子库,当检测到版本更新时,可以调用预置原子库中的部署原子。
在本实施例中根据版本部署的步骤设置版本部署的部署原子,并将部署原子保存至预置原子库中,在进行特定的版本文件部署时,可调用预置原子库中的部署原子完成原子部署的操作,提高了软件部署的效率,不需要反复创建部署原子,只需要修改部署原子中的参数,就可完成版本部署的操作,实现了版本部署的自动化。
进一步的,参照图4,在本实施例中本发明一种版本部署的方法的步骤S30的一实施例包括:
步骤S31,根据部署步骤调用预置原子库中的部署原子,将完成单个部署步骤的单个和/或多个部署原子作为部署原子子集合。
在服务器确定版本部署的步骤后,调用预置原子库中的部署原子,一个部署步骤可能包含一个单个和/或多个命令对应的部署原子,将完成一个部署步骤的部署原子作为一个部署原子子集合,即,版本部署中可能涉及到文件拷贝步骤的部署原子子集合,回归测试对应的部署步骤原子子集合和版本校验的部署原子子集合等。
步骤S32,判断部署原子子集合之间是否符合原子操作条件。
服务器根据部署流程顺序上各个部署原子子集合之间的调用关系,确定部署步骤中间是否需要中断,在真实环境版本部署前,需要在版本部署的测试环境下进行版本部署,以对部署文件进行测试,根据测试结果判断是否进行漏洞的修复,若需要进行修复这两个部署步骤之间就不符合原子操作的条件,即根据版本部署步骤之间的关系判断部署原子子集合之间是否符合原子操作条件。
步骤S33,若部署原子子集合之间符合原子操作条件,则将部署原子子集合配置生成部署流程的部署原子集合。
服务器中版本部署的部署原子子集合之间符合原子操作条件,则将部署原子子集合配置生成部署流程的部署原子集合,以用一个部署原子集合完成部署流程,版本部署出现错误时,可以快速地查找到对应的部署步骤。
在本实施例中将部署流程细化为部署步骤,可以快速准确地识别调用的部署原子,以此同时,可以使运维人员了解部署的基本流程,使版本部署的原子操作更加直观。
进一步的,参照图5,在本实施例中本发明一种版本部署的方法的步骤S30的另一实施例中,步骤S32之后还包括:
步骤S34,若部署原子子集合之间不符合原子操作条件,则将部署原子子集合作为部署单元,以执行部署单元的原子操作。
步骤S35,当检测到部署单元的原子操作执行完成时,发送提示信息,以使运维人员根据部署流程触发该部署步骤的下一部署步骤对应的部署原子子集合。
若部署原子子集合之间不符合原子操作条件,即,版本部署的部署步骤之间可能被打断,则服务器将部署原子子集合作为部署单元,以执行部署单元的原子操作,也就是说将版本部署的一个步骤形成的部署原子子集合,作为一个原子操作,当检测到部署单元的原子操作执行完成时,发送提示信息,以使运维人员根据部署流程触发该部署步骤的下一部署步骤对应的部署原子子集合,或运维人员根据步骤的执行结果,对版本文件进行调整,以再执行对应的部署步骤;因为版本部署后还可能进行人为的调整,这也是版本部署中无法完全自动化的一个原因,因此本实施例中采用半自动化的方式,根据部署步骤,单独地操作,操作完成后由运维人员确认后,调用下一部署步骤对应的部署原子子集合,进行下一步版本部署步骤。
在本实施例中将可以感觉版本部署的流程特点,将版本步骤的单独版本步骤作为一个原子操作进行,可以使版本的部署操作更加灵活。
进一步的,参照图6,本发明一种版本部署的方法第三实施例与其他实施例的区别在于,在本实施例中版本部署的方法还包括:
步骤S70,当检测到版本发布的请求时,将在测试环境下部署完成的版本文件作为新版本文件。
步骤S80,获取新版本文件,将新版本文件在正式环境部署,以完成新版本文件发布。
在终端检测到版本发布的请求时,将在测试环境下部署完成的版本文件作为新版本文件,获取新版本文件,终端将新版本文件在正式环境部署,具体地,版本发布的调用预置原子库中的部署原子,具体的实施方式可以采用第一实施例中的实施方式,通过配置原子集合,原子操作以完成新版本文件发布。
步骤S90,实时地监测发布的新版本文件运行状态,当检测到新版本运行异常时,将新版本文件部署进行回滚,以避免新版本文件部署导致的误差。
在版本文件发布后,服务器实时地监测发布的新版本的运行状态,当新版本的运行出现异常(运行出现异常:新版本文件出现不可补救的漏洞,文件不能兼容等的问题是)时,将备份的版本文件进行重新部署,删除新版本文件,即,实现部署的回滚,即,版本部署前还需要对客户端,服务器端上版本执行文件,数据库脚本等相关内容进行备份,保证由于部署失败的话可能根据备份的内容对部署进行回滚。如果向至关重要,还需要准备相关的回滚sql脚本(SQL脚本是使用一种规定SQL语言,依据SQL格式编写的".sql"文件,SQL脚本通常可以由SQL查询分析器来执行)。集成分支由于跟开发测试分支的服务器配置,数据库连接串的配置等还不尽相同,因此这些文件还需要在集成分支上面拦截出来后,单独进行一些修改和特殊处理。
在本实施例中根据版本部署的实际情况设置到版本部署,版本发布和应急处理,在保证版本部署自动化的同时,保证版本部署的灵活性。
参照图7,本发明一种版本部署的装置的一实施例中,版本部署的方法包括:
检测设置模块10,用于当检测到版本部署请求时,根据版本部署请求设置版本部署的部署流程。
版本部署时运维人员在服务器上触发版本部署请求,服务器检测设置模块10根据运维人员触发的版本部署请求,在显示界面上显示版本部署的任务单,以供运维人员输入任务单,服务器获取运维人员输入的任务单的部署任务(部署任务包括部署的目标环境构建、回归测试、版本文件信息等)和版本部署的基础数据生成配置文件,以使服务器根据配置文件中的部署任务和基础数据设置版本部署流程,即,服务器设置版本部署的流程节点,确定部署流程上设置的任务。具体地,在服务器确定部署流程时还包括:
步骤a、当检测到版本部署请求时,获取版本部署的基础数据,并基于基础数据生成版本部署的配置文件;
步骤b、根据版本部署的配置文件,设置版本部署的部署流程,以使运维人员根据部署流程设置原子操作。
解析确定模块20,用于解析版本部署的部署流程,确定部署流程中包含的部署步骤。
服务器解析部署流程,确定部署流程中包含的部署步骤(部署步骤:根据部署请求和部署任务确定,即部署步骤中包含版本文件获取、版本文件拷贝、单台或者多台设备的部署环境构建、部署的验证等步骤),在服务器解析确定模块20确定部署步骤后,首先构建满足版本部署请求的目标环境,以使服务器根据目标环境的实际情况,确定版本部署的相关参数。
调用配置模块30,用于根据部署步骤调用预置原子库中的部署原子,并将部署原子配置生成部署流程的部署原子集合。
服务器调用配置模块30根据部署步骤调用预置原子库中的部署原子(部署原子:部署原子是指用于完成部署任务的逻辑语言(或者命令),其中版本部署的部署原子包括:版本文件备份命令对应的部署原子、版本文件删除命令对应的部署原子和版本文件检测命令对应的部署原子等),将部署原子配置生成完成版本部署流程对应的部署原子集合。
执行部署模块40,用于当检测到版本部署执行命令时,获取执行命令中的执行信息,基于执行信息依次调用并执行部署原子集合中的部署原子,以完成版本部署的原子操作。
在服务器执行部署模块40检测到版本部署的执行命令请求(执行命令中包含有版本部署的执行信息,即,调用的数据接口信息、文件位置信息和文件标识信息)时,服务器获取执行命令中的相关执行信息,基于执行信息依次调用并执行部署原子集合中的部署原子,以完成版本部署的原子操作,在版本部署后,生成版本部署的日志,以供查看版本部署的详细信息,在版本部署完成后运维人员只需要查看部署日志中的最终的结果,并对应地做出处理。
在本实施例中通过与传统的版本部署方案相比本发明采用原子操作可以避免运维人员人工操作导致的部署问题,本发明中首先总结版本部署的部署步骤,创建部署原子生成预置原子库,在版本部署时可调用测试原子库中的部署原子,配置形成部署原子集合,实现版本部署的部署原子操作;避免了由运维人员进行人工版本部署导致的部署误差,提高版本部署的效率。
此外,本发明实施例还提出一种计算机存储介质。
计算机存储介质上存储有版本部署的程序,版本部署的程序被处理器执行时实现版本部署的方法的步骤。
其中,版本部署的程序被执行时所实现的方法可参照本发明版本部署的方法的各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种版本部署的方法,其特征在于,所述版本部署的方法包括以下步骤:
当检测到版本部署请求时,根据所述版本部署请求设置版本部署的部署流程;
解析版本部署的部署流程,确定部署流程中包含的部署步骤;
根据部署步骤调用预置原子库中的部署原子,并将部署原子配置生成部署流程的部署原子集合;
当检测到版本部署执行命令时,获取所述执行命令中的执行信息,基于执行信息依次调用并执行部署原子集合中的部署原子,以完成版本部署的原子操作。
2.如权利要求1所述的版本部署的方法,其特征在于,所述当检测到版本部署请求时,根据所述版本部署请求设置版本部署的部署流程的步骤之前,包括:
根据版本部署的部署步骤,确定执行部署步骤的逻辑语言,并根据逻辑语言创建部署原子;
将创建的部署原子进行校验,并将校验通过的部署原子保存,以生成预置原子库。
3.如权利要求1所述的版本部署的方法,其特征在于,所述当检测到版本部署请求时,根据所述版本部署请求设置版本部署的部署流程的步骤包括:
当检测到版本部署请求时,获取版本部署的基础数据,并基于基础数据生成版本部署的配置文件;
根据版本部署的配置文件,设置版本部署的部署流程,以使运维人员根据部署流程设置原子操作。
4.如权利要求1至3任意一项所述的版本部署的方法,其特征在于,所述根据部署步骤调用预置原子库中的部署原子,并将部署原子配置生成部署流程的部署原子集合的步骤包括:
根据部署步骤调用预置原子库中的部署原子,将完成单个部署步骤的单个和/或多个部署原子作为部署原子子集合;
判断部署原子子集合之间是否符合原子操作条件;
若部署原子子集合之间符合原子操作条件,则将部署原子子集合配置生成部署流程的部署原子集合。
5.如权利要求4所述的版本部署的方法,其特征在于,所述判断部署原子子集合之间是否符合原子操作条件的步骤之后,包括:
若部署原子子集合之间不符合原子操作条件,则将部署原子子集合作为部署单元,以执行部署单元的原子操作;
当检测到部署单元的原子操作执行完成时,发送提示信息,以使运维人员根据部署流程触发该部署步骤的下一部署步骤对应的部署原子子集合。
6.如权利要求1所述的版本部署的方法,其特征在于,所述当检测到版本部署执行命令时,获取所述执行命令中的执行信息,基于执行信息依次调用并执行部署原子集合中的部署原子,以完成版本部署的原子操作的步骤之后,包括:
当检测到版本发布的请求时,将在测试环境下部署完成的版本文件作为新版本文件;
获取新版本文件,将新版本文件在正式环境部署,以完成新版本文件发布。
7.如权利要求6所述的版本部署的方法,其特征在于,所述获取新版本文件,将新版本文件在正式环境部署,以完成新版本文件发布的步骤之后,还包括:
实时地监测发布的新版本文件运行状态,当检测到新版本运行异常时,将新版本文件部署进行回滚,以避免新版本文件部署导致的误差。
8.一种版本部署的装置,其特征在于,所述版本部署的装置包括:
检测设置模块,用于当检测到版本部署请求时,根据所述版本部署请求设置版本部署的部署流程;
解析确定模块,用于解析版本部署的部署流程,确定部署流程中包含的部署步骤;
调用配置模块,用于根据部署步骤调用预置原子库中的部署原子,并将部署原子配置生成部署流程的部署原子集合;
执行部署模块,用于当检测到版本部署执行命令时,获取所述执行命令中的执行信息,基于执行信息依次调用并执行部署原子集合中的部署原子,以完成版本部署的原子操作。
9.一种版本部署的设备,其特征在于,所述版本部署的设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的版本部署的程序,其中:
所述版本部署的程序被所述处理器执行时实现如权利要求1至7中任一项所述的版本部署的方法的步骤。
10.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有版本部署的程序,所述版本部署的程序被处理器执行时实现如权利要求1至7中任一项所述的版本部署的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710932199.5A CN107729019A (zh) | 2017-10-09 | 2017-10-09 | 版本部署的方法、装置、设备和计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710932199.5A CN107729019A (zh) | 2017-10-09 | 2017-10-09 | 版本部署的方法、装置、设备和计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107729019A true CN107729019A (zh) | 2018-02-23 |
Family
ID=61208575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710932199.5A Pending CN107729019A (zh) | 2017-10-09 | 2017-10-09 | 版本部署的方法、装置、设备和计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107729019A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108334336A (zh) * | 2017-10-10 | 2018-07-27 | 平安普惠企业管理有限公司 | 原子操作自动化方法、系统、装置和计算机存储介质 |
CN108958751A (zh) * | 2018-06-01 | 2018-12-07 | 优刻得科技股份有限公司 | 软件部署或维护的方法、装置、系统和存储介质 |
CN110275872A (zh) * | 2019-07-18 | 2019-09-24 | 中国银行股份有限公司 | 版本自动部署方法、装置、计算机设备和存储介质 |
CN111459506A (zh) * | 2020-03-02 | 2020-07-28 | 平安科技(深圳)有限公司 | 深度学习平台集群的部署方法、装置、介质及电子设备 |
CN112035365A (zh) * | 2020-09-01 | 2020-12-04 | 中国银行股份有限公司 | 支持多测试环境的版本部署方法及装置 |
CN112148329A (zh) * | 2020-09-18 | 2020-12-29 | 湖南联盛网络科技股份有限公司 | 代码版本自动化更新方法、装置、计算机设备及存储介质 |
CN113032049A (zh) * | 2021-04-13 | 2021-06-25 | 北京华胜天成科技股份有限公司 | 基于任务启动策略的应用系统部署方法及装置和电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339532A (zh) * | 2007-07-06 | 2009-01-07 | 中国银联股份有限公司 | 一种Web应用系统的自动化测试方法及装置 |
US20100281473A1 (en) * | 2009-04-29 | 2010-11-04 | Microsoft Corporation | Automated software deployment triggered by state differences in distributed systems |
US20140109037A1 (en) * | 2009-10-14 | 2014-04-17 | Vermeg Sarl | Automated Enterprise Software Development |
CN105159736A (zh) * | 2015-10-23 | 2015-12-16 | 武汉大学 | 一种支持性能分析的SaaS软件部署方案的构建方法 |
CN105867978A (zh) * | 2016-04-11 | 2016-08-17 | 平安科技(深圳)有限公司 | Ogg版本部署方法和系统 |
-
2017
- 2017-10-09 CN CN201710932199.5A patent/CN107729019A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339532A (zh) * | 2007-07-06 | 2009-01-07 | 中国银联股份有限公司 | 一种Web应用系统的自动化测试方法及装置 |
US20100281473A1 (en) * | 2009-04-29 | 2010-11-04 | Microsoft Corporation | Automated software deployment triggered by state differences in distributed systems |
US20140109037A1 (en) * | 2009-10-14 | 2014-04-17 | Vermeg Sarl | Automated Enterprise Software Development |
CN105159736A (zh) * | 2015-10-23 | 2015-12-16 | 武汉大学 | 一种支持性能分析的SaaS软件部署方案的构建方法 |
CN105867978A (zh) * | 2016-04-11 | 2016-08-17 | 平安科技(深圳)有限公司 | Ogg版本部署方法和系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108334336A (zh) * | 2017-10-10 | 2018-07-27 | 平安普惠企业管理有限公司 | 原子操作自动化方法、系统、装置和计算机存储介质 |
CN108958751A (zh) * | 2018-06-01 | 2018-12-07 | 优刻得科技股份有限公司 | 软件部署或维护的方法、装置、系统和存储介质 |
CN108958751B (zh) * | 2018-06-01 | 2020-09-04 | 优刻得科技股份有限公司 | 软件部署或维护的方法、装置、系统和存储介质 |
CN110275872A (zh) * | 2019-07-18 | 2019-09-24 | 中国银行股份有限公司 | 版本自动部署方法、装置、计算机设备和存储介质 |
CN111459506A (zh) * | 2020-03-02 | 2020-07-28 | 平安科技(深圳)有限公司 | 深度学习平台集群的部署方法、装置、介质及电子设备 |
CN111459506B (zh) * | 2020-03-02 | 2023-10-13 | 平安科技(深圳)有限公司 | 深度学习平台集群的部署方法、装置、介质及电子设备 |
CN112035365A (zh) * | 2020-09-01 | 2020-12-04 | 中国银行股份有限公司 | 支持多测试环境的版本部署方法及装置 |
CN112035365B (zh) * | 2020-09-01 | 2023-08-18 | 中国银行股份有限公司 | 支持多测试环境的版本部署方法及装置 |
CN112148329A (zh) * | 2020-09-18 | 2020-12-29 | 湖南联盛网络科技股份有限公司 | 代码版本自动化更新方法、装置、计算机设备及存储介质 |
CN113032049A (zh) * | 2021-04-13 | 2021-06-25 | 北京华胜天成科技股份有限公司 | 基于任务启动策略的应用系统部署方法及装置和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107729019A (zh) | 版本部署的方法、装置、设备和计算机存储介质 | |
US11023369B2 (en) | API driven continuous testing systems for testing disparate software | |
US8984489B2 (en) | Quality on submit process | |
US8230267B2 (en) | Automated software testing framework | |
US8918760B2 (en) | Test script generation for application image validation | |
KR102341154B1 (ko) | 모바일 장치들의 원격 구성을 허용하기 위해 모바일 장치들 상에 설치되는 고속 어플리케이션 | |
US8875102B1 (en) | Multiple browser architecture and method | |
CN107463362A (zh) | 基于多个Jenkins的持续部署的方法和系统 | |
CN107656872B (zh) | 软件测试方法、装置、设备和计算机存储介质 | |
JP2006099742A (ja) | 自動化されたテストケース実行に関して疎結合された自動化されたテストケース検証 | |
US7523447B1 (en) | Configurator using markup language | |
CN105389263A (zh) | 应用软件权限监控方法、系统及设备 | |
CN109408065A (zh) | 一种代码发布工具 | |
US8661414B2 (en) | Method and system for testing an order management system | |
CN109739704A (zh) | 一种接口测试方法、服务端及计算机可读存储介质 | |
CN110489347A (zh) | 基于git的版本管理方法、装置、设备及可读存储介质 | |
CN112596784B (zh) | 一种迭代版本部署方法及装置 | |
CN104484176B (zh) | 一种安卓系统窗口对象获取方法和装置 | |
KR101599471B1 (ko) | 소스 관리 장치, 시스템 및 방법, 컴퓨터 판독 가능한 기록 매체 | |
JP2009245066A (ja) | ソフトウェアマイグレーションシステム及び方法 | |
CN107203471B (zh) | 联调方法、服务平台及计算机存储介质 | |
US11366642B1 (en) | Change migration: processes for ensuring successful deployment of design changes | |
CN111767218B (zh) | 一种用于持续集成的自动化测试方法、设备及存储介质 | |
CN111538606B (zh) | 一种测试模拟Dubbo接口的方法、装置及设备 | |
CN105607878B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180223 |