CN113741924B - 一种应用部署方法、系统和服务器 - Google Patents

一种应用部署方法、系统和服务器 Download PDF

Info

Publication number
CN113741924B
CN113741924B CN202010466944.3A CN202010466944A CN113741924B CN 113741924 B CN113741924 B CN 113741924B CN 202010466944 A CN202010466944 A CN 202010466944A CN 113741924 B CN113741924 B CN 113741924B
Authority
CN
China
Prior art keywords
application
application instance
cluster
configuration information
load balancing
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
CN202010466944.3A
Other languages
English (en)
Other versions
CN113741924A (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.)
China Mobile Communications Group Co Ltd
China Mobile Group Zhejiang Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Group Zhejiang 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 China Mobile Communications Group Co Ltd, China Mobile Group Zhejiang Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202010466944.3A priority Critical patent/CN113741924B/zh
Publication of CN113741924A publication Critical patent/CN113741924A/zh
Application granted granted Critical
Publication of CN113741924B publication Critical patent/CN113741924B/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例涉及移动互联网技术领域,公开了一种应用部署方法和系统,该方法包括:获取应用实例信息和应用发布模型;将应用实例划分为第一应用实例集群和第二应用实例集群,指示所述负载均衡服务器暂停向第一应用实例集群转发接入请求,在没有新的接入请求需要转发给所述第一应用实例集群时,所述负载均衡服务器从缓存中删除第一配置信息;向所述第一应用实例集群发布新的应用版本;指示负载均衡服务器暂停向第二应用实例集群转发接入请求,在没有新的接入请求需要转发给第二应用实例集群时,负载均衡服务器从缓存中删除第二配置信息;向第二应用实例集群发布新的应用版本。通过上述方式,本发明实施例实现了在应用发布的智能化。

Description

