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

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

Info

Publication number
CN107870768B
CN107870768B CN201711104521.1A CN201711104521A CN107870768B CN 107870768 B CN107870768 B CN 107870768B CN 201711104521 A CN201711104521 A CN 201711104521A CN 107870768 B CN107870768 B CN 107870768B
Authority
CN
China
Prior art keywords
node
cae
application program
app
deployment
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
CN201711104521.1A
Other languages
English (en)
Other versions
CN107870768A (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
Inspur Cloud 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 Inspur Cloud Information Technology Co Ltd filed Critical Inspur Cloud 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

Images

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 (3)

1.一种CAE集群模式下Web应用程序的不停机部署方法,其特征在于,该方法首先申请集群模式的CAE服务,包含一个代理节点,至少两个Web应用程序运行节点;其次,CAE服务为代理节点加上标签Proxy,为每一个Web应用程序运行节点加上标签App;再次,把需要部署的Web应用程序上传到CAE服务中;最后,部署应用程序,CAE服务会根据配置的部署规则,分批次把应用程序部署到App节点,直到把所有的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节点的路由,部署结束。
2.根据权利要求1所述的一种CAE集群模式下Web应用程序的不停机部署方法,其特征在于,所述标签的作用包括:CAE服务可以根据标签向不同标签的节点分别发送不同的信号,Proxy节点负责路由的重写,App节点负责部署应用程序,检查应用程序是否可用以及错误回滚。
3.根据权利要求1所述的一种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 CN107870768A (zh) 2018-04-03
CN107870768B true 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)

Families Citing this family (1)

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

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101808140A (zh) * 2010-03-19 2010-08-18 中国科学技术大学 一种业务部署方法及装置
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
CN106777225A (zh) * 2016-12-26 2017-05-31 腾讯科技(深圳)有限公司 一种数据的迁移方法和系统
CN106878472A (zh) * 2017-04-20 2017-06-20 广东马良行科技发展有限公司 一种分布式集群数据服务方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9389922B2 (en) * 2011-03-11 2016-07-12 International Business Machines Corporation Declarative service domain federation
CN102323884B (zh) * 2011-09-07 2014-07-09 山东中创软件工程股份有限公司 一种多Web服务发布的方法及Web服务装置
US9910651B2 (en) * 2015-08-31 2018-03-06 Verizon Patent And Licensing Inc. System for developing, testing, deploying, and managing applications in real-time

Patent Citations (8)

* 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 中国科学技术大学 一种业务部署方法及装置
CN103608773A (zh) * 2011-04-12 2014-02-26 威睿公司 用于多节点应用的部署系统
CN102638372A (zh) * 2012-04-17 2012-08-15 浪潮(北京)电子信息产业有限公司 一种分布式集群系统及其实现方法
CN103581039A (zh) * 2013-11-08 2014-02-12 西安电子科技大学宁波信息技术研究院 一种服务器集群的动态负载均衡架构及其使用方法
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 广东马良行科技发展有限公司 一种分布式集群数据服务方法及系统

Also Published As

Publication number Publication date
CN107870768A (zh) 2018-04-03

Similar Documents

Publication Publication Date Title
US11416342B2 (en) Automatically configuring boot sequence of container systems for disaster recovery
CN109120678B (zh) 用于分布式存储系统的服务托管的方法和装置
EP2946293B1 (en) Healing cloud services during upgrades
US8359493B2 (en) Mechanism to provide assured recovery for distributed application
US8326800B2 (en) Seamless upgrades in a distributed database system
US9250672B2 (en) Cloning target machines in a software provisioning environment
CN111897558A (zh) 容器集群管理系统Kubernetes升级方法和装置
US20150074447A1 (en) Cluster system and method for providing service availability in cluster system
CN105635216A (zh) 分布式应用的升级方法、设备和分布式系统
CN106469069B (zh) 一种版本升级方法及系统
CN109918360A (zh) 数据库平台系统、创建方法、管理方法、设备及存储介质
CN105052111A (zh) 跨群集边界的服务迁移
TW201516874A (zh) 提供對等系統識別之基板管理控制器
WO2015127850A1 (zh) 一种数据升级的方法和中心服务器
US10901722B2 (en) Collaborative maintenance of software programs
CN111078238A (zh) 容器环境下应用配置集中处理方法及装置
CN113127023B (zh) 业务升级的方法、装置和系统
JP2006252437A (ja) パッチ適用方式及びパッチ適用方法
CN106775806A (zh) 一种升级私有云应用的方法
US9569315B2 (en) Modeling the topology of management servers in a distributed system
CN107870768B (zh) 一种CAE集群模式下Web应用程序的不停机部署方法
CN104572255B (zh) 一种多层应用托管方法、装置及系统
CN103780433B (zh) 自愈式虚拟资源配置管理数据架构
CN106250266B (zh) 一种系统的修复方法及装置
US9949046B2 (en) Automating repairs to audio systems

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