CN108614713B - 一种自动化应用发布的方法、系统及装置 - Google Patents

一种自动化应用发布的方法、系统及装置 Download PDF

Info

Publication number
CN108614713B
CN108614713B CN201810210218.8A CN201810210218A CN108614713B CN 108614713 B CN108614713 B CN 108614713B CN 201810210218 A CN201810210218 A CN 201810210218A CN 108614713 B CN108614713 B CN 108614713B
Authority
CN
China
Prior art keywords
publishing
release
application
record
asynchronous
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
CN201810210218.8A
Other languages
English (en)
Other versions
CN108614713A (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.)
Wacai Network Technology Co ltd
Original Assignee
Wacai Network 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 Wacai Network Technology Co ltd filed Critical Wacai Network Technology Co ltd
Priority to CN201810210218.8A priority Critical patent/CN108614713B/zh
Publication of CN108614713A publication Critical patent/CN108614713A/zh
Application granted granted Critical
Publication of CN108614713B publication Critical patent/CN108614713B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Abstract

本发明涉及互联网技术领域。一种自动化应用发布的方法,步骤如下:S1:当自动化应用本身需要发布时,在发布应用中生成发布自身的发布记录;S2:当发布服务模块下线时,若下线的发布服务模块是master,剩余的发布服务模块会重新选举出新的leader,发起异步执行发布的流程。当自动化应用发布本身需要迭代升级时,仍然可以保证服务的高可用性,从而降低甚至防止因自动化应用发布本身发布对其他应用发布带来的影响,同时基于zookeeper的高可用自动化应用发布系统可以实现自身发布的自动化。

Description