一种应用部署方法、系统和服务器
技术领域
本发明实施例涉及移动互联网技术领域,具体涉及一种应用部署方法、系统和服务器。
背景技术
随着移动互联网技术的发展,APP的使用越来越广泛,对于一些用户规模非常大的APP,通常需要根据所在区域的不同,部署的不同的服务器上,在这种模式下,如何对不同的应用实例进行更新升级就变得越来越重要。
目前APP的更新发布模式为:在深夜用户量少的时间段,停止应用服务,更新代码后重新启动,该模式在停服时间段影响用户正常使用,且对人员精力的消耗很大。在用户量大但又必须紧急发布应用版本的情况下,现有策略为分批次对应用服务器逐台发布更新:先停止一台应用服务实例(其他服务实例正常提供服务),更新应用实例到最新版本,更新成功后重启该应用服务实例,后续依次对其他应用服务进行更新,直到所有应用服务实例都更新到最新版本。
本申请发明人在研究中发现,上述应用发布模式需要选择用户量少的深夜进行,且应用发布过程中由于应用服务的停止,会影响用户的正常使用;逐台分批次更新应用服务的情况下,由于现有的负载均衡服务器不支持动态流量切换,目前的切换操作需要操作员手工进行操作,严重依赖于管理员的经验,效率较低。
发明内容
鉴于上述问题,本发明实施例提供了一种应用部署方法、系统和服务器,用于解决现有技术中存在的问题。
根据本发明实施例的一个方面,提供了一种应用部署方法,所述方法包括:
获取应用实例信息;
根据所述应用实例信息动态获取应用发布模型;
将所述应用实例划分为第一应用实例集群和第二应用实例集群,并分别为所述第一应用实例集群和所述第二应用实例集群分配第一配置信息和第二配置信息;
将所述第一配置信息和所述第二配置信息写入负载均衡服务器的缓存中,并指示所述负载均衡服务器暂停向所述第一应用实例集群转发接入请求;
所述负载均衡服务器暂停向所述第一应用实例集群转发接入请求,并在没有新的接入请求需要转发给所述第一应用实例集群时,所述负载均衡服务器从缓存中删除所述第一配置信息;
根据所述应用发布模型向所述第一应用实例集群发布新的应用版本;
当向所述第一应用实例集群部署应用成功后,将所述第一配置信息写入负载均衡服务器的缓存中,并指示所述负载均衡服务器暂停向所述第二应用实例集群转发接入请求;
所述负载均衡服务器暂停向所述第二应用实例集群转发接入请求,并在没有新的接入请求需要转发给所述第二应用实例集群时,所述负载均衡服务器从缓存中删除所述第二配置信息;
根据所述应用发布模型向所述第二应用实例集群发布新的应用版本。
优选的,所述根据所述应用实例信息动态获取应用发布模型,包括:
获取所述应用实例信息的当前流量信息和历史访问量信息;
根据所述当前流量信息和历史访问量信息计算所述应用实例的发布权重;
根据所述发布权重获取所述应用实例对应的应用发布模型。
优选的,所述将所述应用实例划分为第一应用实例集群和第二应用实例集群包括:
获取所述应用实例的当前流量值;
根据预设的流量阈值将所述当前流量值小于预设流量阈值的应用实例划分为第一应用实例集群;将大于或等于所述预设阈值的应用实例划分为第二实例集群。
优选的,所述将所述应用实例划分为第一应用实例集群和第二应用实例集群包括:
获取所述应用实例的当前流量值和最大访问流量值;
根据所述当前流量值和所述最大访问流量值计算所述应用实例的占用率;
根据所述应用实例的占用率将所述应用实例划分为第一应用实例集和第二应用实例集。
优选的,所述在没有新的接入请求需要转发给所述第一应用实例集群时,所述负载均衡服务器从缓存中删除所述第一配置信息,包括:
所述负载均衡服务对接入请求进行监控,当在第一预设时间内没有新的接入请求需要转发给第一应用实例集群时,则所述负载均衡服务器从缓存中删除所述第一配置信息;
所述在没有新的接入请求需要转发给所述第二应用实例集群时,所述负载均衡服务器从缓存中删除所述第二配置信息,包括:
所述负载均衡服务对接入请求信息进行监控,当在第一预设时间内没有新的接入请求需要转发给第二应用实例集群时,则所述负载均衡服务器从缓存中删除所述第二配置信息。
优选的,所述第一配置信息包括:Key值、为所述第一应用实例集群配置的第一域名信息和应用实例名称;
所述将所述第一配置信息写入负载均衡服务器的缓存中,具体为:
将所述Key值写入所述负载均衡服务器的缓存中,将所述为所述第一应用实例集群配置的第一域名信息和应用实例名称存储在所述负载均衡服务器的数据表中;
所述第二配置信息包括:Key值、为所述第二应用实例集群配置的第二域名信息和应用实例名称;
所述将所述第二配置信息写入负载均衡服务器的缓存中,具体为:
将所述Key值写入所述负载均衡服务器的缓存中,将所述为所述第二应用实例集群配置的第二域名信息和应用实例名称存储在所述负载均衡服务器的数据表中。
优选的,向所述第一应用实例集群发布新的应用版本之后,进一步包括:
对所述第一应用实例集群中的各个实例进行验证;
向所述第二应用实例集群发布新的应用版本之后,进一步包括:
对所述第二应用实例集群中的各个实例进行验证。
本发明实施例还提出了一种应用部署系统,包括:应用发布服务器、应用部署服务器和负载均衡服务器;
所述应用发布服务器:用于获取应用实例信息和应用发布模型,并将所述应用实例划分为第一应用实例集群和第二应用实例集群,并分别为所述第一应用实例集群和所述第二应用实例集群分配第一配置信息和第二配置信息;当进行应用部署时,将所述第一配置信息和所述第二配置信息写入负载均衡服务器的缓存中,并指示所述负载均衡服务器暂停向转发接入请求;
所述负载均衡服务器:用于根据所述应用发布服务器的指示,暂停向所述第一应用实例集群或第二应用实例集群转发接入请求,并在没有新的接入请求需要转发给所述第一应用实例集群或第二应用实例集群时,所述负载均衡服务器从缓存中删除所述第一配置信息或第二配置信息;
所述应用部署服务器:用于在所述负载均衡服务器将所述第一配置信息或第二配置信息从缓存中删除后,根据所述应用发布模型向所述第一应用实例集群或第二应用实例集群发布新的应用版本。
优选的,所述应用发布服务器还用于:
获取所述应用实例的当前流量值和最大访问流量值;
根据所述当前流量值和所述最大访问流量值计算所述应用实例的占用率;
根据所述应用实例的占用率将所述应用实例划分为第一应用实例集和第二应用实例集。
本发明实施例还提出了一种应用发布服务器,包括:
应用实例集群划分模块:用于获取应用实例信息,并将所述应用实例划分为第一应用实例集群和第二应用实例集群,并分别为所述第一应用实例集群和所述第二应用实例集群分配第一配置信息和第二配置信息;
请求转发控制模块:用于在进行应用部署时,将所述第一配置信息和所述第二配置信息写入负载均衡服务器的缓存中,并指示所述负载均衡服务器暂停向第一应用实例集群或第二应用实例集群转发接入请求;
自动化部署模块:用于在所述负载均衡服务器将所述第一配置信息或第二配置信息从缓存中删除后,根据预先获取的应用发布模型向所述第一应用实例集群或第二应用实例集群发布新的应用版本。
综上所述,本发明实施例提供的应用部署系统通过应用发布服务器动态匹配应用发布模型,并且动态的将应用实例划分为第一应用实例集群和第二应用实例集群,指示所述负载均衡服务器暂停向目标实例集群转发接入请求,并将所述目标实例集群从所述负载均衡服务器的缓存中删除,然后,再通过应用部署服务器对所述目标实例集群进行应用发布,实现了对应用实例的动态发布,可以根据不同应用实例的状态、选择合适的发布模型和发布顺序,实现了全部的自动化应用发布。
上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
附图仅用于示出实施方式,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的应用部署系统的示意图;
图2示出了本发明实施例提供的一种应用部署方法的流程示意图;
图3示出了本发明另一实施例提供的一种应用部署方法的流程示意图;
图4示出了本发明实施例提供的应用发布服务器的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。
目前的应用部署系统严重依赖于操作人员的手工操作,操作在进行应用发布之前,需要手工配置发布流程,造成发布流程无法根据应用实例的具体情况进行动态调整。同时在应用发布的过程中,也需要通过手工方式切换发布的服务器,对发布过程进行人工干预,造成发布过程控制难度加大,增加了出错的概率。
为了解决上述问题,本发明实施例提出了一种应用部署系统,如图1所示,所述系统包括应用发布服务器、应用部署服务器和负载均衡服务器,所述应用发布服务器能够获取服务网络中的各个应用实例信息,所述应用实例是指部署在各个虚拟机或者云服务器上的各个应用客户端APP,比如:中国移动的APP客户端,以及APP客户端中所用到的各个功能模块实例等等,这些应用实例会根据需要部署在不同的服务器上。
所述应用发布服务器用于获取应用实例信息和应用发布模型,并将所述应用实例划分为为第一应用实例集群和第二应用实例集群,分别为所述第一应用实例集群和所述第二应用实例集群分配第一配置信息和第二配置信息。系统管理员通过所述应用发布服务器获取所有应用实例信息,本申请中,通过Activiti系统进行应用实例的获取和应用发布模型的获取。
在进行应用发布之前,所述应用发布服务器通过Activiti系统进行应用发布模型的定制,由于应用发布流程存在多种情况,因此,需要针对不同的应用,设置不同的应用发布流程,本申请人通过Activiti系统可以自由定制发布流程,通过将整个应用发布流程划分为多个元节点,每个元节点实现一个完整的功能,例如:请求分发控制、编译构建生成部署包、部署包发布、测试验证、维护确认、领导审批、异常处理、节点重试等等,利用Activiti对这些元节点进行管理和配置,从而实现应用发布流程的灵活配置化。
在进行应用发布流程的灵活配置时,可以通过多个维度进行考量,在现有的系统中,系统中往往存在成百上千的应用,有面向外部用户的应用,有内部运营平台的应用,有辅助工作的小工具和小平台等,不同应用的业务范围、对用户的影响、应用包大小、发布时间、安全级别等有很大的差异。因此,为了更好的进行应用部署,本申请人提出可以根据不同应用的特点适配不同等级的应用发布模型,在本申请中,本申请人将应用发布分为三种类型:全自动发布模型、半监督发布模型和监督发布模型;所述全自动发布模型中,所有流程中的节点都是全自动模式,安全级别低,影响范围小,发布问题可容忍可退回,适用于内部工具类和插件类应用的部署;所述半监督发布模型中,流程中部分节点是手动模式,部分节点需要维护和测试人员确认后才能进入下一节点,此模型适用于逻辑复杂、发布时间较长且历史发布问题较多的应用;所述监督发布模型中,流程中的大部分节点需要人为处理,且需要领导审批才能正常发布上线,适用于特殊情况的上线发布,比如:封网期间的应用发布、紧急上线应用发布等,发布过程中不允许出现问题,严格要求对各个节点的验证和确认。通过上述三种模型的应用发布流程满足不同应用、不同阶段的应用发布,在用户无感知的情况下,做到二十四小时随时随地发布的要求,保障了系统的安全性的同时响应市场快速运营的需求。
在所述应用发布服务器获取到需要进行升级的应用实例信息后,根据所述应用实例信息匹配需要调用的应用发布模型,所述匹配通过自动匹配的方式进行,可以预先在所述应用实例信息中设置应用的应用实例类型,在所述应用发布服务器上设置应用实例类型与应用发布模型的映射表,根据所述映射表进行匹配,可以实现自动匹配。
优选的,为了更进一步的实现应用发布模式自适应选择,即不为某个应用设置固定的发布模型,而是根据该应用的实时状况进行发布,这样能够更加适应应用的实际情况,本申请人进一步提出,在选择应用发布模型之前,进一步获取所述应用实例的流量信息和历史访问量信息,根据所述流量信息和历史访问量信息,同时结合预先设置的所述应用实例的重要程度,生成应用发布权重,权重越高,则说明所述应用实例越重要,则为其匹配可靠性高的应用发布模型,通过这种方式,可以实现应用实例发布模型的动态调整。比如:某个应用实例在初始上线时为一般性应用,预先设置的重要程度为低,但是随着应用的推广和用户使用习惯的改变,用户的访问量大幅增加,此时,如果继续将此应用当成一般都应用进行发布,如果发生发布事故,则有可能造成大面积的影响。通过本申请实施例提出的自动计算出发布权重的方式,可以在没来得及修改其重要程度的情况下,提升其发布权重,使该应用的发布更加可靠,避免发生重大升级事故。
当根据所述需要进行升级的应用实例信息选好应用发布模型后,所述应用发布服务器还用于将所述应用实例划分为第一应用实例集群和第二应用实例集群,并分别为所述第一应用实例集群和所述第二应用实例集群分配第一配置信息和第二配置信息。在确定所述第一应用实例集群和第二应用实例集群时,所述应用发布服务器通过获取各应用实例的当前流量值,根据预设的流量阈值,将当前流量值小于所述预设流量阈值的应用实例划分为第一应用实例集群,将当前流量值大于或者等于所述预设流量阈值的应用实例划分为第二应用实例集群。应用发布服务器通过这种方式,首先更新流量较小的应用实例,再更新流量大的应用实例,避免对用户的使用造成影响。
进一步的,为了更加准确的划分第一应用实例集群和第二应用实例集群,避免对用户使用造成影响,本申请实施例进一步获取所述应用实例的当前流量值和该应用实例的最大访问流量值,根据所述当前流量值和所述最大访问流量值计算所述应用实例的占用率,根据所述应用实例的占用率将所述应用实例划分为第一应用实例集和第二应用实例集,占用率更能体现所述应用实例当前的使用状态,通过这种方式能够避免上述设置预设流量阈值带来的划分不准确的问题,能够更加准确的将使用率较低的应用实例进行升级,避免对用户使用造成影响。
进一步的,所述应用集群的划分还可以根据所述应用实例的部署方式进行划分,比如将部署在虚拟机上的应用实例划分为第一应用实例集群,将部署在云服务器的容器上的应用实例划分为第二应用实例集群等等。
所述应用发布服务器还用于在进行应用部署时,将所述第一配置信息和所述第二配置信息写入负载均衡服务器的缓存中,并指示所述负载均衡服务器暂停向所述第一应用实例集群或第二应用实例集群转发接入请求。当所述应用发布服务器根据所述需要进行升级的应用实例确定好应用发布模型,并将需要进行升级的应用实例划分为第一应用实例集群和第二应用实例集群后,将所述第一应用实例集群对应的第一配置信息和所述第二应用实例集群对应的第二配置信息发送给所述负载均衡服务器,并指示所述负载均衡服务器暂停向所述第一应用实例集群或第二应用实例集群转发接入请求。
需要指出的是上述将所述应用实例划分为第一应用实例集群和第二应用实例集群为示例性描述,也可以划分为多个应用实例集群,方法都是一样的,在这里不再赘述。
所述负载均衡服务器用于根据所述应用发布服务器的指示,暂停向所述第一应用实例集群或第二应用实例集群转发接入请求。在本发明实施例中,本申请人采用Nginx服务器作为负载均衡服务器进行应用接入请求的处理,基于Lua脚本和Nginx服务器开发实现Nginx的配置动态更新,在新的应用发布开始时,开启Nginx策略缓存开关,使请求转发策略生效,Nginx服务器读取缓存中的配置信息,并根据分流策略解析出转发路径,暂停向第一应用实例集群转发接入请求,将所有的接入请求转发到第二应用实例集群。
所述配置信息包括Key值、为所述应用示例集群配置的域名信息和应用实例名称等。在现有技术中,所述Nginx服务器的接入请求转发策略配置在配置表中,按照固定的方式进行接入请求的转发,这种方式不需要频繁的对配置表进行读取,占用内存空间比较小。但在本申请中,由于Nginx服务器需要对第一应用实例集群和第二应用实例集群的配置进行动态更新,为了避免频繁访问配置表,造成访问速度下降,CPU占用过高,本申请中创新的将所述第一配置信息和第二配置信息写入缓存中,能够实现对Nginx的配置的动态更新。优选的,将所述Key值放置在所述缓存中,将所述为所述应用实例集群配置的域名信息和应用实例名称存储在所述负载均衡服务器的数据表中,当需要删除Key值时,则直接从缓存中删除,当需要转发时,则根据所述Key值和数据表解析转发路径。通过这种方式,提高了负载均衡服务器的处理效率。
所述负载均衡服务器还用于在没有新的接入请求需要转发给所述第一应用实例集群或第二应用实例集群时,从缓存中删除所述第一配置信息或第二配置信息。所述负载均衡服务对接入请求进行监控,当在第一预设时间内没有新的接入请求需要转发给第一应用实例集群时,则所述负载均衡服务器从缓存中删除所述第一配置信息;当在第一预设时间内没有新的接入请求需要转发给第二应用实例集群时,则所述负载均衡服务器从缓存中删除所述第二配置信息。目的是为了确认待升级的目标集群没有新的接入请求进入,且存量请求已经处理完成。通常情况下,实际处理请求的应用实例节点信息写入数据库的访问表中,且现有的接入请求处理超时时长为三十秒,平台等待一分钟,从而确保待升级的目标应用实例集群原来已经进来的存量请求处理完成。当所述待升级的目标集群的存量接入请求已经处理完毕,则所述负载均衡服务器删除所述目标集群的配置信息。
所述应用部署服务器用于在所述负载均衡服务器将所述第一配置信息或第二配置信息从缓存中删除后,根据所述应用发布模型向所述第一应用实例集群或第二应用实例集群发布新的应用版本。当所述负载均衡服务器将所述待升级的目标应用实例集群的配置信息删除后,则说明该目标应用实例集群已经没有被用户所占用,则可以进行升级,所述应用部署服务器向所述目前应用实例集群发布新的应用版本。
进一步的,所述应用部署服务器在发布完新的应用版本后,还可以对所述升级后的应用实例进行验证。设置特定的白名单用户访问第一应用实例集群中的应用实例,当更新后的第一应用实例集群中的应用实例不满足设定标准1(例如:新版本功能问题,不能上线),验证不通过则恢复第一应用实例集群中的实例版本为上一个版本,取消部署结束本次灰度发布;当更新后的第一应用实例集群中的的应用实例不满足设定标准2(例如:实例健康检查失败),验证不通过则对第一应用实例集群重新发布,重复上述步骤。
当更新后的第一应用实例集群中的应用实例满足设定标准(版本更新成功标准),则扩大集群更新范围,对第二应用实例集群中的应用实例进行迭代更新,直到所有服务器的应用都更新到最新版本,应用发布完成。
综上所述,本发明实施例提供的应用部署系统通过应用发布服务器动态匹配应用发布模型,并且动态的将应用实例划分为第一应用实例集群和第二应用实例集群,指示所述负载均衡服务器暂停向目标实例集群转发接入请求,并将所述目标实例集群从所述负载均衡服务器的缓存中删除,然后,再通过应用部署服务器对所述目标实例集群进行应用发布,实现了对应用实例的动态发布,可以根据不同应用实例的状态、选择合适的发布模型和发布顺序,实现了全部的自动化应用发布。
本发明另一实施例提出了一种应用部署方法,如图2所示,所述方法可以应用于上述实施例提出的应用部署系统中,包括:
步骤210:获取应用实例信息;
获取系统中的需要进行更新的应用实例信息,所述应用实例部署在不同的服务器上,比如:有的应用实例部署在虚拟机上,有的部署在云服务器的不同容器内。
步骤220:根据所述应用实例信息动态获取应用发布模型;
所述应用发布模型为系统预先设定的,如上述实施例所述的,所述应用发布服务器通过Activiti系统进行应用发布模型的定制,可以将所述发布模型分为:全自动发布模型、半监督发布模型和监督发布模型等,在这里不再赘述。
在所述应用发布服务器获取到需要进行升级到应用实例信息后,根据所述应用实例信息匹配需要调用的应用发布模型,所述匹配通过自动匹配的方式进行,可以预先在所述应用实例信息中设置应用实例的应用类型,在所述应用发布服务器上设置应用类型与应用发布模型的映射表,根据所述映射表进行匹配,可以实现自动匹配。
优选的,为了更进一步的实现应用发布模式自适应选择,即不为某个应用设置固定的发布模型,而是根据该应用的实时状况选择应用发布模型,这样能够更加适应应用的实际情况,本申请人进一步提出,在选择应用发布模型之前,进一步获取所述实用实例的流量信息和历史访问量信息,根据所述流量信息和历史访问量信息,同时结合预先设置的所述应用实例的重要程度,生成应用发布权重,权重越高,则说明所述应用实例越重要,则为其匹配可靠性高的应用发布模型。比如:某个应用实例在初始上线时为一般性应用,预先设置的重要程度为低,但是随着应用的推广和用户使用习惯的改变,用户的访问量大幅增加,此时,如果继续将此应用当成一般都应用进行发布,如果发生发布事故,则有可能造成大面积的影响。通过本申请实施例提出的自动计算去发布权重的方式,可以在没来得及修改其重要程度的情况下,提升其发布权重,使该应用的发布更加可靠,避免发生重大升级事故。
步骤230:将所述应用实例划分为第一应用实例集群和第二应用示例集群,并分别为所述第一应用实例集群和所述第二应用实例集群分配第一配置信息和第二配置信息;
所述应用发布服务器将应用实例划分为第一应用实例集群和第二应用实例集群,分别对所述第一应用实例集群和第二应用实例集群的应用进行更新。通过将应用实例划分为不同的实例集群,可以避免同时进行更新引起的用户业务中断。在确定所述第一应用实例集群和第二应用实例集群时,所述应用发布服务器通过获取各应用实例的当前流量值,根据预设的流量阈值,将小于所述预设流量阈值的应用实例划分为第一应用实例集群,将当前流量值大于或者等于所述预设流量阈值的应用实例划分为第二应用实例集群。应用发布服务器通过这种方式,首先更新流量较小的应用实例,避免对用户的使用造成影响。
进一步的,为了更加准确的划分第一应用实例集群和第二应用实例集群,避免对用户使用造成影响,本申请实施例进一步获取所述应用实例的当前流量值和该应用实例的最大访问流量值,根据所述当前流量值和所述最大访问流量值计算所述应用实例的占用率,根据所述应用实例的占用率将所述应用实例划分为第一应用实例集和第二应用实例集,通过占用率更能反映应用实例当前的应用状况。通过这种方式能够避免设置上述预设流量阈值带来的划分不准确的问题,能够更加准确的将使用率较低的应用实例进行升级,避免对用户使用造成影响。通过这种基于应用实例的占用率来决定升级的先后顺序,可以最大程度的减小升级对用户的影响。同时,这种方式和动态发布模型匹配的方式结合起来,能够最大程度上保证系统升级的稳定性,最大程度上减小系统升级给用户带来的影响。
进一步的,所述应用集群的划分还可以根据所述应用实例的部署方式进行划分,比如将部署在虚拟机上的应用实例划分为第一应用实例集群,将部署在云服务器的容器上的应用实例划分为第二应用实例集群等等。
需要指出的是上述将所述应用实例划分为第一应用实例集群和第二应用实例集群为示例性描述,也可以划分为多个应用实例集群,方法都是一样的,在这里不再赘述。
步骤240:将所述第一配置信息和所述第二配置信息写入负载均衡服务器的缓存中,并指示所述负载均衡服务器暂停向所述第一应用实例集群准发接入请求;
为了更加领域的实现应用实例集群的的划分和动态调整,所述第一配置信息和第二配置信息包括Key值、为所述应用示例集群配置的域名信息和应用实例名称等,通过域名信息进行访问可以方便的进行应用实例的添加和删除,不用对配置信息进行修改,增加了系统的灵活性。在现有技术中,Nginx服务器在进行接入请求转发策略配置在配置表中,按照固定的方式进行接入请求的转发,这种方式不需要频繁的对配置表进行读取,占用内存空间比较小。但在本申请中,由于Nginx服务器需要对第一应用实例集群和第二应用实例集群的配置进行动态更新,为了避免频繁访问配置表,造成访问速度下降,CPU占用过高,本申请中创新的将所述第一配置信息和第二配置信息写入缓存中,能够实现对Nginx的配置的动态更新。优选的,将所述Key值放置在所述缓存中,将所述为所述应用实例集群配置的域名信息和应用实例名称存储在所述负载均衡服务器的数据表中,通过这种方式,提高了负载均衡服务器的处理效率。
当需要进行应用发布时,需要首先对第一应用实例集群进行升级,则指示负载均衡服务器暂停向所述第一应用实例集群转发接入请求,目的是为了将第一应用实例集群中的应用实例空闲出来,避免在升级时,影响用户使用。
步骤250:所述负载均衡服务器暂停向所述第一应用实例集群转发接入请求,并在没有新的接入请求需要转发给所述第一应用实例集群时,所述负载均衡服务器从缓存中删除所述第一配置信息;
所述负载均衡服务器暂停向所述第一应用实例集群转发接入请求,使用户的接入请求不通过第一应用实例集群中的应用实例接入。但由于应用实例有可能正在处理已经接入的接入请求,或者暂停转发以后,由于时间差,还会有新的接入请求被转入,则此时,所述负载均衡服务器会进行等待,当在第一预设时间内没有新的接入请求需要转发给第一应用实例集群或第二应用实例集群时,则认为待升级的应用实例集群没有新的接入请求进入,且存量请求已经处理完成。通常情况下,实际处理请求的应用实例节点信息写入数据库的访问表中,且现有的接入请求处理超时时长为三十秒,平台等待一分钟,从而确保待升级的目标集群原来已经进来的存量请求处理完成。通过这种方式,确保了待升级的目标集群中不存在正在使用的用户,从而确保了不会对用户使用造成任何的影响。当所述待升级的目标集群的存量接入请求已经处理完毕,则所述负载均衡服务器删除所述第一配置信息。
步骤260:根据所述应用发布模型向所述第一应用实例集群发布新的应用版本;
当所述第一应用实例集群的第一配置信息被删除后,即Key值被删除后,则所述第一应用实例集群中的应用实例处于可升级状态,根据所述应用发布模型向所述第一应用实例集群发布新的应用版本。
步骤270:当向所述第一应用实例集群部署应用成功后,将所述第一配置信息写入负载均衡服务器的缓存中,并指示所述负载均衡服务器暂停向所述第二应用实例集群转发接入请求;
当所述第一应用实例集群部署应用完成后,优选的,对部署完成后的应用实例进行验证;当验证通过后,则说明部署成功,将所述第一配置信息写入负载均衡服务器的缓存中,并将接入请求重新转向所述第一应用实例集群中的应用实例,并开始对第二应用实例集群中的应用实例进行部署。
所述应用发布服务器指示所述负载均衡服务器暂停向所述第二应用实例集群转发接入请求。
步骤280:所述负载均衡服务器暂停向所述第二应用实例集群转发接入请求,并在没有新的接入请求需要转发给所述第二应用实例集群时,所述负载均衡服务器从缓存中删除所述第二配置信息;
所述负载均衡服务器暂停向所述第二应用实例集群转发接入请求,使用户的接入请求不通过第二应用实例集群中的应用实例接入。但由于应用实例有可能正在处理已经接入的接入请求,或者暂停转发以后,由于时间差,还会有新的接入请求被转入,则此时,所述负载均衡服务器会进行等待,当在第一预设时间内没有新的接入请求需要转发给第二应用实例集群时,则认为待升级的应用实例集群没有新的接入请求进入,且存量请求已经处理完成。通常情况下,实际处理请求的应用实例节点信息写入数据库的访问表中,且现有的接入请求处理超时时长为三十秒,平台等待一分钟,从而确保待升级的目标集群原来已经进来的存量请求处理完成。通过这种方式,确保了待升级的目标集群中不存在正在使用的用户,从而确保了不会对用户使用造成任何的影响。当所述待升级的目标集群的存量接入请求已经处理完毕,则所述负载均衡服务器删除所述第二配置信息。
步骤290:根据所述应用发布模型向所述第二应用实例集群发布新的应用版本;
当所述第二应用实例集群的第二配置信息被删除后,即Key值被删除后,则所述第二应用实例集群中的应用实例处于可升级状态,根据所述应用发布模型向所述第二应用实例集群发布新的应用版本。
当所述第二应用实例集群部署应用完成后,优选的,对部署完成后的应用实例进行验证;当验证通过后,则说明部署成功,将所述第二配置信息写入负载均衡服务器的缓存中,并将接入请求重新转向所述第二应用实例集群中的应用实例,完成应用部署。
当存在更多应用实例集群时,则采取同样的方式,按照上述步骤进行重复处理即可。
综上所述,本发明实施例提供的应用部署方法通过动态匹配应用发布模型,并且动态的将应用实例划分为第一应用实例集群和第二应用实例集群,指示所述负载均衡服务器暂停向目标实例集群转发接入请求,并将所述目标实例集群从所述负载均衡服务器的缓存中删除,然后,再通过应用部署服务器对所述目标实例集群进行应用发布,实现了对应用实例的动态发布,可以根据不同应用实例的状态、选择合适的发布模型和发布顺序,实现了全部的自动化应用发布
如图3所示,为本发明另一实施例提供的应用部署方法示意图,应用于图1所示的应用部署系统中,包括:
步骤301:指示所述负载均衡服务器暂停向所述目标应用实例集群转发接入请求;
所述应用发布服务器获取应用实例信息和应用发布模型,并将所述应用实例划分为多个应用实例集群,根据上述实施例中的方法,确定所述多个应用实施例集群的发布顺序,将首先进行发布的应用实例集群确定为目标应用实例集群。
则指示负载均衡服务器暂停向所述目标应用实例集群转发接入请求。
步骤302:确认无新的接入请求接入目标应用实例集群;
所述负载均衡服务器暂停向目标实例集群转发接入请求,使用户的接入请求不通过目标实例集群中的应用实例接入。但由于应用实例有可能正在处理已经接入的接入请求,或者暂停转发以后,由于时间差,还会有新的接入请求被转入,则此时,所述负载均衡服务器会进行等待,当在第一预设时间内没有新的接入请求需要转发给目标应用实例集群,则认为待升级的应用实例集群没有新的接入请求进入。
步骤303:确认目标应用实例集群的存量请求处理完成,指示负载均衡服务器从缓存中删除目标应用实例集群的配置信息;
通常情况下,实际处理请求的应用实例节点信息写入数据库的访问表中,且现有的接入请求处理超时时长为三十秒,平台等待一分钟,从而确保待升级的目标集群原来已经进来的存量请求处理完成。通过这种方式,确保了待升级的目标集群中不存在正在使用的用户,从而确保了不会对用户使用造成任何的影响。当所述待升级的目标集群的存量接入请求已经处理完毕,则所述负载均衡服务器删除所述目标应用实例的配置信息。
步骤304:向目标应用实例集群部署新的应用版本;
向目标应用实例集群中的各个实例进行部署新的应用版本。
步骤305:判断验证是否通过;
所述应用部署服务器在发布完新的应用版本后,还可以对所述升级后的应用实例进行验证。设置特定的白名单用户访问第一应用实例集群中的应用实例,当更新后的第一应用实例集群中的应用实例不满足设定标准1(例如:新版本功能问题,不能上线),验证不通过则恢复第一应用实例集群中的实例版本为上一个版本,取消部署结束本次灰度发布,转步骤308;当更新后的第一应用实例集群中的的应用实例不满足设定标准2(例如:实例健康检查失败),验证不通过则对第一应用实例集群重新发布,转步骤304。
当更新后的第一应用实例集群中的应用实例满足设定标准(版本更新成功标准),则扩大集群更新范围,转步骤305。
步骤306:将目标应用实例集群的配置信息写入负载均衡服务器的缓存;
当验证通过后,则将目标应用实例集群的配置信息重新写入负载均衡服务器的缓存中,以使负载均衡服务器能够重新将接入请求转发给更新后的应用实例。
步骤307:判断是否部署完成;
如果所有的应用实例集群都部署完成,则转步骤308;
否则,转步骤301,继续进行发布。
步骤308:测试验证整个应用实例集群是否正常;
当所有的实例集群全部发布完成后,为了服务的可靠性,则对所有应用实例集群进行测试,以确保所有应用实例能够正常工作。
综上所述,本发明实施例提供的应用部署方法通过动态匹配应用发布模型,并且动态的将应用实例划分为第一应用实例集群和第二应用实例集群,指示所述负载均衡服务器暂停向目标实例集群转发接入请求,并将所述目标实例集群从所述负载均衡服务器的缓存中删除,然后,再通过应用部署服务器对所述目标实例集群进行应用发布,实现了对应用实例的动态发布,可以根据不同应用实例的状态、选择合适的发布模型和发布顺序,实现了全部的自动化应用发布。
图4示出了本发明提供的应用发布服务器实施例的结构示意图。如图4所示,该应用发布服务器400包括:应用实例集群划分模块410、请求转发控制模块420和自动化部署模块430。
所述应用实例集群划分模块410用于获取应用实例信息,并将所述应用实例划分为第一应用实例集群和第二应用实例集群,并分别为所述第一应用实例集群和所述第二应用实例集群分配第一配置信息和第二配置信息;
所述请求转发控制模块420用于在进行应用部署时,将所述第一配置信息和所述第二配置信息写入负载均衡服务器的缓存中,并指示所述负载均衡服务器暂停向第一应用实例集群或第二应用实例集群转发接入请求;
所述自动化部署模块430用于在所述负载均衡服务器将所述第一配置信息或第二配置信息从缓存中删除后,根据预先获取的应用发布模型向所述第一应用实例集群或第二应用实例集群发布新的应用版本。
进一步的,所述应用发布服务器还包括应用发布模型获取模块440,用于获取所述应用实例信息的当前流量信息和历史访问量信息;根据所述当前流量信息和历史访问量信息计算所述应用实例的发布权重;根据所述发布权重获取所述应用实例对应的应用发布模型。
进一步的,所述应用实例集群划分模块410还用于获取所述应用实例的当前流量值;根据预设的流量阈值将所述当前流量值小于预设流量阈值的应用实例划分为第一应用实例集群;将大于或等于所述预设阈值的应用实例划分为第二实例集群。
进一步的,所述应用实例集群划分模块410还用于获取所述应用实例的当前流量值和最大访问流量值;根据所述当前流量值和所述最大访问流量值计算所述应用实例的占用率;根据所述应用实例的占用率将所述应用实例划分为第一应用实例集和第二应用实例集。
进一步的,所述自动化部署模块430还用于对所述第一应用实例集群中的各个实例进行验证;对所述第二应用实例集群中的各个实例进行验证。
综上所述,本发明实施例提供的应用发布服务器通过动态匹配应用发布模型,并且动态的将应用实例划分为第一应用实例集群和第二应用实例集群,指示所述负载均衡服务器暂停向目标实例集群转发接入请求,并将所述目标实例集群从所述负载均衡服务器的缓存中删除,然后,再通过应用部署服务器对所述目标实例集群进行应用发布,实现了对应用实例的动态发布,可以根据不同应用实例的状态、选择合适的发布模型和发布顺序,实现了全部的自动化应用发布。
本发明实施例提供了一种计算机可读存储介质,所述存储介质存储有至少一可执行指令,该可执行指令在应用部署系统上运行时,使得所述应用部署系统执行上述任意方法实施例中的应用部署方法。
可执行指令具体可以用于使得应用部署系统执行以下操作:
获取应用实例信息;
根据所述应用实例信息动态获取应用发布模型;
将所述应用实例划分为第一应用实例集群和第二应用实例集群,并分别为所述第一应用实例集群和所述第二应用实例集群分配第一配置信息和第二配置信息;
将所述第一配置信息和所述第二配置信息写入负载均衡服务器的缓存中,并指示所述负载均衡服务器暂停向所述第一应用实例集群转发接入请求;
所述负载均衡服务器暂停向所述第一应用实例集群转发接入请求,并在没有新的接入请求需要转发给所述第一应用实例集群时,所述负载均衡服务器从缓存中删除所述第一配置信息;
根据所述应用发布模型向所述第一应用实例集群发布新的应用版本;
当向所述第一应用实例集群部署应用成功后,将所述第一配置信息写入负载均衡服务器的缓存中,并指示所述负载均衡服务器暂停向所述第二应用实例集群转发接入请求;
所述负载均衡服务器暂停向所述第二应用实例集群转发接入请求,并在没有新的接入请求需要转发给所述第二应用实例集群时,所述负载均衡服务器从缓存中删除所述第二配置信息;
根据所述应用发布模型向所述第二应用实例集群发布新的应用版本。
进一步的,所述根据所述应用实例信息动态获取应用发布模型,包括:
获取所述应用实例信息的当前流量信息和历史访问量信息;
根据所述当前流量信息和历史访问量信息计算所述应用实例的发布权重;
根据所述发布权重获取所述应用实例对应的应用发布模型。
进一步的,所述将所述应用实例划分为第一应用实例集群和第二应用实例集群包括:
获取所述应用实例的当前流量值;
根据预设的流量阈值将所述当前流量值小于预设流量阈值的应用实例划分为第一应用实例集群;将大于或等于所述预设阈值的应用实例划分为第二实例集群。
进一步的,所述将所述应用实例划分为第一应用实例集群和第二应用实例集群包括:
获取所述应用实例的当前流量值和最大访问流量值;
根据所述当前流量值和所述最大访问流量值计算所述应用实例的占用率;
根据所述应用实例的占用率将所述应用实例划分为第一应用实例集和第二应用实例集。
进一步的,所述在没有新的接入请求需要转发给所述第一应用实例集群时,所述负载均衡服务器从缓存中删除所述第一配置信息,包括:
所述负载均衡服务对接入请求进行监控,当在第一预设时间内没有新的接入请求需要转发给第一应用实例集群时,则所述负载均衡服务器从缓存中删除所述第一配置信息;
所述在没有新的接入请求需要转发给所述第二应用实例集群时,所述负载均衡服务器从缓存中删除所述第二配置信息,包括:
所述负载均衡服务对接入请求信息进行监控,当在第一预设时间内没有新的接入请求需要转发给第二应用实例集群时,则所述负载均衡服务器从缓存中删除所述第二配置信息。
进一步的,所述第一配置信息包括:Key值、为所述第一应用实例集群配置的第一域名信息和应用实例名称;
所述将所述第一配置信息写入负载均衡服务器的缓存中,具体为:
将所述Key值写入所述负载均衡服务器的缓存中,将所述为所述第一应用实例集群配置的第一域名信息和应用实例名称存储在所述负载均衡服务器的数据表中;
所述第二配置信息包括:Key值、为所述第二应用实例集群配置的第二域名信息和应用实例名称;
所述将所述第二配置信息写入负载均衡服务器的缓存中,具体为:
将所述Key值写入所述负载均衡服务器的缓存中,将所述为所述第二应用实例集群配置的第二域名信息和应用实例名称存储在所述负载均衡服务器的数据表中。
进一步的,向所述第一应用实例集群发布新的应用版本之后,进一步包括:
对所述第一应用实例集群中的各个实例进行验证;
向所述第二应用实例集群发布新的应用版本之后,进一步包括:
对所述第二应用实例集群中的各个实例进行验证。
综上所述,本发明实施例提供的计算机可读存储介质通过动态匹配应用发布模型,并且动态的将应用实例划分为第一应用实例集群和第二应用实例集群,指示所述负载均衡服务器暂停向目标实例集群转发接入请求,并将所述目标实例集群从所述负载均衡服务器的缓存中删除,然后,再通过应用部署服务器对所述目标实例集群进行应用发布,实现了对应用实例的动态发布,可以根据不同应用实例的状态、选择合适的发布模型和发布顺序,实现了全部的自动化应用发布。
本发明实施例提供一种应用部署装置装置,用于执行上述应用部署方法。
本发明实施例提供了一种计算机程序,所述计算机程序可被处理器调用使应用部署系统执行上述任意方法实施例中的应用部署方法。
本发明实施例提供了一种计算机程序产品,计算机程序产品包括存储在计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令在计算机上运行时,使得所述计算机执行上述任意方法实施例中的应用部署方法。
在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。
本领域技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。

