一种自动化应用发布的方法、系统及装置与流程

文档序号:15587967发布日期:2018-10-02 18:36阅读:718来源:国知局

本发明涉及互联网技术领域,尤其是自动化应用发布的方法、系统及装置。



背景技术:

zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是google的chubby的一个开源的实现,是hadoop和hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

随着计算机技术的发展,各类软件的更新迭代频率越来越快,而传统的应用发布过程人工操作占比过高,效率低下且容易导致应用出错。因此,敏捷开发随之火热起来。持续交付与持续部署是在继持续集成随着敏捷开发走热之后,备受关注的uji敏捷开发的重要组成部分,持续交付与部署将应用的交付与部署过程高度自动化,减少人工干预,降低出错风险,提高效率。目前很多公司都在实践自己的持续交付与部署的实现方案。

现有技术如中国专利公开号为cn105930182a的一种分布式代码版本发布系统及方法,解决当前软件版本发布影响系统稳定、服务器网络流量激增且难以实现自动发布操作的问题。及中国专利公开号为cn105373401a的,不仅能够建立重复、可靠的发布流程、以提高软件包的发布质量,而且能够讲整个发布流程自动化,提高整个软件包的发布效率。

现有技术都任然存在着一个问题:虽然自动化发布系统可以顺利实现对其他应用的自动化发布,但对于发布系统本身升级迭代,任然需要手动操作或者需要重新发布时,便会导致服务不可用,从而影响其他应用的发布流程。且随着发布操作的越来越频繁,发布系统本身不可用导致的流程中断问题可能会带来不可估量的损失。



技术实现要素:

本发明的目的是提供一种自动化应用发布的方法、系统及装置,解决现有的自动化应用发布因自身发布迭代导致不可用的问题。

为了实现上述目的,本发明采用了以下技术方案:

一种自动化应用发布的方法,步骤如下:s1:当自动化应用本身需要发布时,在发布应用中生成发布自身的发布记录;s2:当发布服务模块下线时,若下线的发布服务模块是master,剩余的发布服务模块会重新选举出新的leader,发起异步执行发布的流程。

作为优选,还包括s3:发布服务模块发布完成后,重复s2中的发布过程,串行发布剩余发布服务模块,直至所有的发布服务模块重新发布完成,自动化应用发布自身流程结束,中途自动化应用不会宕机导致不可用,可以很好的实现分布式服务一次发布多的需求,同时可以实现发布系统在发布自身时避免服务不可用。

作为优选,s1中发布记录存储到数据库中,s2中调度记录在数据库中的发布记录发起异步执行发布的流程。

作为优选,异步执行发布的流程如下:(1)根据发布记录信息开始执行相应的发布;(2)间隔轮训当前发布记录的状态,判断发布是否结束,若没有结束,则继续轮询;(3)若轮询结果为发布结束,则更新发布记录的结果和状态,一次发布完成。

作为优选,步骤s2中选举产生新的leader是通过分布式协调服务算法实现的。

作为优选,步骤s2中的异步执行发布的流程是leader从自己的线程池中选取空闲的线程进行执行实现的异步调度,可以将生成的发布记录和实际的发布流程解耦分离,使得发布流程更加清晰且易于扩展。

作为优选,步骤a的执行流程是通过持续集成工具实现,然后发布系统轮询持续集成工具结果获取执行状态。

作为优选,持续集成工具是jenkins。

一种自动化应用发布系统,基于分布式协调服务zookeeper将发布流程分为生成记录和异步执行两个部分,生成记录是当发布系统本身需要发布时,在系统中生成发布自身的发布记录。

作为优选,包括多个发布服务模块,当下线的发布服务模块是master,那么剩余的发布服务模块会重新选举出新的leader,发起异步执行发布的流程。

作为优选,发布系统是基于分布式协调服务zookeeper的高可用自动化应用发布系统。

一种自动化应用发布装置,包括:发布单元,当自动化应用自身需要发布时,在发布应用中生成发布自身的发布记录;执行单元,当发布服务模块下线时,若下线的发布服务模块是master,剩余的发布服务模块会重新选举出新的leader,发起异步执行发布的流程。

采用了上述技术方案的一种自动化应用发布的方法、系统及装置,当自动化应用发布本身需要迭代升级时,仍然可以保证服务的高可用性,从而降低甚至防止因自动化应用发布本身发布对其他应用发布带来的影响,同时基于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,发起异步执行发布的流程。

通过上面具体的实施方式,所述技术领域的技术人员可容易实现本发明。但是应当理解本发明不限于上述的具体实施方式,所述技术领域的技术人员可以根据技术特征,选择具有相同技术特征的方式实现不同的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1