一种自动化应用发布的方法、系统及装置
技术领域
本发明涉及互联网技术领域,尤其是自动化应用发布的方法、系统及装置。
背景技术
Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby的一个开源的实现,是Hadoop和HBase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
随着计算机技术的发展,各类软件的更新迭代频率越来越快,而传统的应用发布过程人工操作占比过高,效率低下且容易导致应用出错。因此,敏捷开发随之火热起来。持续交付与持续部署是在继持续集成随着敏捷开发走热之后,备受关注的uji敏捷开发的重要组成部分,持续交付与部署将应用的交付与部署过程高度自动化,减少人工干预,降低出错风险,提高效率。目前很多公司都在实践自己的持续交付与部署的实现方案。
现有技术如中国专利公开号为CN105930182A的一种分布式代码版本发布系统及方法,解决当前软件版本发布影响系统稳定、服务器网络流量激增且难以实现自动发布操作的问题。及中国专利公开号为CN105373401A的,不仅能够建立重复、可靠的发布流程、以提高软件包的发布质量,而且能够讲整个发布流程自动化,提高整个软件包的发布效率。
现有技术都任然存在着一个问题:虽然自动化发布系统可以顺利实现对其他应用的自动化发布,但对于发布系统本身升级迭代,任然需要手动操作或者需要重新发布时,便会导致服务不可用,从而影响其他应用的发布流程。且随着发布操作的越来越频繁,发布系统本身不可用导致的流程中断问题可能会带来不可估量的损失。
发明内容
本发明的目的是提供一种自动化应用发布的方法、系统及装置,解决现有的自动化应用发布因自身发布迭代导致不可用的问题。
为了实现上述目的,本发明采用了以下技术方案:
一种自动化应用发布的方法,步骤如下:S1:当自动化应用自身需要发布时,在发布应用中生成发布自身的发布记录;
S2:当发布服务模块下线时,若下线的发布服务模块是master,剩余的发布服务模块会重新选举出新的leader,发起异步执行发布的流程,异步执行发布的流程如下:(1) 根据发布记录信息开始执行相应的发布;(2) 间隔轮训当前发布记录的状态,判断发布是否结束,若没有结束,则继续轮询;(3)若轮询结果为发布结束,则更新发布记录的结果和状态,一次发布完成;
S3:发布服务模块发布完成后,重复S2中的发布过程,串行发布剩余发布服务模块,直至所有的发布服务模块重新发布完成。
作为优选,还包括S3:发布服务模块发布完成后,重复S2中的发布过程,串行发布剩余发布服务模块,直至所有的发布服务模块重新发布完成,自动化应用发布自身流程结束,中途自动化应用不会宕机导致不可用,可以很好的实现分布式服务一次发布多的需求,同时可以实现发布系统在发布自身时避免服务不可用。
作为优选,S1中发布记录存储到数据库中,S2中调度记录在数据库中的发布记录发起异步执行发布的流程。
作为优选,异步执行发布的流程如下:(1)根据发布记录信息开始执行相应的发布;(2)间隔轮训当前发布记录的状态,判断发布是否结束,若没有结束,则继续轮询;(3)若轮询结果为发布结束,则更新发布记录的结果和状态,一次发布完成。
作为优选,步骤S2中选举产生新的leader是通过分布式协调服务算法实现的。
作为优选,步骤S2中的异步执行发布的流程是leader从自己的线程池中选取空闲的线程进行执行实现的异步调度,可以将生成的发布记录和实际的发布流程解耦分离,使得发布流程更加清晰且易于扩展。
作为优选,步骤S2的执行流程是通过持续集成工具实现,然后发布系统轮询持续集成工具结果获取执行状态。
作为优选,持续集成工具是Jenkins。
一种自动化应用发布系统,执行如上所述的方法,且该系统基于分布式协调服务zookeeper将发布流程分为生成记录和异步执行两个部分,生成记录是当发布系统自身需要发布时,在系统中生成发布自身的发布记录。
作为优选,包括多个发布服务模块,当下线的发布服务模块是master,那么剩余的发布服务模块会重新选举出新的leader,发起异步执行发布的流程。
作为优选,发布系统是基于分布式协调服务zookeeper的高可用自动化应用发布系统。
一种自动化应用发布装置,包括: 发布单元,当自动化应用自身需要发布时,在发布应用中生成发布自身的发布记录;执行单元,当发布服务模块下线时,若下线的发布服务模块是master,剩余的发布服务模块会重新选举出新的leader,发起异步执行发布的流程,异步执行发布的流程如下:(1) 根据发布记录信息开始执行相应的发布;(2) 间隔轮训当前发布记录的状态,判断发布是否结束,若没有结束,则继续轮询;(3)若轮询结果为发布结束,则更新发布记录的结果和状态,一次发布完成。
采用了上述技术方案的一种自动化应用发布的方法、系统及装置,当自动化 应用发布本身需要迭代升级时,仍然可以保证服务的高可用性,从而降低甚至 防止因自动化应用发布本身发布对其他应用发布带来的影响,同时基于 zookeeper的高可用自动化应用发布系统可以实现自身发布的自动化。
具体实施方式
下面结合具体实施方式对本发明做进一步说明。
技术缩略语解释。
高可用:描述一个系统经过专门的设计,从而减少停工事件,而保持其服务的高度可用性。
Zookeeper: 一个分布式一致性解决方案,为分布式应用提供分布式协调服务。
持续交付、持续部署:持续交付是在持续集成的基础上,将集成后的代码交付到更贴近真实运行环境的类生产环境中,而持续部署则是指讲降幅的代码通过一系列的审计后部署到生产环境中,持续部署是持续交付的最高阶段。
一种自动化应用发布系统,发布系统是基于分布式协调服务zookeeper的高可用自动化应用发布系统,发布系统包括多个发布服务模块,当下线的发布服务模块是master,那么剩余的发布服务模块会重新选举出新的leader,发起异步执行发布的流程。
发布系统基于分布式协调服务zookeeper将发布流程分为生成记录和异步执行两个部分,生成记录是当发布系统本身需要发布时,在系统中生成发布自身的发布记录。
一种自动化应用发布的方法,步骤如下:
S1:当发布系统本身需要发布时,在发布系统中生成一条发布自身的发布记 录,并将发布记录存储到数据库中;
S2:所需发布的服务是发布系统本身时,当一个发布服务模块下线时,若下 线的发布服务模块是master,剩余的发布服务模块会重新选举出新的leader, 调度记录在数据库中的发布记录并发起异步发布流程,若下线的发布服务模块 不是master直接由原来的leader发起异步发布流程;
异步执行的发布流程如下:(1)根据发布记录信息开始执行相应的发布; (2)更新发布记录的结果和状态,间隔轮训当前发布记录的状态,判断发布 是否结束,若没有结束,则继续轮询;(3)若轮询结果为发布结束,则更新发 布记录的结果和状态,一次发布完成,发布结束。
S3:一个发布服务模块发布完成后,重复S2中的发布过程,串行发布剩余发布服务模块,直至所有的发布服务模块重新发布完成,发布系统发布自身流程结束,中途发布系统不会宕机导致服务不可用。
S1中的自动化应用发布系统是基于zookeeper分布式协调服务实现的高可用自动化发布系统。
S2中选举产生新的leader是通过分布式协调服务算法实现的。同时S2中的异步发布流程是leader从自己的线程池中选取空闲的线程进行执行实现的异步调度。S2中具体执行流程通过Jenkins等持续集成工具实现,然后发布系统轮询类似Jenkins的集成工具结果获取执行状态。
S3很好的实现分布式服务一次发布多条的需求,同时可以实现发布系统在发布自身时避免服务不可用。
一种自动化应用发布系统,基于分布式协调服务zookeeper将发布流程分为生成记录和异步执行两个部分,生成记录是当发布系统自身需要发布时,在系统中生成发布自身的发布记录。自动化应用发布系统包括多个发布服务模块,当下线的发布服务模块是master,那么剩余的发布服务模块会重新选举出新的leader,发起异步执行发布的流程。发布系统是基于分布式协调服务zookeeper的高可用自动化应用发布系统。上述发布服务模块是发布服务器。
一种自动化应用发布装置,包括发布单元和执行单元。发布单元,当自动化应用自身需要发布时,在发布应用中生成发布自身的发布记录;执行单元,当发布服务模块下线时,若下线的发布服务模块是master,剩余的发布服务模块会重新选举出新的leader,发起异步执行发布的流程。
通过上面具体的实施方式,所述技术领域的技术人员可容易实现本发明。但是应当理解本发明不限于上述的具体实施方式,所述技术领域的技术人员可以根据技术特征,选择具有相同技术特征的方式实现不同的技术方案。