Claims (10)

1.一种应用部署方法,其特征在于,所述方法包括:
获取应用实例信息;
根据所述应用实例信息动态获取应用发布模型;
将所述应用实例划分为第一应用实例集群和第二应用实例集群,并分别为所述第一应用实例集群和所述第二应用实例集群分配第一配置信息和第二配置信息;
将所述第一配置信息和所述第二配置信息写入负载均衡服务器的缓存中,并指示所述负载均衡服务器暂停向所述第一应用实例集群转发接入请求;
所述负载均衡服务器暂停向所述第一应用实例集群转发接入请求,并在没有新的接入请求需要转发给所述第一应用实例集群时,所述负载均衡服务器从缓存中删除所述第一配置信息;
根据所述应用发布模型向所述第一应用实例集群发布新的应用版本;
当向所述第一应用实例集群部署应用成功后,将所述第一配置信息写入负载均衡服务器的缓存中,并指示所述负载均衡服务器暂停向所述第二应用实例集群转发接入请求;
所述负载均衡服务器暂停向所述第二应用实例集群转发接入请求,并在没有新的接入请求需要转发给所述第二应用实例集群时,所述负载均衡服务器从缓存中删除所述第二配置信息;
根据所述应用发布模型向所述第二应用实例集群发布新的应用版本。
2.如权利要求1所述的应用部署方法,其特征在于,所述根据所述应用实例信息动态获取应用发布模型,包括:
获取所述应用实例信息的当前流量信息和历史访问量信息;
根据所述当前流量信息和历史访问量信息计算所述应用实例的发布权重;
根据所述发布权重获取所述应用实例对应的应用发布模型。
3.如权利要求2所述的应用部署方法,其特征在于,所述将所述应用实例划分为第一应用实例集群和第二应用实例集群包括:
获取所述应用实例的当前流量值;
根据预设的流量阈值将所述当前流量值小于预设流量阈值的应用实例划分为第一应用实例集群;将大于或等于所述预设阈值的应用实例划分为第二实例集群。
4.如权利要求2所述的应用部署方法,其特征在于,所述将所述应用实例划分为第一应用实例集群和第二应用实例集群包括:
获取所述应用实例的当前流量值和最大访问流量值;
根据所述当前流量值和所述最大访问流量值计算所述应用实例的占用率;
根据所述应用实例的占用率将所述应用实例划分为第一应用实例集和第二应用实例集。
5.如权利要求1所述的应用部署方法,其特征在于,所述在没有新的接入请求需要转发给所述第一应用实例集群时,所述负载均衡服务器从缓存中删除所述第一配置信息,包括:
所述负载均衡服务对接入请求进行监控,当在第一预设时间内没有新的接入请求需要转发给第一应用实例集群时,则所述负载均衡服务器从缓存中删除所述第一配置信息;
所述在没有新的接入请求需要转发给所述第二应用实例集群时,所述负载均衡服务器从缓存中删除所述第二配置信息,包括:
所述负载均衡服务对接入请求信息进行监控,当在第一预设时间内没有新的接入请求需要转发给第二应用实例集群时,则所述负载均衡服务器从缓存中删除所述第二配置信息。
6.如权利要求5所述的应用部署方法,其特征在于,所述第一配置信息包括:Key值、为所述第一应用实例集群配置的第一域名信息和应用实例名称;
所述将所述第一配置信息写入负载均衡服务器的缓存中,具体为:
将所述Key值写入所述负载均衡服务器的缓存中,将所述为所述第一应用实例集群配置的第一域名信息和应用实例名称存储在所述负载均衡服务器的数据表中;
所述第二配置信息包括:Key值、为所述第二应用实例集群配置的第二域名信息和应用实例名称;
所述将所述第二配置信息写入负载均衡服务器的缓存中,具体为:
将所述Key值写入所述负载均衡服务器的缓存中,将所述为所述第二应用实例集群配置的第二域名信息和应用实例名称存储在所述负载均衡服务器的数据表中。
7.如权利要求1所述的应用部署方法,其特征在于,向所述第一应用实例集群发布新的应用版本之后,进一步包括:
对所述第一应用实例集群中的各个实例进行验证;
向所述第二应用实例集群发布新的应用版本之后,进一步包括:
对所述第二应用实例集群中的各个实例进行验证。
8.一种应用部署系统,其特征在于,包括:应用发布服务器、应用部署服务器和负载均衡服务器;
所述应用发布服务器:用于获取应用实例信息和应用发布模型,并将所述应用实例划分为第一应用实例集群和第二应用实例集群,并分别为所述第一应用实例集群和所述第二应用实例集群分配第一配置信息和第二配置信息;当进行应用部署时,将所述第一配置信息和所述第二配置信息写入负载均衡服务器的缓存中,并指示所述负载均衡服务器暂停向转发接入请求;
所述负载均衡服务器:用于根据所述应用发布服务器的指示,暂停向所述第一应用实例集群或第二应用实例集群转发接入请求,并在没有新的接入请求需要转发给所述第一应用实例集群或第二应用实例集群时,所述负载均衡服务器从缓存中删除所述第一配置信息或第二配置信息;
所述应用部署服务器:用于在所述负载均衡服务器将所述第一配置信息或第二配置信息从缓存中删除后,根据所述应用发布模型向所述第一应用实例集群或第二应用实例集群发布新的应用版本。
9.如权利要求8所述的应用部署系统,其特征在于,所述应用发布服务器还用于:
获取所述应用实例的当前流量值和最大访问流量值;
根据所述当前流量值和所述最大访问流量值计算所述应用实例的占用率;
根据所述应用实例的占用率将所述应用实例划分为第一应用实例集和第二应用实例集。
10.一种应用发布服务器,其特征在于,包括:
应用实例集群划分模块:用于获取应用实例信息,并将所述应用实例划分为第一应用实例集群和第二应用实例集群,并分别为所述第一应用实例集群和所述第二应用实例集群分配第一配置信息和第二配置信息;
请求转发控制模块:用于在进行应用部署时,将所述第一配置信息和所述第二配置信息写入负载均衡服务器的缓存中,并指示所述负载均衡服务器暂停向第一应用实例集群或第二应用实例集群转发接入请求;
自动化部署模块:用于在所述负载均衡服务器将所述第一配置信息或第二配置信息从缓存中删除后,根据预先获取的应用发布模型向所述第一应用实例集群或第二应用实例集群发布新的应用版本。
CN202010466944.3A 2020-05-28 2020-05-28 一种应用部署方法、系统和服务器 Active CN113741924B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010466944.3A CN113741924B (zh) 2020-05-28 2020-05-28 一种应用部署方法、系统和服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010466944.3A CN113741924B (zh) 2020-05-28 2020-05-28 一种应用部署方法、系统和服务器

