CN107870768A - 一种CAE集群模式下Web应用程序的不停机部署方法 - Google Patents

一种CAE集群模式下Web应用程序的不停机部署方法 Download PDF

Info

Publication number
CN107870768A
CN107870768A CN201711104521.1A CN201711104521A CN107870768A CN 107870768 A CN107870768 A CN 107870768A CN 201711104521 A CN201711104521 A CN 201711104521A CN 107870768 A CN107870768 A CN 107870768A
Authority
CN
China
Prior art keywords
cae
deployment
node
app
nodes
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
CN201711104521.1A
Other languages
English (en)
Other versions
CN107870768B (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.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information 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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201711104521.1A priority Critical patent/CN107870768B/zh
Publication of CN107870768A publication Critical patent/CN107870768A/zh
Application granted granted Critical
Publication of CN107870768B publication Critical patent/CN107870768B/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种CAE集群模式下Web应用程序的不停机部署方法,属于应用程序部署技术领域,基于云应用引擎下Web部署完全自动化、无需人工干预的特性,本方法采用的技术方案为:首先申请集群模式的CAE服务,包含一个代理节点,至少两个Web应用程序运行节点;其次,CAE服务为代理节点加上标签Proxy,为每一个Web应用程序运行节点加上标签App;再次,把需要部署的Web应用程序上传到CAE服务中;最后,部署应用程序,CAE服务会根据配置的部署规则,分批次把应用程序部署到App节点,直到把所有的App节点部署完成。本方法能够做到不停机部署Web应用程序,不影响用户访问Web应用程序,用户感觉不到Web应用程序的更新,体验效果好。

Description

一种CAE集群模式下Web应用程序的不停机部署方法
技术领域
本发明涉及Web应用程序的部署,具体地说是一种CAE集群模式下Web应用程序的不停机部署方法。
背景技术
CAE(Cloud Application Engine,云应用引擎)服务是一种快速创建稳定可靠、可弹性伸缩的应用托管环境服务。用户不需要关心部署Web应用程序所需要的软件环境、session共享、负载均衡等问题,只需要做简单的配置,上传自己的Web应用程序,剩下的事情由CAE服务来完成。在CAE服务中,部署Web应用程序,完全是自动化的,不需要人工干预的。
传统的人工干预的Web应用程序的部署,由于不影响已上线应用的使用,往往会在生产环境以外,在复制出一套环境,用来部署新的应用程序,待部署完成,没有问题之后,代理节点在切换到新系统供用户使用。
基于此,提出一种CAE集群模式下Web应用程序的不停机部署方法,做到不停机部署应用,不影响用户访问应用。
发明内容
本发明的技术任务是解决现有技术的不足,提供一种CAE集群模式下Web应用程序的不停机部署方法,做到不停机部署应用,不影响用户访问应用。
本发明的技术方案是按以下方式实现的:
一种CAE集群模式下Web应用程序的不停机部署方法,该方法首先申请集群模式的CAE服务,包含一个代理节点,至少两个Web应用程序运行节点;其次,CAE服务为代理节点加上标签Proxy,为每一个Web应用程序运行节点加上标签App;再次,把需要部署的Web应用程序上传到CAE服务中;最后,部署应用程序,CAE服务会根据配置的部署规则,分批次把应用程序部署到App节点,直到把所有的App节点部署完成。
所涉及标签的作用包括:CAE服务可以根据标签向不同标签的节点分别发送不同的信号,Proxy节点负责路由的重写,App节点负责部署应用程序,检查应用程序是否可用以及错误回滚。
所涉及方法的具体实现步骤包括:
(1)选择一个部署规则,分批次部署应用程序,可以是每个批次部署一个节点,也可以是一个百分比;
(2)根据选择的部署规则,如果是每个批次部署一个节点,则继续下面的步骤;如果是一个百分比,则根据App节点的总个数和选择的百分比数,计算出每个批次更新的节点数;
(3)缓存记录要部署的CAE服务实例的ID、部署批次、以及每个批次部署的节点个数;
(4)CAE服务选择第一个批次,根据批次对应的节点个数,从CAE服务实例中选择对应的App节点发送部署命令,更新缓存中第一个批次的数据,设置标志位:部署中,记录该批次部署的节点ID,以至于下一个批次不会选择已经部署的节点;
(5)CAE服务向App节点,发送部署命令,并且获取Proxy节点,向Proxy节点发送即将部署的App节点命令;
(6)Proxy节点接受到即将部署的App节点命令之后,断开相应的路由;App节点接收到部署命令之后,如果此CAE服务实例已经部署过当前应用程序的一个版本,则需要备份当前运行的程序到指定位置;
(7)CAE服务端接受到App节点返回的结果,进行处理:如果部署成功,则等待当前所有批次部署完成;如果部署失败,CAE服务同时向Proxy节点发送当前App节点部署失败的命令,以及向App节点发送程序回滚命令;
(8)Proxy节点接收到App节点部署失败的命令之后,则恢复当前App节点的路由;App节点接收到程序回滚命令之后,则相应的还原之前Web容器中运行的程序版本,并且重启Web容器;
(9)如果是App节点部署失败,完成步骤(7)后,整个部署过程就结束;
(10)如果是App节点部署成功,则循环执行步骤(4)(5)(6)(7)(8)(9);如果所有的批次都成功,则向Proxy节点发送所有的App节点都部署成功的命令;
(11)Proxy节点接受到部署成功的命令之后,则恢复所有的App节点的路由,部署结束。
所涉及步骤(6)中,备份当前运行的程序到指定位置的操作包括:首先,停止Web容器;其次,获取Web应用程序;再次,将Web应用程序部署到Web容器中;然后,启动Web应用程序,并且检查是否启动成功,应用是否正常访问,最后,返回一个结果,发送到CAE服务端。
本发明的一种CAE集群模式下Web应用程序的不停机部署方法与现有技术相比所产生的有益效果是:
本发明方法能够做到不停机部署Web应用程序,不影响用户访问Web应用程序,用户感觉不到Web应用程序的更新,体验效果好。
附图说明
附图1是本发明方法的具体实施流程图。
具体实施方式
为了更好的说明本发明,现结合具体实施例以及说明书附图对技术方案做进一步的说明。虽然实施例中记载了这些具体的实施方式,然其并非用以限定本发明,任何所述技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动和润饰,故本发明的保护范围当视权利要求书所界定者为准。
如附图1所示,本发明的一种CAE集群模式下Web应用程序的不停机部署方法,该方法首先申请集群模式的CAE服务,包含一个代理节点,至少两个Web应用程序运行节点;其次,CAE服务为代理节点加上标签Proxy,为每一个Web应用程序运行节点加上标签App;再次,把需要部署的Web应用程序上传到CAE服务中;最后,部署应用程序,CAE服务会根据配置的部署规则,分批次把应用程序部署到App节点,直到把所有的App节点部署完成。
所涉及标签的作用包括:CAE服务可以根据标签向不同标签的节点分别发送不同的信号,Proxy节点负责路由的重写,App节点负责部署应用程序,检查应用程序是否可用以及错误回滚。
参考附图1,所涉及方法的具体实现步骤包括:
(1)选择一个部署规则,分批次部署应用程序,可以是每个批次部署一个节点,也可以是一个百分比;
(2)根据选择的部署规则,如果是每个批次部署一个节点,则继续下面的步骤;如果是一个百分比,则根据App节点的总个数和选择的百分比数,计算出每个批次更新的节点数;
(3)缓存记录要部署的CAE服务实例的ID、部署批次、以及每个批次部署的节点个数;
(4)CAE服务选择第一个批次,根据批次对应的节点个数,从CAE服务实例中选择对应的App节点发送部署命令,更新缓存中第一个批次的数据,设置标志位:部署中,记录该批次部署的节点ID,以至于下一个批次不会选择已经部署的节点;
(5)CAE服务向App节点,发送部署命令,并且获取Proxy节点,向Proxy节点发送即将部署的App节点命令;
(6)Proxy节点接受到即将部署的App节点命令之后,断开相应的路由;App节点接收到部署命令之后,如果此CAE服务实例已经部署过当前应用程序的一个版本,则需要备份当前运行的程序到指定位置;
(7)CAE服务端接受到App节点返回的结果,进行处理:如果部署成功,则等待当前所有批次部署完成;如果部署失败,CAE服务同时向Proxy节点发送当前App节点部署失败的命令,以及向App节点发送程序回滚命令;
(8)Proxy节点接收到App节点部署失败的命令之后,则恢复当前App节点的路由;App节点接收到程序回滚命令之后,则相应的还原之前Web容器中运行的程序版本,并且重启Web容器;
(9)如果是App节点部署失败,完成步骤(7)后,整个部署过程就结束;
(10)如果是App节点部署成功,则循环执行步骤(4)(5)(6)(7)(8)(9);如果所有的批次都成功,则向Proxy节点发送所有的App节点都部署成功的命令;
(11)Proxy节点接受到部署成功的命令之后,则恢复所有的App节点的路由,部署结束。
所涉及步骤(6)中,备份当前运行的程序到指定位置的操作包括:首先,停止Web容器;其次,获取Web应用程序;再次,将Web应用程序部署到Web容器中;然后,启动Web应用程序,并且检查是否启动成功,应用是否正常访问,最后,返回一个结果,发送到CAE服务端。
本方法能够做到不停机部署Web应用程序,不影响用户访问Web应用程序,用户感觉不到Web应用程序的更新,体验效果好。
尽管根据有限数量的实施例描述了本发明,但是,受益于上面的描述,本技术领域的技术人员应该明白,在由此描述的本发明的范围内,可以设想其他实施例。
此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说,许多修改和变更都是显而易见的。对于本发明的范围,本发明所做的公开是说明性的而非限制性的,本发明的范围由所附权利要求书限定。

Claims (4)

1.一种CAE集群模式下Web应用程序的不停机部署方法,其特征在于,该方法首先申请集群模式的CAE服务,包含一个代理节点,至少两个Web应用程序运行节点;其次,CAE服务为代理节点加上标签Proxy,为每一个Web应用程序运行节点加上标签App;再次,把需要部署的Web应用程序上传到CAE服务中;最后,部署应用程序,CAE服务会根据配置的部署规则,分批次把应用程序部署到App节点,直到把所有的App节点部署完成。
2.根据权利要求1所述的一种CAE集群模式下Web应用程序的不停机部署方法,其特征在于,所述标签的作用包括:CAE服务可以根据标签向不同标签的节点分别发送不同的信号,Proxy节点负责路由的重写,App节点负责部署应用程序,检查应用程序是否可用以及错误回滚。
3.根据权利要求1所述的一种CAE集群模式下Web应用程序的不停机部署方法,其特征在于,所述方法的具体实现步骤包括:
(1)选择一个部署规则,分批次部署应用程序,可以是每个批次部署一个节点,也可以是一个百分比;
(2)根据选择的部署规则,如果是每个批次部署一个节点,则继续下面的步骤;如果是一个百分比,则根据App节点的总个数和选择的百分比数,计算出每个批次更新的节点数;
(3)缓存记录要部署的CAE服务实例的ID、部署批次、以及每个批次部署的节点个数;
(4)CAE服务选择第一个批次,根据批次对应的节点个数,从CAE服务实例中选择对应的App节点发送部署命令,更新缓存中第一个批次的数据,设置标志位:部署中,记录该批次部署的节点ID,以至于下一个批次不会选择已经部署的节点;
(5)CAE服务向App节点,发送部署命令,并且获取Proxy节点,向Proxy节点发送即将部署的App节点命令;
(6)Proxy节点接受到即将部署的App节点命令之后,断开相应的路由;App节点接收到部署命令之后,如果此CAE服务实例已经部署过当前应用程序的一个版本,则需要备份当前运行的程序到指定位置;
(7)CAE服务端接受到App节点返回的结果,进行处理:如果部署成功,则等待当前所有批次部署完成;如果部署失败,CAE服务同时向Proxy节点发送当前App节点部署失败的命令,以及向App节点发送程序回滚命令;
(8)Proxy节点接收到App节点部署失败的命令之后,则恢复当前App节点的路由;App节点接收到程序回滚命令之后,则相应的还原之前Web容器中运行的程序版本,并且重启Web容器;
(9)如果是App节点部署失败,完成步骤(7)后,整个部署过程就结束;
(10)如果是App节点部署成功,则循环执行步骤(4)(5)(6)(7)(8)(9);如果所有的批次都成功,则向Proxy节点发送所有的App节点都部署成功的命令;
(11)Proxy节点接受到部署成功的命令之后,则恢复所有的App节点的路由,部署结束。
4.根据权利要求3所述的一种CAE集群模式下Web应用程序的不停机部署方法,其特征在于,所述步骤(6)中,备份当前运行的程序到指定位置的操作包括:首先,停止Web容器;其次,获取Web应用程序;再次,将Web应用程序部署到Web容器中;然后,启动Web应用程序,并且检查是否启动成功,应用是否正常访问,最后,返回一个结果,发送到CAE服务端。
CN201711104521.1A 2017-11-10 2017-11-10 一种CAE集群模式下Web应用程序的不停机部署方法 Active CN107870768B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711104521.1A CN107870768B (zh) 2017-11-10 2017-11-10 一种CAE集群模式下Web应用程序的不停机部署方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711104521.1A CN107870768B (zh) 2017-11-10 2017-11-10 一种CAE集群模式下Web应用程序的不停机部署方法

Publications (2)

Publication Number Publication Date
CN107870768A true CN107870768A (zh) 2018-04-03
CN107870768B CN107870768B (zh) 2020-11-17

Family

ID=61753736

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711104521.1A Active CN107870768B (zh) 2017-11-10 2017-11-10 一种CAE集群模式下Web应用程序的不停机部署方法

Country Status (1)

Country Link
CN (1) CN107870768B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117389597A (zh) * 2023-12-07 2024-01-12 智慧足迹数据科技有限公司 一种Web应用程序更新方法、系统、设备及存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101808140A (zh) * 2010-03-19 2010-08-18 中国科学技术大学 一种业务部署方法及装置
CN102323884A (zh) * 2011-09-07 2012-01-18 山东中创软件工程股份有限公司 一种多Web服务发布的方法及Web服务容器
CN102638372A (zh) * 2012-04-17 2012-08-15 浪潮(北京)电子信息产业有限公司 一种分布式集群系统及其实现方法
CN103581039A (zh) * 2013-11-08 2014-02-12 西安电子科技大学宁波信息技术研究院 一种服务器集群的动态负载均衡架构及其使用方法
CN103608773A (zh) * 2011-04-12 2014-02-26 威睿公司 用于多节点应用的部署系统
CN105357296A (zh) * 2015-10-30 2016-02-24 河海大学 一种Docker云平台下弹性缓存系统
US9280527B2 (en) * 2005-09-28 2016-03-08 Sap Se Method and system for directly mapping web services interfaces and Java interfaces
US20160323155A1 (en) * 2011-03-11 2016-11-03 International Business Machines Corporation Declarative Service Domain Federation
US20170060562A1 (en) * 2015-08-31 2017-03-02 Verizon Patent And Licensing Inc. System for developing, testing, deploying, and managing applications in real-time
CN106777225A (zh) * 2016-12-26 2017-05-31 腾讯科技(深圳)有限公司 一种数据的迁移方法和系统
CN106878472A (zh) * 2017-04-20 2017-06-20 广东马良行科技发展有限公司 一种分布式集群数据服务方法及系统

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9280527B2 (en) * 2005-09-28 2016-03-08 Sap Se Method and system for directly mapping web services interfaces and Java interfaces
CN101808140A (zh) * 2010-03-19 2010-08-18 中国科学技术大学 一种业务部署方法及装置
US20160323155A1 (en) * 2011-03-11 2016-11-03 International Business Machines Corporation Declarative Service Domain Federation
CN103608773A (zh) * 2011-04-12 2014-02-26 威睿公司 用于多节点应用的部署系统
CN102323884A (zh) * 2011-09-07 2012-01-18 山东中创软件工程股份有限公司 一种多Web服务发布的方法及Web服务容器
CN102638372A (zh) * 2012-04-17 2012-08-15 浪潮(北京)电子信息产业有限公司 一种分布式集群系统及其实现方法
CN103581039A (zh) * 2013-11-08 2014-02-12 西安电子科技大学宁波信息技术研究院 一种服务器集群的动态负载均衡架构及其使用方法
US20170060562A1 (en) * 2015-08-31 2017-03-02 Verizon Patent And Licensing Inc. System for developing, testing, deploying, and managing applications in real-time
CN105357296A (zh) * 2015-10-30 2016-02-24 河海大学 一种Docker云平台下弹性缓存系统
CN106777225A (zh) * 2016-12-26 2017-05-31 腾讯科技(深圳)有限公司 一种数据的迁移方法和系统
CN106878472A (zh) * 2017-04-20 2017-06-20 广东马良行科技发展有限公司 一种分布式集群数据服务方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
AZURESKY: "$百度应用引擎BAE的使用与应用部署", 《HTTPS://WWW.CNBLOGS.COM/JIAYONGJI/P/6414623.HTML?UTM_SOURCE=ITDADAO&UTM_MEDIUM=REFERRAL》 *
CODEISBELIEF: "nginx实现不停机更新", 《HTTPS://BLOG.CSDN.NET/SEX_MAN/ARTICLE/DETAILS/77743926》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117389597A (zh) * 2023-12-07 2024-01-12 智慧足迹数据科技有限公司 一种Web应用程序更新方法、系统、设备及存储介质
CN117389597B (zh) * 2023-12-07 2024-04-02 智慧足迹数据科技有限公司 一种Web应用程序更新方法、系统、设备及存储介质

Also Published As

Publication number Publication date
CN107870768B (zh) 2020-11-17

Similar Documents

Publication Publication Date Title
CN105283847B (zh) 本地存储数据版本控制
US20140201564A1 (en) Healing cloud services during upgrades
CN105357296A (zh) 一种Docker云平台下弹性缓存系统
CN103581332B (zh) HDFS架构及HDFS架构中NameNode节点的压力分解方法
CN103457979B (zh) 分布式文件存储系统及方法
CN106911502A (zh) 一种智能家庭网关设备的升级方法及系统
CN105743948A (zh) 一种网络版本升级的方法及装置
US10901722B2 (en) Collaborative maintenance of software programs
CN104468811B (zh) 升级方法及装置
CN105681420A (zh) 一种基于Docker实现交换机操作系统备份的方法
CN106557347A (zh) 软件更新方法及装置
CN107197012A (zh) 一种基于元数据管理系统的服务发布及监管系统及方法
CN109086051A (zh) 应用组件部署方法、装置及计算机存储介质
CN106512397A (zh) 游戏服务器的数据加载方法和游戏服务器
CN104468759A (zh) PaaS平台中实现应用迁移的方法和装置
CN102984055B (zh) 一种issu的软重启升级方法和设备
CN107566470A (zh) 云数据系统中管理虚拟机的方法和装置
CN107870768A (zh) 一种CAE集群模式下Web应用程序的不停机部署方法
CN104572255B (zh) 一种多层应用托管方法、装置及系统
CN109145054A (zh) 一种管理客户端数据的方法
CN106254411B (zh) 用于提供服务的系统、服务器系统及方法
CN115643168B (zh) 一种节点超融合升级方法、装置、设备及存储介质
CN107786650A (zh) 一种存储介质和管理策略的同步方法、装置及系统
CN103107898A (zh) 用于同时发送或接收多个管理对象的方法、设备以及系统
CN105338058A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200522

Address after: 250100 No. 1036 Tidal Road, Jinan High-tech Zone, Shandong Province, S01 Building, Tidal Science Park

Applicant after: Tidal Cloud Information Technology Co.,Ltd.

Address before: 450000 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601

Applicant before: ZHENGZHOU YUNHAI INFORMATION TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
CB02 Change of applicant information

Address after: 250100 No. 1036 Tidal Road, Jinan High-tech Zone, Shandong Province, S01 Building, Tidal Science Park

Applicant after: Inspur cloud Information Technology Co., Ltd

Address before: 250100 No. 1036 Tidal Road, Jinan High-tech Zone, Shandong Province, S01 Building, Tidal Science Park

Applicant before: Tidal Cloud Information Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant