CN108614713A - 一种自动化应用发布的方法、系统及装置 - Google Patents
一种自动化应用发布的方法、系统及装置 Download PDFInfo
- Publication number
- CN108614713A CN108614713A CN201810210218.8A CN201810210218A CN108614713A CN 108614713 A CN108614713 A CN 108614713A CN 201810210218 A CN201810210218 A CN 201810210218A CN 108614713 A CN108614713 A CN 108614713A
- Authority
- CN
- China
- Prior art keywords
- publication
- automation application
- service module
- issue
- issuing service
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- 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
Abstract
本发明涉及互联网技术领域。一种自动化应用发布的方法,步骤如下:S1:当自动化应用本身需要发布时,在发布应用中生成发布自身的发布记录;S2:当发布服务模块下线时,若下线的发布服务模块是master,剩余的发布服务模块会重新选举出新的leader,发起异步执行发布的流程。当自动化应用发布本身需要迭代升级时,仍然可以保证服务的高可用性,从而降低甚至防止因自动化应用发布本身发布对其他应用发布带来的影响,同时基于zookeeper的高可用自动化应用发布系统可以实现自身发布的自动化。
Description
技术领域
本发明涉及互联网技术领域,尤其是自动化应用发布的方法、系统及装置。
背景技术
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,发起异步执行发布的流程。
通过上面具体的实施方式,所述技术领域的技术人员可容易实现本发明。但是应当理解本发明不限于上述的具体实施方式,所述技术领域的技术人员可以根据技术特征,选择具有相同技术特征的方式实现不同的技术方案。
Claims (12)
1.一种自动化应用发布的方法,其特征在于步骤如下:
S1:当自动化应用自身需要发布时,在发布应用中生成发布自身的发布记录;
S2:当发布服务模块下线时,若下线的发布服务模块是master,剩余的发布服务模块会重新选举出新的leader,发起异步执行发布的流程。
2.根据权利要求1所述的一种自动化应用发布的方法,其特征在于还包括S3:发布服务模块发布完成后,重复S2中的发布过程,串行发布剩余发布服务模块,直至所有的发布服务模块重新发布完成。
3.根据权利要求1所述的一种自动化应用发布的方法,其特征在于S1中发布记录存储到数据库中,S2中调度记录在数据库中的发布记录异步执行发布的流程。
4.根据权利要求1所述的一种自动化应用发布的方法,其特征在于异步执行发布的流程如下:(1) 根据发布记录信息开始执行相应的发布;(2) 间隔轮训当前发布记录的状态,判断发布是否结束,若没有结束,则继续轮询;(3)若轮询结果为发布结束,则更新发布记录的结果和状态,一次发布完成。
5.根据权利要求1所述的一种自动化应用发布的方法,其特征在于步骤S2中选举产生新的leader是通过分布式协调服务算法实现的。
6.根据权利要求1所述的一种自动化应用发布的方法,其特征在于步骤S2中的异步执行发布的流程是leader从自己的线程池中选取空闲的线程进行执行实现的异步调度。
7.根据权利要求4所述的一种自动化应用发布的方法,其特征在于步骤a的执行流程是通过持续集成工具实现,然后发布系统轮询持续集成工具结果获取执行状态。
8.根据权利要求7所述的一种自动化应用发布的方法,其特征在于持续集成工具是Jenkins。
9.一种自动化应用发布系统,其特征在于基于分布式协调服务zookeeper将发布流程分为生成记录和异步执行两个部分,生成记录是当发布系统自身需要发布时,在系统中生成发布自身的发布记录。
10.根据权利要求1所述的一种自动化应用发布系统,其特征在于包括多个发布服务模块,当下线的发布服务模块是master,那么剩余的发布服务模块会重新选举出新的leader,发起异步执行发布的流程。
11.根据权利要求9所述的一种自动化应用发布系统,其特征在于发布系统是基于分布式协调服务zookeeper的高可用自动化应用发布系统。
12.一种自动化应用发布装置,其特征在于包括: 发布单元,当自动化应用自身需要发布时,在发布应用中生成发布自身的发布记录;执行单元,当发布服务模块下线时,若下线的发布服务模块是master,剩余的发布服务模块会重新选举出新的leader,发起异步执行发布的流程。
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 true CN108614713A (zh) | 2018-10-02 |
CN108614713B 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 (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140188825A1 (en) * | 2012-12-31 | 2014-07-03 | Kannan Muthukkaruppan | Placement policy |
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的分布式应用管理方法 |
-
2018
- 2018-03-14 CN CN201810210218.8A patent/CN108614713B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140188825A1 (en) * | 2012-12-31 | 2014-07-03 | Kannan Muthukkaruppan | Placement policy |
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 (1)
Title |
---|
捌玖-便马之行: "【Linux初学】zookeeper集群、win下Jenkins安装(三)", 《HTTPS://MY.OSCHINA.NET/XIAOHAI945/BLOG/482669》 * |
Also Published As
Publication number | Publication date |
---|---|
CN108614713B (zh) | 2021-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106790455B (zh) | 一种基于混合模式的分布式云管理系统及方法 | |
CN106330576B (zh) | 容器化微服务自动伸缩及迁移调度的方法、系统和设备 | |
CN105681077B (zh) | 故障处理方法、装置及系统 | |
CN101436064B (zh) | 用于在配方执行期间更改配方过程流程的方法及设备 | |
CN101436063B (zh) | 用于执行辅助配方及批处理配方的方法及设备 | |
CN108288119A (zh) | 一种智能化的工厂控制方法及系统 | |
EP2897010A2 (en) | Industrial control system and management device | |
CN1799269A (zh) | 用于配置新设备并与传统提供系统协同服务的系统和方法 | |
CN106276457B (zh) | 电梯数据管理的方法 | |
CA2535440A1 (en) | System architecture method and computer program product for managing telecommunication networks | |
CN106874189A (zh) | 一种电网实时数据库系统的自动化测试系统的实现方法 | |
CN106533803B (zh) | 基于tr069协议的cpe配置方法及装置 | |
CN109801180A (zh) | 经编机的物联智能信息管理系统及控制方法 | |
CN109407604A (zh) | 处理模块耦合入模块化技术系统的方法和模块化技术系统 | |
CN107168253A (zh) | 计算机集成制造系统及其制造方法 | |
CN108614713A (zh) | 一种自动化应用发布的方法、系统及装置 | |
CN103914339B (zh) | 服务器管理系统及服务器管理方法 | |
CN106612193A (zh) | 在虚拟化技术下的网络开局配置方法及装置 | |
CN101159605B (zh) | 一种可实现状态记忆和恢复的流程控制方法 | |
US20220413978A1 (en) | Methods and apparatuses for automatic operational maintenance | |
CN109274532A (zh) | 策略下发的方法、装置、系统、集控设备及可读存储介质 | |
CN108303955A (zh) | 一种产品批量生产方法及系统 | |
TWI342167B (zh) | ||
CN114662868A (zh) | 基于区块链的产品柔性制造方法及装置 | |
CN113572636A (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 |