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

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

Info

Publication number
CN111538525B
CN111538525B CN202010201684.7A CN202010201684A CN111538525B CN 111538525 B CN111538525 B CN 111538525B CN 202010201684 A CN202010201684 A CN 202010201684A CN 111538525 B CN111538525 B CN 111538525B
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.)
Active
Application number
CN202010201684.7A
Other languages
English (en)
Other versions
CN111538525A (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 (3)

1.一种用于程序发布的快速迭代与回滚方法,其特征在于,包括以下步骤:
S1.研发人员发布项目,所述步骤S1还包括以下子步骤:
S101.研发人员进行申请发布;
S102.系统校检历史记录,判断有无待验证项目,当有待验证项目时,研发人员进行确认更新;
S103.当无验证项目时,研发人员通过搜索运维管理系统中的项目数据,选择需要发布的项目;
S104.当研发人员在系统中选择完需要发布的项目后,系统自动从gitlab上获取最新的版本号,用于记录本次发布,同时系统记录jenkins中该项目的上一次发布成功的版本号,用于项目回滚;
S105.发布项目提交;
S2.研发人员提交项目发布申请后,管理人员收到消息通知,提示有新的发版申请;
S3.管理人员点击发布按钮,系统会将本次的发布提交到后台的分布式任务系统,分布式任务系统为一个分布式任务队列框架,采用celery异步实现,通过使用任务队列的方式在分布的机器、进程或线程上执行任务调度,防止任务在执行等待期间,页面操作不受影响;后台通过调用jenkins接口,将消息提交给jenkins,并在jenkins 编译构建之后调取ansible 脚本执行程序部署上线;
S4.当项目发布不成功时,管理员执行项目回滚和重新发布,重复步骤S2和步骤S3;
S5.当jenkins 构建和发布整个流程都结束后,系统会实时获取项目发布成功与否的消息,并通过页面进行展示和对用户进行消息通知;
S6.系统通过定时任务,将jenkins中新增的各项目的在线版本号与发布时间更新到运维管理系统数据库中;
S7.系统实时统计当前发布次数的趋势图并通过页面进行展示。
2.根据权利要求1所述的一种用于程序发布的快速迭代与回滚方法,其特征在于,所述步骤S1之前还包括预步骤S0,所述的步骤S0包括配置jenkins和编排ansible脚本,将预先需要发布的程序通过jenkins与ansible配置完成。
3.根据权利要求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 CN111538525A (zh) 2020-08-14
CN111538525B true 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)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112035161B (zh) * 2020-08-31 2023-05-12 上海识装信息科技有限公司 一种小程序发布校验的方法及并行发布的方法
CN112202858B (zh) * 2020-09-22 2022-06-17 苏宁消费金融有限公司 基于celery分布式调度框架的jenkins集群管理方法和系统

Citations (10)

* 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网站系统服务器终端程序的版本自动发布方法
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的实现方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8990771B2 (en) * 2011-08-19 2015-03-24 Red Hat, Inc. Building and distributing software packages

Patent Citations (10)

* 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网站系统服务器终端程序的版本自动发布方法
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
DevOps之应用自动化发布与资源管理;xudawenfighting;《https://blog.csdn.net/xudawenfighting/article/details/80125283》;20160914;全文 *
django使用celery做异步执行过程;bluescheny;《https://blog.csdn.net/qq_18985625/article/details/78540658》;20171115;全文 *
使用JIRA与Jenkins进行项目管理;东方888;《https://max.book118.com/html/2019/0415/8037060022002017.shtm》;20190416;全文 *

Also Published As

Publication number Publication date
CN111538525A (zh) 2020-08-14

Similar Documents

Publication Publication Date Title
US7774742B2 (en) Facilitation of multi-project management using task hierarchy
US7930268B2 (en) Workflow method, system, and data structure
US7469219B2 (en) Order management system
US20100287553A1 (en) System, method, and software for controlled interruption of batch job processing
US7251787B2 (en) Method and apparatus for an integrated process modeller
US7734491B2 (en) Hierarchical projects in a computer-enabled project management method and system
US8751281B2 (en) Method for acquiring by a session manager a list of active sessions
US20060241997A1 (en) System and method for integrating workflow processes with a project management system
JP2008158971A (ja) 作業計画管理プログラム、作業計画管理方法、及び作業計画管理装置
CN111538525B (zh) 一种用于程序发布的快速迭代与回滚方法
US11977470B2 (en) Monitoring long running workflows for robotic process automation
CN112181621A (zh) 一种任务调度系统、方法、设备及存储介质
CN110032154B (zh) 一种小批量产品的生产控制方法及系统
CN112379989B (zh) 一种定时任务进程与队列服务进程管理系统及方法
CN113537943A (zh) 一种通用工作流引擎及其构建方法
CN110532105A (zh) 一种消息队列消费者进程的控制方法、系统及装置
US20090327020A1 (en) Intelligent task Deactivation In Project Scheduling Application
US20020075314A1 (en) Context based view design to support client side multi-threading
JP2002073929A (ja) ワークフロー管理システムのアーカイブ
US7577627B2 (en) Modular SQL rule-based management of job process flow
CN114244894A (zh) 停复机业务处理方法、系统、计算机存储介质和电子设备
US20150235151A1 (en) Workflow Tracking System
JP4006167B2 (ja) ワークフロー管理システム
CN111798199A (zh) 一种电网多态图形闭环管理方法及系统
CN116451976B (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