CN111538525A - 一种用于程序发布的快速迭代与回滚方法 - Google Patents
一种用于程序发布的快速迭代与回滚方法 Download PDFInfo
- Publication number
- CN111538525A CN111538525A CN202010201684.7A CN202010201684A CN111538525A CN 111538525 A CN111538525 A CN 111538525A CN 202010201684 A CN202010201684 A CN 202010201684A CN 111538525 A CN111538525 A CN 111538525A
- Authority
- CN
- China
- Prior art keywords
- project
- release
- jenkins
- task
- item
- 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.)
- Granted
Links
Images
Classifications
-
- 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
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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种用于程序发布的快速迭代与回滚方法,通过分布式任务队列框架,使用系统自动从gitlab上获取最新的版本号,同时系统会记录jenkins中该项目的上一次发布成功的版本号,采用ajax对tag实时拉取和系统实时统计当前发布次数的趋势图的方法,实现任务在执行等待期间,页面操作不受影响;项目的版本号和历史版本号一目了然;保证版本号的实时更新与显示;直观地了解近期任务发布的数量变化等有益效果。
Description
技术领域
本发明涉及信息管理领域,尤其涉及一种用于程序发布的快速迭代与回滚方法。
背景技术
现如今,随着科技的发展,人们对办公质量的要求提升,互联网上出现了许多任务发布系统,以方便办公人员和管理人员的日常办公。目前互联网上的任务发布系统主要是用来办公人员对任务进行发布,管理人员接收和下达任务,公司人员可以通过使用PC端和移动端来进行处理日常的任务,每个任务都可以设定一定的时间,可一个或多个任务一起进行,员工可根据任务的优先级来进行处理,同时上级只要登录系统就能简单明了的看见员工的任务类型、任务名称、任务状态、员工任务进度、完成任务的截止时间等相关信息。
现阶段技术存在以下问题:
(1)当发布任务过多时,系统后台的任务等待队列过长,导致等待时间延长;
(2)当管理人员对任务进行管理时,无法对项目的具体基础数据进行便捷统计;
(3)没有合理有效的方法对办公人员的项目申请进行管理,对任务发布进入等待队列进行改进。
发明内容
本发明的目的在于,针对上述问题,提供了一种用于程序发布的快速迭代与回滚方法。
本发明的发明目的是通过以下技术方案实现的:一种用于程序发布的快速迭代与回滚方法,包括以下步骤:
S1.研发人员发布项目,其中步骤S1还包括以下子步骤:
S101.研发人员进行申请发布;
S102.系统校检历史记录,判断有无待验证项目,当有待验证项目时,需要研发人员进行确认更新;
S103.当无验证项目时,研发人员通过搜索运维管理系统中的项目数据,选择需要发布的项目;
S104.当研发人员在系统中选择完需要发布的项目后,系统自动从gitlab上获取最新的版本号,用于记录本次发布,同时系统记录jenkins中该项目的上一次发布成功的版本号,用于项目回滚;
S105.发布项目提交;
S2.研发人员提交项目发布申请后,管理人员收到消息通知,提示有新的发版申请;
S3.管理人员点击发布按钮,系统会将本次的发布提交到系统后台分布式任务系统,后台通过调用jenkins接口,将消息提交给jenkins,并在jenkins 编译构建之后调取ansible脚本执行程序部署上线;
S4.当消息发布不成功时,管理员可执行项目回滚和重新发布,重复步骤S5和步骤S6;
S5.当jenkins 构建和发布整个流程都结束后,系统会实时获取项目发布成功与否的消息,并通过页面进行展示和对用户进行消息通知;
S6.系统通过定时任务,将jenkins中新增的各项目的在线版本号与发布时间更新到运维管理系统数据库中;
S7.系统实时统计当前发布次数的趋势图并通过页面进行展示。
所述的步骤S1之前还包括预步骤S0,所述的步骤S0包括配置jenkins和编排ansible脚本,将预先需要发布的程序通过jenkins与ansible配置完成。
所述的布式任务系统为基于Python开发的一个分布式任务队列框架,采用celery异步实现,通过使用任务队列的方式在分布的机器、进程或线程上执行任务调度,防止任务在执行等待期间,页面操作不受影响。
所述的步骤S103,还包括判断是否编辑修改项目,具体步骤为:
S1031.研发人员选择编辑修改功能;
S1032.系统对用户信息进行身份验证,验证失败则拒绝编辑;
S1033.身份验证成功后,系统对需要进行编辑修改的项目进行项目发布状态验证,验证失败则此项目已发布,拒绝编辑;
S1034.项目发布状态验证成功,研发人员对项目进行编辑修改,并将编辑修改好的项目发送到系统,系统对项目进行选取。
本发明的有益效果:
(1)发布任务系统采用celery异步实现,通过分布式任务队列框架,支持使用任务队列的方式在分布的机器/进程/线程上执行任务调度使任务在执行等待期间,页面操作不受影响;
(2) 在系统中选择完需要发布的项目后,系统会自动从gitlab上获取最新的版本号(用作本次发布),同时系统会记录jenkins中该项目的上一次发布成功的版本号(用作回滚),项目的版本号和历史版本号一目了然。
(3)tag实时拉取采用ajax实现,通过调取系统view封装的接口,实时获取最新数据,保证版本号的实时更新与显示;
(4)系统实时统计当前发布次数的趋势图并通过页面进行展示,能够让管理员直观地了解近期任务发布的数量变化。
附图说明
图1为本发明的用户的系统流程框图;
图2为本发明的管理员的系统流程框图;
图3为本发明的分布式任务系统的系统架构图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图说明本发明的具体实施方式。
如图1、图2,一种用于程序发布的快速迭代与回滚方法,包括以下步骤:
S1.研发人员发布项目,其中步骤S1还包括以下子步骤:
S101.研发人员进行申请发布;
S102.系统校检历史记录,判断有无待验证项目,当有待验证项目时,需要研发人员进行确认更新;
S103.当无验证项目时,研发人员通过搜索运维管理系统中的项目数据,选择需要发布的项目;
S104.当研发人员在系统中选择完需要发布的项目后,系统自动从gitlab上获取最新的版本号,用于记录本次发布,同时系统记录jenkins中该项目的上一次发布成功的版本号,用于项目回滚;
S105.发布项目提交;
S2.研发人员提交项目发布申请后,管理人员收到消息通知,提示有新的发版申请;
S3.管理人员点击发布按钮,系统会将本次的发布提交到系统后台分布式任务系统,后台通过调用jenkins接口,将消息提交给jenkins,并在jenkins 编译构建之后调取ansible脚本执行程序部署上线;
S4.当消息发布不成功时,管理员可执行项目回滚和重新发布,重复步骤S5和步骤S6;
S5.当jenkins 构建和发布整个流程都结束后,系统会实时获取项目发布成功与否的消息,并通过页面进行展示和对用户进行消息通知;
S6.系统通过定时任务,将jenkins中新增的各项目的在线版本号与发布时间更新到运维管理系统数据库中;
S7.系统实时统计当前发布次数的趋势图并通过页面进行展示。
所述的步骤S1之前还包括预步骤S0,所述的步骤S0包括配置jenkins和编排ansible脚本,将预先需要发布的程序通过jenkins与ansible配置完成。
如图3,所述的分布式任务系统为基于Python开发的一个分布式任务队列框架,采用celery异步实现,通过使用任务队列的方式在分布的机器、进程或线程上执行任务调度,防止任务在执行等待期间,页面操作不受影响。
所述的步骤S103,包括判断是否编辑修改项目,具体步骤为:
S1031.研发人员选择编辑修改功能;
S1032.系统对用户信息进行身份验证,验证失败则拒绝编辑;
S1033.身份验证成功后,系统对需要进行编辑修改的项目进行项目发布状态验证,验证失败则此项目已发布,拒绝编辑;
S1034.项目发布状态验证成功,研发人员对项目进行编辑修改,并将编辑修改好的项目发送到系统,系统对项目进行选取。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (4)
1.一种用于程序发布的快速迭代与回滚方法,其特征在于,包括以下步骤:
S1.研发人员发布项目,其中步骤S1还包括以下子步骤:
S101.研发人员进行申请发布;
S102.系统校检历史记录,判断有无待验证项目,当有待验证项目时,需要研发人员进行确认更新;
S103.当无验证项目时,研发人员通过搜索运维管理系统中的项目数据,选择需要发布的项目;
S104.当研发人员在系统中选择完需要发布的项目后,系统自动从gitlab上获取最新的版本号,用于记录本次发布,同时系统记录jenkins中该项目的上一次发布成功的版本号,用于项目回滚;
S105.发布项目提交;
S2.研发人员提交项目发布申请后,管理人员收到消息通知,提示有新的发版申请;
S3.管理人员点击发布按钮,系统会将本次的发布提交到系统后台分布式任务系统,后台通过调用jenkins接口,将消息提交给jenkins,并在jenkins 编译构建之后调取ansible脚本执行程序部署上线;
S4.当消息发布不成功时,管理员可执行项目回滚和重新发布,重复步骤S5和步骤S6;
S5.当jenkins 构建和发布整个流程都结束后,系统会实时获取项目发布成功与否的消息,并通过页面进行展示和对用户进行消息通知;
S6.系统通过定时任务,将jenkins中新增的各项目的在线版本号与发布时间更新到运维管理系统数据库中;
S7.系统实时统计当前发布次数的趋势图并通过页面进行展示。
2.根据权利要求1所述的一种用于程序发布的快速迭代与回滚方法,其特征在于,所述的步骤S1之前还包括预步骤S0,所述的步骤S0包括配置jenkins和编排ansible脚本,将预先需要发布的程序通过jenkins与ansible配置完成。
3.根据权利要求1所述的一种用于程序发布的快速迭代与回滚方法,其特征在于,所述的分布式任务系统为一个分布式任务队列框架,采用celery异步实现,通过使用任务队列的方式在分布的机器、进程或线程上执行任务调度,防止任务在执行等待期间,页面操作不受影响。
4.根据权利要求1所述的一种用于程序发布的快速迭代与回滚方法,其特征在于,所述的步骤S103,还包括判断是否编辑修改项目,具体步骤为:
S1031.研发人员选择编辑修改功能;
S1032.系统对用户信息进行身份验证,验证失败则拒绝编辑;
S1033.身份验证成功后,系统对需要进行编辑修改的项目进行项目发布状态验证,验证失败则此项目已发布,拒绝编辑;
S1034.项目发布状态验证成功,研发人员对项目进行编辑修改,并将编辑修改好的项目发送到系统,系统对项目进行选取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010201684.7A CN111538525B (zh) | 2020-03-20 | 2020-03-20 | 一种用于程序发布的快速迭代与回滚方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010201684.7A CN111538525B (zh) | 2020-03-20 | 2020-03-20 | 一种用于程序发布的快速迭代与回滚方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111538525A true CN111538525A (zh) | 2020-08-14 |
CN111538525B CN111538525B (zh) | 2022-09-02 |
Family
ID=71978674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010201684.7A Active CN111538525B (zh) | 2020-03-20 | 2020-03-20 | 一种用于程序发布的快速迭代与回滚方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111538525B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112035161A (zh) * | 2020-08-31 | 2020-12-04 | 上海识装信息科技有限公司 | 一种小程序发布校验的方法及并行发布的方法 |
CN112202858A (zh) * | 2020-09-22 | 2021-01-08 | 苏宁消费金融有限公司 | 基于celery分布式调度框架的jenkins集群管理方法和系统 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101174208A (zh) * | 2007-11-28 | 2008-05-07 | 山东浪潮齐鲁软件产业股份有限公司 | 一种软件生产线平台的实现方法 |
CN101635640A (zh) * | 2009-09-04 | 2010-01-27 | 江苏天智互联科技有限公司 | Web网站系统服务器终端程序的版本自动发布方法 |
US20130047138A1 (en) * | 2011-08-19 | 2013-02-21 | Daniel P. Radez | Systems and methods for building and distributing software packages |
CN104423960A (zh) * | 2013-09-10 | 2015-03-18 | 阿里巴巴集团控股有限公司 | 一种项目持续集成的方法及系统 |
CN104639374A (zh) * | 2015-03-03 | 2015-05-20 | 上海瀚银信息技术有限公司 | 一种应用程序部署管理系统 |
CN107621944A (zh) * | 2017-09-22 | 2018-01-23 | 天翼电子商务有限公司 | 基于自动化运维的持续集成流水线系统及其方法 |
CN108241493A (zh) * | 2018-01-09 | 2018-07-03 | 政采云有限公司 | 分布式软件系统的自动化持续集成与交付方法、装置和系统 |
CN108268308A (zh) * | 2018-01-22 | 2018-07-10 | 广州欧赛斯信息科技有限公司 | 一种基于容器平台的持续集成方法、系统及装置 |
CN109725908A (zh) * | 2017-10-26 | 2019-05-07 | 卓望数码技术(深圳)有限公司 | 一种应用软件自动发布系统以及方法 |
CN110321113A (zh) * | 2019-07-09 | 2019-10-11 | 苏宁消费金融有限公司 | 以项目批次为标准的一体化流水线系统及其工作方法 |
CN110471648A (zh) * | 2019-08-19 | 2019-11-19 | 山东浪潮通软信息科技有限公司 | 一种基于异步机制的分布式的ci/cd的实现方法 |
-
2020
- 2020-03-20 CN CN202010201684.7A patent/CN111538525B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101174208A (zh) * | 2007-11-28 | 2008-05-07 | 山东浪潮齐鲁软件产业股份有限公司 | 一种软件生产线平台的实现方法 |
CN101635640A (zh) * | 2009-09-04 | 2010-01-27 | 江苏天智互联科技有限公司 | Web网站系统服务器终端程序的版本自动发布方法 |
US20130047138A1 (en) * | 2011-08-19 | 2013-02-21 | Daniel P. Radez | Systems and methods for building and distributing software packages |
CN104423960A (zh) * | 2013-09-10 | 2015-03-18 | 阿里巴巴集团控股有限公司 | 一种项目持续集成的方法及系统 |
CN104639374A (zh) * | 2015-03-03 | 2015-05-20 | 上海瀚银信息技术有限公司 | 一种应用程序部署管理系统 |
CN107621944A (zh) * | 2017-09-22 | 2018-01-23 | 天翼电子商务有限公司 | 基于自动化运维的持续集成流水线系统及其方法 |
CN109725908A (zh) * | 2017-10-26 | 2019-05-07 | 卓望数码技术(深圳)有限公司 | 一种应用软件自动发布系统以及方法 |
CN108241493A (zh) * | 2018-01-09 | 2018-07-03 | 政采云有限公司 | 分布式软件系统的自动化持续集成与交付方法、装置和系统 |
CN108268308A (zh) * | 2018-01-22 | 2018-07-10 | 广州欧赛斯信息科技有限公司 | 一种基于容器平台的持续集成方法、系统及装置 |
CN110321113A (zh) * | 2019-07-09 | 2019-10-11 | 苏宁消费金融有限公司 | 以项目批次为标准的一体化流水线系统及其工作方法 |
CN110471648A (zh) * | 2019-08-19 | 2019-11-19 | 山东浪潮通软信息科技有限公司 | 一种基于异步机制的分布式的ci/cd的实现方法 |
Non-Patent Citations (3)
Title |
---|
BLUESCHENY: "django使用celery做异步执行过程", 《HTTPS://BLOG.CSDN.NET/QQ_18985625/ARTICLE/DETAILS/78540658》 * |
XUDAWENFIGHTING: "DevOps之应用自动化发布与资源管理", 《HTTPS://BLOG.CSDN.NET/XUDAWENFIGHTING/ARTICLE/DETAILS/80125283》 * |
东方888: "使用JIRA与Jenkins进行项目管理", 《HTTPS://MAX.BOOK118.COM/HTML/2019/0415/8037060022002017.SHTM》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112035161A (zh) * | 2020-08-31 | 2020-12-04 | 上海识装信息科技有限公司 | 一种小程序发布校验的方法及并行发布的方法 |
CN112035161B (zh) * | 2020-08-31 | 2023-05-12 | 上海识装信息科技有限公司 | 一种小程序发布校验的方法及并行发布的方法 |
CN112202858A (zh) * | 2020-09-22 | 2021-01-08 | 苏宁消费金融有限公司 | 基于celery分布式调度框架的jenkins集群管理方法和系统 |
CN112202858B (zh) * | 2020-09-22 | 2022-06-17 | 苏宁消费金融有限公司 | 基于celery分布式调度框架的jenkins集群管理方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111538525B (zh) | 2022-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9740522B2 (en) | Controlled interruption and resumption of batch job processing | |
CN110377413B (zh) | 基于bpmn标准的分布式任务异步调度和监控的系统 | |
US7930268B2 (en) | Workflow method, system, and data structure | |
US7774742B2 (en) | Facilitation of multi-project management using task hierarchy | |
CN103593236B (zh) | 一种业务流程调度的计算机设备、方法和装置 | |
US7469219B2 (en) | Order management system | |
JP2008158971A (ja) | 作業計画管理プログラム、作業計画管理方法、及び作業計画管理装置 | |
CN111538525B (zh) | 一种用于程序发布的快速迭代与回滚方法 | |
US20060241997A1 (en) | System and method for integrating workflow processes with a project management system | |
US11977470B2 (en) | Monitoring long running workflows for robotic process automation | |
KR20060048381A (ko) | 컴퓨터-사용가능 프로젝트 관리 방법 및 시스템에서의계층적인 프로젝트들 | |
CN112818189A (zh) | 一种可视化制程工艺单排程调度方法、系统及平台 | |
CN110032154B (zh) | 一种小批量产品的生产控制方法及系统 | |
CN112379989B (zh) | 一种定时任务进程与队列服务进程管理系统及方法 | |
CN113537943A (zh) | 一种通用工作流引擎及其构建方法 | |
US20020075314A1 (en) | Context based view design to support client side multi-threading | |
CN112346842A (zh) | 一种基于有向无环图的工作流任务调度方法 | |
CN114444832A (zh) | 一种管理部门分级联动责任看板及其应用方法 | |
US20090327020A1 (en) | Intelligent task Deactivation In Project Scheduling Application | |
CN110640751A (zh) | 一种基于变电站远程巡检平台的巡检机器人交互方法 | |
CN114860394A (zh) | 一种模拟用户行为维持登录状态的rpa系统与方法 | |
CN111798199A (zh) | 一种电网多态图形闭环管理方法及系统 | |
US7577627B2 (en) | Modular SQL rule-based management of job process flow | |
US20150235151A1 (en) | Workflow Tracking System | |
CN109840184B (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 |