Claims (10)

1.一种自动化应用发布的方法,其特征在于步骤如下:
S1:当自动化应用自身需要发布时,在发布应用中生成发布自身的发布记录;
S2:当发布服务模块下线时,若下线的发布服务模块是master,剩余的发布服务模块会重新选举出新的leader,发起异步执行发布的流程,异步执行发布的流程如下:(1)根据发布记录信息开始执行相应的发布;(2)间隔轮训当前发布记录的状态,判断发布是否结束,若没有结束,则继续轮询;(3)若轮询结果为发布结束,则更新发布记录的结果和状态,一次发布完成;
S3:发布服务模块发布完成后,重复S2中的发布过程,串行发布剩余发布服务模块,直至所有的发布服务模块重新发布完成。
2.根据权利要求1所述的一种自动化应用发布的方法,其特征在于S1中发布记录存储到数据库中,S2中调度记录在数据库中的发布记录异步执行发布的流程。
3.根据权利要求1所述的一种自动化应用发布的方法,其特征在于步骤S2中选举产生新的leader是通过分布式协调服务算法实现的。
4.根据权利要求1所述的一种自动化应用发布的方法,其特征在于步骤S2中的异步执行发布的流程是leader从自己的线程池中选取空闲的线程进行执行实现的异步调度。
5.根据权利要求2所述的一种自动化应用发布的方法,其特征在于步骤S2的执行流程是通过持续集成工具实现,然后发布系统轮询持续集成工具结果获取执行状态。
6.根据权利要求5所述的一种自动化应用发布的方法,其特征在于持续集成工具是Jenkins。
7.一种自动化应用发布系统,其特征在于执行权利 要求1至6中任意一项所述的方法,且该系统基于分布式协调服务zookeeper将发布流程分为生成记录和异步执行两个部分,生成记录是当发布系统自身需要发布时,在系统中生成发布自身的发布记录。
8.根据权利要求7所述的一种自动化应用发布系统,其特征在于包括多个发布服务模块,当下线的发布服务模块是master,那么剩余的发布服务模块会重新选举出新的leader,发起异步执行发布的流程。
9.根据权利要求7所述的一种自动化应用发布系统,其特征在于发布系统是基于分布式协调服务zookeeper的高可用自动化应用发布系统。
10.一种自动化应用发布装置,其特征在于包括:发布单元,当自动化应用自身需要发布时,在发布应用中生成发布自身的发布记录;执行单元,当发布服务模块下线时,若下线的发布服务模块是master,剩余的发布服务模块会重新选举出新的leader,发起异步执行发布的流程,异步执行发布的流程如下:(1)根据发布记录信息开始执行相应的发布;(2)间隔轮训当前发布记录的状态,判断发布是否结束,若没有结束,则继续轮询;(3)若轮询结果为发布结束,则更新发布记录的结果和状态,一次发布完成。
CN201810210218.8A 2018-03-14 2018-03-14 一种自动化应用发布的方法、系统及装置 Active CN108614713B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810210218.8A CN108614713B (zh) 2018-03-14 2018-03-14 一种自动化应用发布的方法、系统及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810210218.8A CN108614713B (zh) 2018-03-14 2018-03-14 一种自动化应用发布的方法、系统及装置