Publications (2)

Publication Number Publication Date
CN113741924A CN113741924A (zh) 2021-12-03
CN113741924B true CN113741924B (zh) 2023-02-24

Family

ID=78724105

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010466944.3A Active CN113741924B (zh) 2020-05-28 2020-05-28 一种应用部署方法、系统和服务器

Country Status (1)

Country Link
CN (1) CN113741924B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115225638B (zh) * 2022-07-21 2023-09-15 中国平安人寿保险股份有限公司 服务部署方法、装置、电子设备及计算机可读存储介质
CN116954685B (zh) * 2023-09-20 2023-12-26 浪潮通用软件有限公司 低代码应用系统灰度滚动升级方法、系统、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018166111A1 (zh) * 2017-03-13 2018-09-20 平安科技(深圳)有限公司 基于集中控制器及dci设备的负载均衡的方法、系统、电子装置及计算机可读存储介质
WO2019179026A1 (zh) * 2018-03-21 2019-09-26 平安科技(深圳)有限公司 电子装置、集群访问域名自动生成方法及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9229707B2 (en) * 2008-12-18 2016-01-05 Sap Se Zero downtime mechanism for software upgrade of a distributed computer system
US8959503B2 (en) * 2012-10-05 2015-02-17 Microsoft Technology Licensing Llc Application version gatekeeping during upgrade
US10574741B2 (en) * 2016-04-18 2020-02-25 Nokia Technologies Oy Multi-level load balancing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018166111A1 (zh) * 2017-03-13 2018-09-20 平安科技(深圳)有限公司 基于集中控制器及dci设备的负载均衡的方法、系统、电子装置及计算机可读存储介质
WO2019179026A1 (zh) * 2018-03-21 2019-09-26 平安科技(深圳)有限公司 电子装置、集群访问域名自动生成方法及存储介质

