实现项目分发和版本管理的应用发布方法及系统与流程
未命名
08-06
阅读:114
评论:0

1.本发明涉及信息处理技术领域,具体地,涉及一种基于业务流程管理(bpm)平台实现项目的分发和版本管理的应用发布系统,尤其涉及一种实现项目分发和版本管理的应用发布方法及系统。
背景技术:
2.用户有多个需要持续更新和运维的线上应用。每次更新代码后都需要进行手动打包、上传并发布的重复步骤,十分繁琐和浪费时间。
3.公开号为cn112613793a的发明专利,公开了一种基于bpm的项目成本信息自动分析及处理系统,包括业务流程管理系统bpm、企业资源计划管理系统erp和企业项目管理系统epm,所述的业务流程管理系统bpm分别与企业资源计划管理系统erp和企业项目管理系统epm通信连接,所述的企业资源计划管理系统erp与企业项目管理系统epm通信连接;所述的业务流程管理系统bpm,以流程驱动为核心,实现端到端全流程信息化管理;所述的企业资源计划管理系统erp采用标准化的业务流程和信息化的信息数据。
4.公开号为cn110363493a的发明专利,公开了一种业务流程管理系统,包括:注册模块,任务分配模块,操作模块,提供给所述已注册用户针对所述待办任务列表进行相应操作,以对所述待办任务列表中的待办任务进行处理;流程记录模块,更新对应的业务项目的处理进度;管理模块,提供给具有管理权限的管理人员对处理进度进行查看;提醒模块。
技术实现要素:
5.针对现有技术中的缺陷,本发明提供一种实现项目分发和版本管理的应用发布方法及系统。
6.根据本发明提供的一种实现项目分发和版本管理的应用发布方法及系统,所述方案如下:
7.一方面,提供一种实现项目分发和版本管理的应用发布方法,该方法包括:
8.登录步骤:通过自动化引擎登录中转机;
9.下载步骤:由所述中转机从发布源下载应用包;
10.存档步骤:在本地对应项目和版本号的目录下留下存档;
11.上传步骤:从中转机上传存于本地的应用包到目标端,若目标端有监控,在上传前关闭监控;
12.发布步骤:最后通过重启中间件或其他自定义脚本将新上传的应用对外发布,然后重新打开关闭的监控。
13.优选的,所述登录步骤中自动化引擎用于发出自动化操作的指令的虚拟机,根据既定的方案,自动通过ssh连接其他虚拟机或者通过https调用其他服务的rest接口在内的相关方式执行既定的自动化操作。
14.优选的,所述下载步骤的中转机为发布源和发布目标之间的中转站,存储要用于
发布的应用包,所述自动化引擎通过中转机进行应用包的传送和发布。
15.优选的,所述应用在发布时,通过自动化引擎将应用包从发布源下载到中转机上并存档后再上传到目标端上,然后上传并运行对应的发布脚本。
16.所述发布脚本包括默认后置脚本和自定义后置脚本,若用户不指定发布脚本,系统则根据中间件类型和操作系统类型指定默认的后置脚本;
17.而若用户使用自定义的脚本,则能够实现更加多样化的发布操作。
18.优选的,所述应用包在上传到目标端时,设计了执行账号用于发布应用,由用户指定一个执行账号用于在应用包分发完毕后登录目标端执行后置脚本,若不指定则使用分发应用包的账号;
19.在具体实现上,若检测到用户填写了执行账号,在上传完应用包后自动化引擎会操作中转机对目标端进行用户的切换。
20.优选的,所述方法还包括:
21.跨中转机的发布步骤:当系统检测到方案的发布源和目标端所属中转机不同的时,便会进入跨中转机发布步骤的分支;
22.在这种情况下需要发布的应用包会先通过发布源所在的中转机下载,然后在中转机间转发流转到目标端所在的中转机,在通过目标端所在中转机发送到目标端并进行发布的相关操作。
23.优选的,当应用发布上线后,若需要紧急回退时,自动化引擎便通过用户选择的项目版本号和所在项目来找到需要回退的应用包,然后复用所述上传步骤和发布步骤进行应用包的传送和发布。
24.优选的,设置一台核心中转机,该核心中转机仅用于存储中转机地址的路由,且只有被其他中转机读写的权限,自身没有访问他人的权限。
25.优选的,用户每次将应用包存储在中转机后就会向核心中转机写入新的应用包存储地址,若在默认中转机找不到需要回退的应用包,自动化引擎前往核心中转机查询指定回退版本号对应的应用包所在的中转机地址并前往该中转机拿取所需应用包。
26.另一方面,提供了一种实现项目分发和版本管理的应用发布系统,该系统包括:
27.登录模块:通过自动化引擎登录中转机;
28.下载模块:由所述中转机从发布源下载应用包;
29.存档模块:在本地对应项目和版本号的目录下留下存档;
30.上传模块:从中转机上传存于本地的应用包到目标端,若目标端有监控,在上传前关闭监控;
31.发布模块:最后通过重启中间件或其他自定义脚本将新上传的应用对外发布,然后重新打开关闭的监控。
32.与现有技术相比,本发明具有如下的有益效果:
33.1、在技术改进方面,本发明通过基于开源业务流程管理项目activiti自主研发的自动化引擎,实现了在复数个目标端发布、回退、版本控制指定工程项目的功能,全程自动化完成,无需手动进行操作,实现了用户无感知的效果;
34.2、支持用户根据自己的业务需求配置个性化的发布方案,用户选择自己配置的发布方案后即可一键执行,系统会根据用户配置的发布方案自动完成传送工程包、发布、版本
管理、回退等功能;
35.3、在工程成功方面,基于业务流程管理平台,通过设计、编码、全面测试及若干版本迭代后,成功实现了基本功能和基于该基本功能的衍生功能。在测试过程中得到用户的好评,提高了用户的生产效率。
附图说明
36.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
37.图1为本发明整体结构示意图;
38.图2为项目工程发布功能示意图;
39.图3为访问通路选择示意图;
40.图4为项目工程回退功示意图;
41.图5为项目工程回退功示意图;
42.图6为应用包上传示意图;
43.图7为应用包回退示意图;
44.图8为中转机地址路由数据结构示意图。
具体实施方式
45.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
46.本发明实施例提供了一种实现项目分发和版本管理的应用发布方法,基于业务流程管理平台(本项目使用activiti平台)实现工程项目可以在复数个目标端发布并上线,且支持历史项目包的回退。
47.用户只需配置好必要的发布源和目标端信息并保存该方案,以后便可“一键发布”。通过选择对应的项目包版本号,也可以实现“一键发布”过去版本的项目包,也即“一键回退”。参照图1所示,本方法实现应用发布、版本控制和回退功能,具体步骤如下:
48.登录步骤:通过自动化引擎登录中转机;
49.下载步骤:由所述中转机从发布源下载应用包;
50.存档步骤:在本地对应项目和版本号的目录下留下存档;
51.上传步骤:从中转机上传存于本地的应用包到目标端,若目标端有监控,在上传前关闭监控;
52.发布步骤:最后通过重启中间件或其他自定义脚本将新上传的应用发布出去,然后重新打开之前关闭的监控。
53.具体地,自动化引擎:是一台用于发出自动化操作的指令的虚拟机,其主要工作是根据既定的方案,自动通过ssh连接其他虚拟机或者通过https调用其他服务的rest接口等方式执行既定的自动化操作。
54.中转机:即发布中转站,是一台存储空间较大的虚拟机。其主要功能是作为发布源
和发布目标之间的中转站,存储要用于发布的应用包,自动化引擎通过中转机进行应用包的传送和发布的。
55.这样做的好处是安全风险较小,可以根据运营节点和用户类别将访问权限分发给各个中转机,而不需要将风险集中在自动化引擎上。自动化引擎只需要有访问各个中转机的权限即可。
56.项目工程发布功能设计:
57.应用发布的大致思路是通过自动化引擎将应用包从发布源下载到中转机上并存档后再上传到目标端上,然后上传并运行对应的发布脚本以实现发布的功能。
58.参照图2所示,用户只需要进入实现配置好的发布方案中,点击发布,并选择需要发布的节点即可自动进行传送应用包,备份,重启中间件发布等一系列操作。
59.具体实现上,在每次将应用包上传到目标端之前,都会首先上传应用包的md5文件到目标目录并进行md5校验,检查需要上传的应用包和目标端已经存在的应用包是否一致,若一致则不再继续进行发布,防止出现重复发布浪费资源的情况。
60.另外,由于宝之云网络(基于宝之云业务需求定制化自主研发的网络架构)分为企业云和私有云,并且各自的网段又分为管理网和业务网,以此来划分不同的业务需求和用户组别,提高网络的安全性。所以自动化引擎和中转机,中转机和发布源目标端之间需要相关的逻辑以选择和获取正确的网络访问地址,具体访问通路选择可以参考图3所示。
61.后置脚本功能:
62.发布脚本即后置脚本是在应用包已经传送到目标端后运行的脚本,主要功能是实现发布。本系统支持默认后置脚本和自定义后置脚本两种模式,若用户不指定后置脚本,系统会根据中间件类型和操作系统类型指定默认的后置脚本。
63.以linux下的tomcat后置脚本为例,默认的后置脚本主要的功能就是重启tomcat帮助应用发布:
64.#!/bin/bash
65.#function:autodeploy tomcat webapp
66.function init()
67.{
68.warfile="$1"
69.appname=${warfile%.*}
70.}
71.function deploy()
72.{
73.sh../bin/shutdown.sh
74.echo"waiting..."
75.sleep 5
76.if[-d$appname]
[0077]
then
[0078]
echo"##########delete$appname##########"
[0079]
rm-rf$appname
[0080]
fi
[0081]
sh../bin/startup.sh
[0082]
}
[0083]
function main_process()
[0084]
{
[0085]
init$1
[0086]
deploy
[0087]
}
[0088]
main_process$1
[0089]
而若用户使用自定义的脚本,则可以实现更加丰富和个性化的发布操作。比如在发布前将当前版本的项目打包存档以及停止tomcat之后通过ps命令确认停止否则直接强制终止tomcat进程等。
[0090]
执行账号功能:
[0091]
应用包在上传到目标端的时候,往往使用的是用于发布应用的专用账号,如was,这样的账号有些时候没有权限或不适合运行后置脚本。
[0092]
针对这一需求,本系统设计了执行账号的功能,来帮助用户进一步地细分权限。用户可以指定一个执行账号(不指定则使用分发应用包的账号)用于在应用包分发完毕后登录目标端执行后置脚本。
[0093]
具体实现上,若检测到用户填写了执行账号。在上传完应用包后自动化引擎会操作中转机对目标端进行以下操作以进行用户的切换。
[0094]
su-[0095]
${inner_sys10133_deploymentrootpasswords}
[0096]
su-${inner_sys10133_deploymentexecusernames}
[0097]
项目工程回退功能:
[0098]
当用户将项目发布上线后,出现重大bug等原因导致需要紧急回退到项目之前的版本时,本系统同样提供了“一键回退”的功能。用户只需在发布方案的页面中选择对应的回退版本号点击“回退”,之后选择需要回退的目标端即可,参照图4和图5所示。
[0099]
每次项目工程发布的时候,自动化引擎都会将需要发布的应用包从发布源下载到中转机上,在这个时候中转机会将这些下载下来的应用包在本地的对应项目的文件夹中留下一份基于创建时间命名的备份。
[0100]
每次项目工程发布的时候,自动化引擎都会将需要发布的应用包从发布源下载到中转机上,在这个时候中转机会将这些下载下来的应用包在本地的对应项目的文件夹中留下一份基于创建时间命名的备份。
[0101]
当用户需要回退的时候,自动化引擎便可通过用户选择的项目版本号(由创建时间组成)和所在项目来找到需要回退的应用包,然后复用所述上传步骤和发布步骤进行应用包的传送和发布。
[0102]
跨中转站项目工程发布:
[0103]
项目工程的发布和回退都是自动化引擎通过发布中转站去实现的。平台根据节点调用自动化引擎,自动化引擎只有访问自己所在节点中转机的权限,而中转机又只有访问
自己所在云区的虚拟机的权限。这样就做到了权限的控制,提高了网络的可靠性。
[0104]
但是这样做同时也会增加系统的局限性。项目工程的发布源和目标端必须都在一台中转机可以访问的云区范围内,发布才能成功。若某个用户同时在不同的节点或云区有需要发布的目标端,则需要在多个节点布置发布源机器并将需要更新的代码打包传送到其上,大大提高了发布的工作量。
[0105]
为了解决上述问题,我们开发了跨中转站的项目工程发布功能。在保持了原有的权限控制的基础上提供了跨中转机的发布功能,并竟可能地避免了资源的浪费,如同一个用于版本控制的项目包在不同中转机的重复存放等。
[0106]
具体实现参照图6和图7所示,当系统检测到方案的发布源和目标端所属中转机不同的时候便会进入跨中转机发布功能的分支。在这种情况下需要发布的应用包会先通过发布源所在的中转机下载,然后在中转机间转发流转到目标端所在的中转机,在通过目标端所在中转机发送到目标端并进行发布的相关操作。
[0107]
使用这种发布的思路,自动化引擎的权限依旧,中转机也只需要增加访问其他中转机的权限,而不会影响它们访问虚拟机的权限,安全性不会下降。
[0108]
为了避免重复保存历史版本的应用包,造成存储资源的浪费,应用包只在一台中转机上进行存储(第一台目标端所在中转机)。作为替代,为了防止该项目的其他目标端回退的时候找不到需要的应用包,我们增加了一台核心中转机,该中转机仅用于存储中转机地址的路由资源占用较小,且只有被其他中转机读写的权限,自身没有访问他人的权限,也较为安全。具体的中转机地址路由数据结构如图8所示。用户每次将应用包存储在中转机后就会向核心中转机写入新的应用包存储地址,若在默认中转机找不到需要回退的应用包,自动化引擎就会前往核心中转机查询指定回退版本号对应的应用包所在的中转机地址并前往该中转机拿取所需应用包。
[0109]
本发明实施例提供了一种实现项目分发和版本管理的应用发布方法及系统,实现了在复数个目标端发布、回退、版本控制指定工程项目的功能,全程自动化完成,无需手动进行操作,实现了用户无感知的效果;支持用户根据自己的业务需求配置个性化的发布方案,用户选择自己配置的发布方案后即可一键执行,系统会根据用户配置的发布方案自动完成传送工程包、发布、版本管理、回退等功能;在工程成功方面,基于业务流程管理平台,通过设计、编码、全面测试及若干版本迭代后,成功实现了基本功能和基于该基本功能的衍生功能。在测试过程中得到用户的好评,提高了用户的生产效率。
[0110]
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
[0111]
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本技术的实施例和实施例中的特征可以任意相
互组合。
技术特征:
1.一种实现项目分发和版本管理的应用发布方法,其特征在于,包括:登录步骤:通过自动化引擎登录中转机;下载步骤:由所述中转机从发布源下载应用包;存档步骤:在本地对应项目和版本号的目录下留下存档;上传步骤:从中转机上传存于本地的应用包到目标端,若目标端有监控,在上传前关闭监控;发布步骤:最后通过重启中间件或其他自定义脚本将新上传的应用对外发布,然后重新打开关闭的监控。2.根据权利要求1所述的实现项目分发和版本管理的应用发布方法,其特征在于,所述登录步骤中自动化引擎用于发出自动化操作的指令的虚拟机,根据既定的方案,自动通过ssh连接其他虚拟机或者通过https调用其他服务的rest接口在内的相关方式执行既定的自动化操作。3.根据权利要求1所述的实现项目分发和版本管理的应用发布方法,其特征在于,所述下载步骤的中转机为发布源和发布目标之间的中转站,存储要用于发布的应用包,所述自动化引擎通过中转机进行应用包的传送和发布。4.根据权利要求1所述的实现项目分发和版本管理的应用发布方法,其特征在于,所述应用在发布时,通过自动化引擎将应用包从发布源下载到中转机上并存档后再上传到目标端上,然后上传并运行对应的发布脚本;所述发布脚本包括默认后置脚本和自定义后置脚本,若用户不指定发布脚本,则系统根据中间件类型和操作系统类型指定默认的后置脚本;而若用户使用自定义的脚本,则能够实现更加多样化的发布操作。5.根据权利要求1所述的实现项目分发和版本管理的应用发布方法,其特征在于,所述应用包在上传到目标端时,设计了执行账号用于发布应用,由用户指定一个执行账号用于在应用包分发完毕后登录目标端执行后置脚本,若不指定则使用分发应用包的账号;在具体实现上,若检测到用户填写了执行账号,在上传完应用包后自动化引擎会操作中转机对目标端进行用户的切换。6.根据权利要求1所述的实现项目分发和版本管理的应用发布方法,其特征在于,所述方法还包括:跨中转机的发布步骤:当系统检测到方案的发布源和目标端所属中转机不同的时,便会进入跨中转机发布步骤的分支;在这种情况下需要发布的应用包会先通过发布源所在的中转机下载,然后在中转机间转发流转到目标端所在的中转机,在通过目标端所在中转机发送到目标端并进行发布的相关操作。7.根据权利要求1所述的实现项目分发和版本管理的应用发布方法,其特征在于,当应用发布上线后,若需要紧急回退时,自动化引擎便通过用户选择的项目版本号和所在项目来找到需要回退的应用包,然后复用所述上传步骤和发布步骤进行应用包的传送和发布。8.根据权利要求7所述的实现项目分发和版本管理的应用发布方法,其特征在于,设置一台核心中转机,该核心中转机仅用于存储中转机地址的路由,且只有被其他中转机读写的权限,自身没有访问他人的权限。
9.根据权利要求8所述的实现项目分发和版本管理的应用发布方法,其特征在于,用户每次将应用包存储在中转机后向核心中转机写入新的应用包存储地址,若在默认中转机找不到需要回退的应用包,自动化引擎就会前往核心中转机查询指定回退版本号对应的应用包所在的中转机地址并前往该中转机拿取所需应用包。10.一种实现项目分发和版本管理的应用发布系统,其特征在于,包括:登录模块:通过自动化引擎登录中转机;下载模块:由所述中转机从发布源下载应用包;存档模块:在本地对应项目和版本号的目录下留下存档;上传模块:从中转机上传存于本地的应用包到目标端,若目标端有监控,在上传前关闭监控;发布模块:最后通过重启中间件或其他自定义脚本将新上传的应用对外发布,然后重新打开关闭的监控。
技术总结
本发明提供了一种实现项目分发和版本管理的应用发布方法及系统,涉及信息处理技术领域,该方法包括:登录步骤:通过自动化引擎登录中转机;下载步骤:由所述中转机从发布源下载应用包;存档步骤:在本地对应项目和版本号的目录下留下存档;上传步骤:从中转机上传存于本地的应用包到目标端,若目标端有监控,在上传前关闭监控;发布步骤:最后通过重启中间件或其他自定义脚本将新上传的应用发布出去,然后重新打开之前关闭的监控。本发明能够通过基于业务流程管理平台的自动化实现一键发布的效果。效果。效果。
技术研发人员:高辰良 周佳俊 王磊 王建纲 胡洋 伍治平 成名
受保护的技术使用者:上海宝信软件股份有限公司
技术研发日:2022.01.26
技术公布日:2023/8/5
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种药材分离装置的制作方法 下一篇:线缆端头的制作方法