Publications (2)

Publication Number Publication Date
CN108614713A CN108614713A (zh) 2018-10-02
CN108614713B true CN108614713B (zh) 2021-07-27

Family

ID=63658868

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810210218.8A Active CN108614713B (zh) 2018-03-14 2018-03-14 一种自动化应用发布的方法、系统及装置

Country Status (1)

Country Link
CN (1) CN108614713B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104917798A (zh) * 2014-03-13 2015-09-16 北京奇虎科技有限公司 一种数据更新的方法和系统
CN106843930A (zh) * 2016-12-23 2017-06-13 江苏途致信息科技有限公司 基于zookeeper的流式动态配置更新架构及方法
CN107562522A (zh) * 2017-10-12 2018-01-09 国电南瑞科技股份有限公司 一种基于ZooKeeper的分布式应用管理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9268808B2 (en) * 2012-12-31 2016-02-23 Facebook, Inc. Placement policy

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104917798A (zh) * 2014-03-13 2015-09-16 北京奇虎科技有限公司 一种数据更新的方法和系统
CN106843930A (zh) * 2016-12-23 2017-06-13 江苏途致信息科技有限公司 基于zookeeper的流式动态配置更新架构及方法
CN107562522A (zh) * 2017-10-12 2018-01-09 国电南瑞科技股份有限公司 一种基于ZooKeeper的分布式应用管理方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
【Linux初学】zookeeper集群、win下Jenkins安装(三);捌玖-便马之行;《https://my.oschina.net/xiaohai945/blog/482669》;20150723;第3-4页 *
捌玖-便马之行.【Linux初学】zookeeper集群、win下Jenkins安装(三).《https://my.oschina.net/xiaohai945/blog/482669》.2015, *

Also Published As

Publication number Publication date
CN108614713A (zh) 2018-10-02

Similar Documents

Publication Publication Date Title
US9600264B2 (en) Generating a customized set of tasks for migration of a deployed software solution
US8301935B2 (en) Distributed batch runner
CN107992392B (zh) 一种用于云渲染系统的自动监控修复系统和方法
US8010960B2 (en) System and method for providing a software installation or removal status display
CN111158708A (zh) 一种任务编排引擎系统
CN108319538B (zh) 大数据平台运行状态的监控方法和系统
CN105487924A (zh) 一种批处理控制方法及装置
EP2888685A2 (en) Transaction-level health monitoring of online services
CN113569987A (zh) 模型训练方法和装置
CN111736994B (zh) 资源编排方法、系统及存储介质和电子设备
US10768946B2 (en) Edge configuration of software systems for manufacturing
CN113807821A (zh) 基于离散场景同步工单的方法、系统、设备及存储介质
CN108614713B (zh) 一种自动化应用发布的方法、系统及装置
CN113031979A (zh) 一种基于galaxy框架配置分离装置及实现方法
CN111338767B (zh) PostgreSQL主从数据库自动切换系统及方法
CN110764785A (zh) 基于开源组件的电力行业云平台工具链及云平台运维方法
CN110908698A (zh) 基于流程编排的应用程序自动发布方法
JP5387083B2 (ja) ジョブ管理システムおよび方法
CN114840248A (zh) 一种基于企业级分布式应用服务的系统灰度发布方法
CN109240757A (zh) 一种大数据组件集中配置管理系统和方法
KR20230005045A (ko) 자동 운영 유지관리를 위한 방법들 및 장치들
CN113656088A (zh) 互联网数据中心服务器自助管理方法、装置和存储介质
CN110737525A (zh) 任务处理方法、装置、电子设备及存储介质
CN116560722B (zh) 运维流程处理方法、装置、电子设备及存储介质
CN116578380B (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