Also Published As

Publication number Publication date
CN113741924A (zh) 2021-12-03

Similar Documents

Publication Publication Date Title
CN107547596B (zh) 一种基于Docker的云平台控制方法及装置
US10216514B2 (en) Identification of a component for upgrade
US10929341B2 (en) Iterative object scanning for information lifecycle management
US8200610B1 (en) System and method for supporting the utilization of machine learning
US9430388B2 (en) Scheduler, multi-core processor system, and scheduling method
US20230205437A1 (en) Techniques for implementing fault domain sets
CN113741924B (zh) 一种应用部署方法、系统和服务器
CN109857451B (zh) Ip核文件生成方法、装置、设备及介质
CN110300130B (zh) 一种资源调度方法、装置、电子设备及存储介质
CN110532025B (zh) 基于微服务架构的数据处理方法、装置、设备及存储介质
US20190018703A1 (en) Managing tasks in a cloud computing environment using multiple orchestration tools
CN112363820A (zh) 基于异构硬件的统一资源池化容器调度引擎及其调度方法
CN113076248B (zh) 一种应用处理方法、装置、设备及可读存储介质
US11068311B2 (en) Allocating computing resources to a container in a computing environment
US9870234B2 (en) Automatic identification of returned merchandise in a data center
CN109857629B (zh) 一种扫描检测方法及装置
CN116974689A (zh) 集群容器调度方法、装置、设备及计算机可读存储介质
US20220179634A1 (en) Creating and upgrading of solutions for deployment in a virtualized computing environment
CN114662102A (zh) 一种文件处理方法、装置及存储介质
CN109324802B (zh) 用于配置服务器的方法和装置
CN113448609A (zh) 一种容器的升级方法、装置、设备和存储介质
KR20210142829A (ko) 복수의 엣지 디바이스에게 애플리케이션을 배포하는 엣지 컴퓨팅 시스템 및 방법
US11743188B2 (en) Check-in monitoring for workflows
US20060020801A1 (en) Adaptive management method with workflow control
US20220237021A1 (en) Systems and methods of telemetry diagnostics

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