CN111538525A - 一种用于程序发布的快速迭代与回滚方法 - Google Patents

一种用于程序发布的快速迭代与回滚方法 Download PDF

Info

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
Application number
CN202010201684.7A
Other languages
English (en)
Other versions
CN111538525B (zh
Inventor
刘翼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Yaowang Technology Co ltd
Original Assignee
Chengdu Yaowang Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Yaowang Technology Co ltd filed Critical Chengdu Yaowang Technology Co ltd
Priority to CN202010201684.7A priority Critical patent/CN111538525B/zh
Publication of CN111538525A publication Critical patent/CN111538525A/zh
Application granted granted Critical
Publication of CN111538525B publication Critical patent/CN111538525B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version 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.项目发布状态验证成功,研发人员对项目进行编辑修改,并将编辑修改好的项目发送到系统,系统对项目进行选取。
CN202010201684.7A 2020-03-20 2020-03-20 一种用于程序发布的快速迭代与回滚方法 Active CN111538525B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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的实现方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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