CN113296825A - 一种应用的灰度发布方法、装置和应用发布*** - Google Patents

一种应用的灰度发布方法、装置和应用发布*** Download PDF

Info

Publication number
CN113296825A
CN113296825A CN202010749191.7A CN202010749191A CN113296825A CN 113296825 A CN113296825 A CN 113296825A CN 202010749191 A CN202010749191 A CN 202010749191A CN 113296825 A CN113296825 A CN 113296825A
Authority
CN
China
Prior art keywords
gray
gray scale
rule
application
flow
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.)
Pending
Application number
CN202010749191.7A
Other languages
English (en)
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN202010749191.7A priority Critical patent/CN113296825A/zh
Publication of CN113296825A publication Critical patent/CN113296825A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供了一种应用的灰度发布方法、装置和应用发布***,其中,该方法包括:在灰度发布的过程中,采集灰度流量数据;对所述灰度流量数据进行数据分析;如果所述灰度流量数据不符合预设条件,则生成灰度发布报警信息,其中,所述报警信息用于触发进行灰度规则调整。通过上述方案解决了现有的灰度发布无法基于实时的流量状况进行智能化分析和调整的问题,在发布过程中出现故障可以及时发现,从而可以实现智能化流量调整的目的。

Description

一种应用的灰度发布方法、装置和应用发布***
技术领域
本申请属于互联网技术领域,尤其涉及一种应用的灰度发布方法、装置和应用发布***。
背景技术
目前对于应用的升级发布,一般采用蓝绿部署的方式,所谓的蓝绿部署是一种不需要停机的部署方式,是一种以可预测的方式发布应用的技术。蓝绿部署方式可以减少发布过程中服务停止的时间。蓝绿部署在实现原理上就是通过冗余来解决问题。
通常生产环境需要两组配置:一组是active的生产环境的配置(称为绿配置),一组是inactive的配置(称为蓝配置)。用户访问的时候,只会让用户访问active的服务器集群,在绿色环境(active)运行当前生产环境中的应用,也就是旧版本应用version1。当需要升级到version2时,在蓝色环境(inactive)中进行操作,即部署新版本应用,并进行测试。如果测试没问题,就可以将负载均衡器/反向代理/路由等指向蓝色环境了。随后需要监测新版本应用(也就是version2)是否有故障和异常。如果运行良好,就可以删除version1使用的资源,如果运行出现问题,则可以通过负载均衡器指向快速回滚到绿色环境。
然而,上述基于蓝绿部署的灰度发布方式配置较为复杂,且配置项较多,无法基于实时的流量状况进行智能化分析和调整。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本申请目的在于提供一种应用的灰度发布方法、装置和应用发布***,可以在灰度发布的过程中进行实时的分析和调整。
本申请提供一种应用的灰度发布方法、装置和应用发布***是这样实现的:
一种应用的灰度发布方法,所述方法包括:
在灰度发布的过程中,采集灰度流量数据;
对所述灰度流量数据进行数据分析;
如果所述灰度流量数据不符合预设条件,则生成灰度发布报警信息,其中,所述报警信息用于触发进行灰度规则调整。
一种应用的灰度发布装置,包括:
采集模块,用于在灰度发布的过程中,采集灰度流量数据;
分析模块,用于对所述灰度流量数据进行数据分析;
生成模块,用于在所述灰度流量数据不符合预设条件的情况下,生成灰度发布报警信息,其中,所述报警信息用于触发进行灰度规则调整。
一种应用发布方法,包括:
接收输入的灰度发布规则;
根据输入的灰度发布规则,构建灰度规则;
接收上传的待灰度发布应用;
对所述待灰度发布应用进行灰度发布,在灰度发布的过程中,采集灰度流量数据,对所述灰度流量数据进行数据分析;
如果所述灰度流量数据不符合预设条件,则生成灰度发布报警信息,其中,所述报警信息用于触发进行灰度规则调整。
一种应用发布方法,包括:
接收输入的零售云应用的灰度发布规则;
根据输入的灰度发布规则,构建灰度规则;
接收上传的零售云应用更新包;
对所述零售云应用进行灰度发布,在灰度发布的过程中,采集灰度流量数据,对所述灰度流量数据进行数据分析;
如果所述灰度流量数据不符合预设条件,则生成灰度发布报警信息,其中,所述报警信息用于触发进行灰度规则调整。
一种应用发布***,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现如下方法的步骤:
在灰度发布的过程中,采集灰度流量数据;
对所述灰度流量数据进行数据分析;
如果所述灰度流量数据不符合预设条件,则生成灰度发布报警信息,其中,所述报警信息用于触发进行灰度规则调整。
一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现如下方法的步骤:
在灰度发布的过程中,采集灰度流量数据;
对所述灰度流量数据进行数据分析;
如果所述灰度流量数据不符合预设条件,则生成灰度发布报警信息,其中,所述报警信息用于触发进行灰度规则调整。
本申请提供的应用的灰度发布方法和装置,通过在灰度发布的过程中,采集灰度流量数据,然后对灰度流量数据进行数据分析,以确定是否有异常,如果确定灰度流量数据存在异常,那么就生成灰度发布报警信息以对灰度发布过程进行人工干预,如果没有异常,那么可以继续按照预设的灰度规则进行自动的灰度发布。通过上述方式可以按照预设规则进行灰度发布,又可以实时发现发布过程中的问题进行人工干预,从而可以解决现有的灰度发布无法基于实时的流量状况进行智能化分析和调整的问题,在发布过程中出现故障可以及时发现,从而可以实现智能化流量调整的目的。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的应用的灰度发布方法一种实施例的方法流程图;
图2是本申请提供的灰度服务标示意图;
图3是本申请提供的应用产品***一种实施例的模型结构示意图;
图4是本申请提供的灰度中心技术逻辑架构的示意图;
图5是本申请提供的灰度中心的***架构图;
图6是本申请提供的灰度发布的时序流程图;
图7是本申请提供的服务器的架构图;
图8是本申请提供的应用的灰度发布装置的一种结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
现有的灰度发布一般是采用如下方式实现的:将待发布的应用部署到容器云平台A和B上,通过负载均衡同时对外提供服务;当需要对应用进行版本升级时,屏蔽容器云平台B上应用的外部流量,在容器云平台B上进行版本升级,使版本从X升级到Y;通过智能DNS解析服务请求源地址,WEB区容器云平台的应用请求发送到部署有相同版本应用的容器云平台上;通过负载均衡切换外部流量,屏蔽容器云平台A上应用X版本的外部流量;在测试确认容器云平台A上的应用X版本成功升级到Y版本后,通过负载均衡同时开放流量。然而这种基于蓝绿部署的灰度发布方式配置较为复杂,且配置项较多,无法对灰度规则进行个性化定制,且无法基于实时的流量状况进行智能化分析和调整的问题,在本例中提供了一种通过流量数据采集进行智能化分析实现智能流量调拨的方法,以实现对灰度发布过程中流量的智能控制。
图1是本申请所述一种应用的灰度发布方法实施例的方法流程图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本申请实施例描述及附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构连接进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至分布式处理环境)。
具体的,如图1所示,本申请一种实施例提供的一种应用的灰度发布方法可以包括:
步骤101:在灰度发布的过程中,采集灰度流量数据;
其中,灰度发布指的是对某一功能的发布逐步扩大使用群体范围,如果无异常,则将所有流量迁移进来。通过灰度发布可以保证整体***的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。灰度发布就是根据比例将老版本升级,例如80%用户访问是老版本,20%用户访问是新版本。
在进行灰度发布的过程中,可以采集灰度流量数据,具体的,该灰度流量数据可以是通过采集灰度流量日志得到的。在软件升级***中,可以专门设置一个日志存储模块,所有的灰度流量日志都会记录并存储在该日志存储模块中。***中的数据处理分析模块从该日志存储模块中就可以提取灰度流量日志,从而得到灰度发布过程中的灰度流量数据,以此作为后续分析的基础。
步骤102:对所述灰度流量数据进行数据分析;
在得到灰度流量日志,或者是,灰度流量数据之后,可以对数据进行分析。具体的,可以设置几个分析项,例如:当前的***稳定性、新版本流量中故障的比例、新旧版本各自被划分流量比例等等。这些都可以作为分析项对灰度流量数据进行分析,如果符合预设条件,即,当前灰度发布状态正常,那么就可以继续按照当前状态执行,直到达到预设的观察周期。
上述的预设的观察周期可以理解为:假设设定的灰度发布规则是:新版本5%,旧版本95%的流量划分,执行第一时长,在第一时长内没有故障,那么就切换至:新版本20%,旧版本80%的流量划分,执行第二时长,在第二时长内没有故障,那么就切换至下一个状态继续执行。其中的第一时长和第二时长就是预设的观察周期。
步骤103:如果所述灰度流量数据不符合预设条件,则生成灰度发布报警信息,其中,所述报警信息用于触发进行灰度规则调整。
考虑到现有的无法对灰度发布过程中的灰度流量进行智能调整,在本例中提供了故障报警机制,在确定存在数据异常(即,确定灰度流量数据不符合预设条件)的情况下,就生成报警信息,这样用户就可以知道存在数据异常了,这时就可以触发进行灰度规则调整。
具体的,例如,可以调整当前的流量分配比例(降低新版本的比例),或者是,回到上一分配比例,或者是调整后续的流量分配比例,或者是调整后续的或者当前的观察周期等等。用户可以根据报警信息结合当前的状况,以及应用的属性等进行适应性调整,从而实现了智能化的流量调度和弹性灰度的需求。
在实际实现的时候,在生成灰度发布报警信息之后,可以将所述报警信息发送至预设的通信应用;通过所述通信应用展示所述报警信息;然后,接收用户设定的流量规则;将灰度流量切换至用户设定的流量规则所对应的流量值;根据切换后的灰度流量进行灰度发布。
例如,在生成报警信息之后,可以将报警信息通过钉钉发送给用户,即,通过钉钉实时通知灰度发布用户进行人工干预。然而,值得注意的是,上述所列举的钉钉作为通信应用仅是一种示例性描述,还可以采用其它的具备通信功能的应用,只要是可以通知到灰度发布用户的手段都可以,本申请对此不做限定。
具体的,在实现的时候,如果确定灰度流量数据符合预设条件,那么可以继续按照预设的灰度规则进行灰度发布。即,如果所述灰度流量数据符合预设条件,则可以在到达预设观察周期后,按照预设的灰度规则调整灰度流量。即,如果确定灰度流量数据符合预设条件,数据不存在异常,数据都是正常,那么就可以执行当前的流量分配继续运行,直至到达预设的发布观察周期,然后再切换至下一个流量分配状态。例如:当前流量分配是新版本:10%,旧版本90%,观察周期为1小时,那么在到达1小时时长的情况下。可以调取预设的灰度规则,该灰度规则可以是用户预先设定的,也可以是根据应用的情况智能设定的。在预设的灰度规则中,设定了下一个流量分布,假设为,新版本:20%,旧版本:80%,观察周期为2小时。那么就按照下一个流量分布设置状态调整灰度流量,即将当前的灰度流量调整为:新版本:20%,旧版本:80%,且观察两个小时。
针对上述的灰度规则,可以是最初设定的,即,可以是在灰度发布之前配置的。例如,在采集灰度流量数据之前,可以响应于灰度规则配置请求,获取为目标应用配置的灰度规则;存储所述灰度规则。
考虑到现有应用灰度发布后,流量是按照机器比例的随机流量,无法针对某一功能进行精确引流,且因为应用中存在多个服务,无法从链路维度进行验证。为此,在本例中设置了灰度服务标,为各个服务的不同版本配置灰度服务标,以生成引流规则。如图2所示,假设应用X存在A-B-C-D-E五个服务,针对该应用设置灰度服务标,tag1和tag2,其中,tag1对应的服务路径为:A-B1-C1-D-E1,tag2对应的服务路径为A2-B-C2-D2-E,常规服务路径为A-B-C-D-E。其中,1对应升级版本1,2对应升级版本2。在应用域,进行灰度发布的时候可以根据需求为常规服务路径、tag1对应的服务路径、tag2对应的服务路径分别设置流量值,从而实现引流的目的。且通过设置灰度服务标的形式可以实现多需求多层次的引流需求。
例如,可以为常规服务路径设置10%的流量、tag1对应的服务路径设置40%的流量、tag2对应的服务路径设置50%的流量等等。
然而,值得注意的是,上述仅是以两个灰度服务标的形式进行说明,在实际实现的时候,可以设置更多形式的服务标,例如,tag3对应的服务路径为A2-B2-C2-D2-E2,tag4对应的服务路径为A1-B1-C1-D1-E1等等,实现全升级版本1的应用和全升级版本2的应用。通过这种方式可以实现对目标应用中某一个或者多个服务的精确引流。
即,上述应用的灰度发布方法还可以包括:获取为所述目标应用中各个服务的不同版本配置的灰度服务标;根据为各个服务的不同版本配置的灰度服务标,生成引流规则;存储所述引流规则,其中,所述引流规则用于在应用域进行引流。
考虑在灰度发布的过程中,有时机器会存在故障问题等导致资源不足,为了解决这种问题可以对资源进行智能监控,并在有需要的时候,进行资源的自动扩容。在完成灰度发布后,可以自动回收这些扩容的资源。具体的,在对所述灰度流量数据进行数据分析之后,可以确定灰度发布集群中的机器是否存在故障或者机器资源是否充足;在确定机器存在故障或者机器资源不足的情况下,对灰度发布集群进行扩容;在灰度发布完成之后,回收扩容的资源。
例如,可以设置智能监控驱动器,当智能监控驱动器发现灰度发布集群机器发生故障或者验证需要的机器资源不足的情况下,则自动扩容资源,当完成灰度发布后,会自动回收扩容的资源。
为了实现上述的应用的灰度发布方法,在本例中提供了一种应用产品***,如图3所示,可以包括:环境基础设施部分、流量管控能力部分、环境搭建能力部分。
具体的:
1)环境基础设施部分可以包括:环境视图和自动化智能运维,其中,环境视图可以包括:灰度视图、机器视图和隔离配置,用于了解当前应用接入灰度体系的灰度配置;自动化智能运维,用于对灰度环境各项指标进行自动化运维检测及告警,数据化驱动灰度发布,规避风险;
2)流量管控能力部分可以包括:引流能力(包括运行平台和线上),用于满足不同的流量需求;流量精确配置能力(可以包括:HTTP和HSF),用于对HTTP和HSF入口流量进行识别,以满足零售云片后端HSF服务特性的流量需求,并且支持测试流量的引入;流量安全保证能力,做到启用/禁用流量秒级生效,保证流量安全。
3)环境搭建能力部分,用于借助研发运行平台的环境能力,实现应用维度灰度环境自动化快速搭建,快速释放的闭环能力。可以包括:应用圈定,用于应用预检验和隔离预设置;应用接入审核,用于消息通知;应用接入,用于统一接入dpath和nacos,新增接入应用、机器自动扩容和应用自动部署;机器扩容,用于应用自动部署和二次扩容管控;机器下线,用于自动缩容;环境释放。
具体的,还可以包括底层隔离能力,实现对例如:HSF、Spring Cloud,Dubbo,MQ,Diamond等的中间件流量隔离。服务发现和配置能力,用于借助nacos能力,实现服务发现、动态配置服务和动态dns服务。
对于灰度中心技术逻辑架构可以如图4所示,包括:办公网流量全部劫持到安全生产环境中,线上的流量通过云解析DNS有1%的生产流量进入安全生产环境,有99%的生产流量进入线上生产环境。
其中,安全生产环境可以包括:接入层、中间件和服务层,其中,接入层可以包括API网关、SLB和TEengine,中间件可以包括dpath和nacos。线上生产环境可以包括:接入层、中间件、服务层和缓存数据库。其中,安全生产环境中的接入层可通过单项回流线与线上生产环境中的接入层进行交互,安全生产环境中的服务层可以使用线上中间件与线上生产环境中的中间件进行交互,安全生产环境中服务层可以使用线上缓存、数据库与线上生产
其中,接入层可以建设独立集群与生产隔离,基于GSLB分流,默认1%流量,API网关流量控制插件中的后端路由适合租户路由和蓝绿发布。接入层对流量加标,以方便后期问题排查。应用灰度环境使用独立资源池,应用接入自动创建灰度环境,服务器自带小流量标识。流量隔离使用dpath实现中间件流量隔离,基于dpath的服务流量规则配置,dpath具备灰度标识别和路由能力,灰度中心依赖EDAS POP接口。
对于灰度中心而言,可以如图5所示,包括:管控域和应用域。其中,管控域可以包括:研发运行平台、统一流量网关、ARMS、Diamond、Tengine和APP。应用域基于规则进行灰度发布。在灰度发布流程中,可以包括:灰度发布提交、灰度空间配置项、切流、部署/回滚、引流和灰度确认。
即,通过引入服务引流组件和流量调度架构、流程来解决服务灰度不能个性化定制的问题,灰度***通过中间件流量隔离组件来实现例如:HSF、Spring Cloud,Dubbo,MQ,Diamond等的中间件流量隔离,同时通过流量数据采集进行智能化分析实现智能流量调拨,通过Serverless云原生的弹性技术实现弹性灰度,从而达成服务仿真、灰度发布等以有效保障服务***的迭代升级。
具体的,灰度发布流程可以如图6所示,包括:
步骤1:灰度发布用户通过研发运营平台创建灰度规则,规则配置在Diamond;
步骤2:用户配置服务灰度标,通过统一流量网关设置保存在Diamond;
步骤3:用户执行灰度发布流程,智能监控驱动器ARMS实时监控规则的变化;
步骤4:从Tengine中采集灰度流量日志;
步骤5:从APP中采集灰度流量日志;
步骤6:对从Tengine和APP中采集的灰度流量日志进行流量数据分析;
步骤7:如果数据异常,用户可以通过研发运营平台人工干预调整灰度流量进行流量切换;
步骤8:如果数据正常,则在预设的发布观察周期时间到达后自动调用统一流量网关发起灰度流量调整(例如:从灰度流量5%调整到20%),然后继续新的流量发布观察周期时间,正常则继续灰度流量调整直到流量100%切换到灰度环境,即完成从蓝环境切换到绿环境,从而完成灰度发布/蓝绿发布;
步骤9:如果数据有异常,则通过钉钉机器人实时通知灰度发布用户进行人工干预;
步骤10:分析数据机器不够或者机器故障,需要扩容资源,则进行资源扩容;
步骤11:在灰度发布完成后,则自动回收扩容资源。
即,通过智能调度灰度流量、特殊场景下人工干预、智能监控报警等机制保证灰度发布的正确性和可靠性;智能监控驱动器当发现灰度发布集群机器故障或者验证需要的机器资源不足,则会自动扩容资源;当完成灰度发布后,会自动回收扩容的资源。
具体的,上述应用发布方法,可以是应用在开发人员进行应用发布侧的,例如,开发人员可以输入灰度发布规则,以构建灰度规则,然后开发人员上传待灰度发布的应用,从而触发对待灰度发布应用进行灰度发布,在灰度发布的过程中,采集灰度流量数据,对所述灰度流量数据进行数据分析;如果所述灰度流量数据不符合预设条件,则生成灰度发布报警信息,其中,所述报警信息用于触发进行灰度规则调整。
其中,上述待灰度发布应用可以但不限于是电商平台应用。
将上述应用发布方法应用在零售云场景中,可以包括如下步骤:
步骤1:接收输入的零售云应用的灰度发布规则;
步骤2:根据输入的灰度发布规则,构建灰度规则;
步骤3:接收上传的零售云应用更新包;
步骤4:对所述零售云应用进行灰度发布,在灰度发布的过程中,采集灰度流量数据,对所述灰度流量数据进行数据分析;
步骤5:如果所述灰度流量数据不符合预设条件,则生成灰度发布报警信息,其中,所述报警信息用于触发进行灰度规则调整;
步骤6:如果所述灰度流量数据符合预设条件,则在到达预设观察周期后,按照预设的灰度规则调整灰度流量。
本申请上述实施例所提供的方法实施例可以在服务器端、计算机终端或者类似的运算装置中执行。以运行在服务器端上为例,图7是本发明实施例的一种应用的灰度发布方法的服务器的硬件结构框图。如图7所示,服务器10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图7所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器10还可包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的应用的灰度发布方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的应用的灰度发布方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输模块106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
在软件层面,上述应用的灰度发布装置可以如图8所示,包括:
采集模块801,用于在灰度发布的过程中,采集灰度流量数据;
分析模块802,用于对所述灰度流量数据进行数据分析;
生成模块803,用于在所述灰度流量数据不符合预设条件的情况下,生成灰度发布报警信息,其中,所述报警信息用于触发进行灰度规则调整。
在一个实施方式中,上述应用的灰度发布装置还可以调整模块,用于在所述灰度流量数据符合预设条件的情况下,在到达预设观察周期后,按照预设的灰度规则调整灰度流量;
在一个实施方式中,上述应用的灰度发布装置还可以包括:发送模块,用于在生成灰度发布报警信息之后,将所述报警信息发送至预设的通信应用;展示模块,用于通过所述通信应用展示所述报警信息;接收模块,用于接收用户设定的流量规则;切换模块,用于将灰度流量切换至用户设定的流量规则所对应的流量值;发布模块,用于根据切换后的灰度流量进行灰度发布。
在一个实施方式中,上述应用的灰度发布装置还可以包括:第一获取模块,用于在灰度发布的过程中,采集灰度流量数据之前,响应于灰度规则配置请求,获取为目标应用配置的灰度规则;存储模块,用于存储所述灰度规则。
在一个实施方式中,上述应用的灰度发布装置还可以包括:第二获取模块,用于获取为所述目标应用中各个服务的不同版本配置的灰度服务标;生成模块,用于根据为各个服务的不同版本配置的灰度服务标,生成引流规则;存储模块,用于存储所述引流规则,其中,所述引流规则用于在应用域进行引流。
在一个实施方式中,上述应用的灰度发布装置还可以包括:确定模块,用于在对所述灰度流量数据进行数据分析之后,确定灰度发布集群中的机器是否存在故障或者机器资源是否充足;扩容模块,用于在确定机器存在故障或者机器资源不足的情况下,对灰度发布集群进行扩容;回收模块,用于在灰度发布完成之后,回收扩容的资源。
在一个实施方式中,上述采集模块801可以包括:第一获取单元,用于获取灰度流量日志;第二获取单元,用于根据所述灰度流量日志获取灰度流量数据。
本申请的实施例还提供能够实现上述实施例中的应用的灰度发布方法中全部步骤的一种电子设备的具体实施方式,所述电子设备具体包括如下内容:处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的应用的灰度发布方法中的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤1:在灰度发布的过程中,采集灰度流量数据;
步骤2:对所述灰度流量数据进行数据分析;
步骤3:如果所述灰度流量数据符合预设条件,则在到达预设观察周期后,按照预设的灰度规则调整灰度流量;
步骤4:如果所述灰度流量数据不符合预设条件,则生成灰度发布报警信息,其中,所述报警信息用于触发进行灰度规则调整。
从上述描述可知,本申请实施例通过在灰度发布的过程中,采集灰度流量数据,然后对灰度流量数据进行数据分析,以确定是否有异常,如果确定灰度流量数据存在异常,那么就生成灰度发布报警信息以对灰度发布过程进行人工干预,如果没有异常,那么就继续按照预设的灰度规则进行自动的灰度发布。通过上述方式可以按照预设规则进行灰度发布,又可以实时发现发布过程中的问题进行人工干预,从而可以解决现有的灰度发布无法基于实时的流量状况进行智能化分析和调整的问题,达到了智能化流量调整的目的。
本申请的实施例还提供能够实现上述实施例中的应用的灰度发布方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的应用的灰度发布方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤1:在灰度发布的过程中,采集灰度流量数据;
步骤2:对所述灰度流量数据进行数据分析;
步骤3:如果所述灰度流量数据符合预设条件,则在到达预设观察周期后,按照预设的灰度规则调整灰度流量;
步骤4:如果所述灰度流量数据不符合预设条件,则生成灰度发布报警信息,其中,所述报警信息用于触发进行灰度规则调整。
从上述描述可知,本申请实施例通过在灰度发布的过程中,采集灰度流量数据,然后对灰度流量数据进行数据分析,以确定是否有异常,如果确定灰度流量数据存在异常,那么就生成灰度发布报警信息以对灰度发布过程进行人工干预,如果没有异常,那么就继续按照预设的灰度规则进行自动的灰度发布。通过上述方式可以按照预设规则进行灰度发布,又可以实时发现发布过程中的问题进行人工干预,从而可以解决现有的灰度发布无法基于实时的流量状况进行智能化分析和调整的问题,达到了智能化流量调整的目的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本说明书实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书的实施例可提供为方法、***或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。

Claims (19)

1.一种应用的灰度发布方法,其特征在于,所述方法包括:
在灰度发布的过程中,采集灰度流量数据;
对所述灰度流量数据进行数据分析;
如果所述灰度流量数据不符合预设条件,则生成灰度发布报警信息,其中,所述报警信息用于触发进行灰度规则调整。
2.根据权利要求1所述的方法,其特征在于,在对所述灰度流量数据进行数据分析之后,还包括:
如果所述灰度流量数据符合预设条件,则在到达预设观察周期后,按照预设的灰度规则调整灰度流量。
3.根据权利要求1所述的方法,其特征在于,在生成灰度发布报警信息之后,还包括:
将所述报警信息发送至预设的通信应用;
通过所述通信应用展示所述报警信息;
接收用户设定的流量规则;
将灰度流量切换至用户设定的流量规则所对应的流量值;
根据切换后的灰度流量进行灰度发布。
4.根据权利要求1所述的方法,其特征在于,在灰度发布的过程中,采集灰度流量数据之前,还包括:
响应于灰度规则配置请求,获取为目标应用配置的灰度规则;
存储所述灰度规则。
5.根据权利要求1所述的方法,其特征在于,还包括:
获取为目标应用中各个服务的不同版本配置的灰度服务标;
根据为各个服务的不同版本配置的灰度服务标,生成引流规则;
存储所述引流规则,其中,所述引流规则用于在应用域进行引流。
6.根据权利要求1所述的方法,其特征在于,对所述灰度流量数据进行数据分析之后,还包括:
确定灰度发布集群中的机器是否存在故障或者机器资源是否充足;
在确定机器存在故障或者机器资源不足的情况下,对灰度发布集群进行扩容;
在灰度发布完成之后,回收扩容的资源。
7.根据权利要求1所述的方法,其特征在于,采集灰度流量数据,包括:
获取灰度流量日志;
根据所述灰度流量日志获取灰度流量数据。
8.一种应用发布方法,其特征在于,包括:
接收输入的灰度发布规则;
根据输入的灰度发布规则,构建灰度规则;
接收上传的待灰度发布应用;
对所述待灰度发布应用进行灰度发布,在灰度发布的过程中,采集灰度流量数据,对所述灰度流量数据进行数据分析;
如果所述灰度流量数据不符合预设条件,则生成灰度发布报警信息,其中,所述报警信息用于触发进行灰度规则调整。
9.根据权利要求8所述的方法,其特征在于,所述待灰度发布应用为电商平台应用。
10.一种应用发布方法,其特征在于,包括:
接收输入的零售云应用的灰度发布规则;
根据输入的灰度发布规则,构建灰度规则;
接收上传的零售云应用更新包;
对所述零售云应用进行灰度发布,在灰度发布的过程中,采集灰度流量数据,对所述灰度流量数据进行数据分析;
如果所述灰度流量数据不符合预设条件,则生成灰度发布报警信息,其中,所述报警信息用于触发进行灰度规则调整。
11.一种应用的灰度发布装置,其特征在于,包括:
采集模块,用于在灰度发布的过程中,采集灰度流量数据;
分析模块,用于对所述灰度流量数据进行数据分析;
生成模块,用于在所述灰度流量数据不符合预设条件的情况下,生成灰度发布报警信息,其中,所述报警信息用于触发进行灰度规则调整。
12.根据权利要求11所述的装置,其特征在于,还包括:
调整模块,用于在对所述灰度流量数据进行数据分析之后,在所述灰度流量数据符合预设条件的情况下,在到达预设观察周期后,按照预设的灰度规则调整灰度流量。
13.根据权利要求11所述的装置,其特征在于,还包括:
发送模块,用于在生成灰度发布报警信息之后,将所述报警信息发送至预设的通信应用;
展示模块,用于通过所述通信应用展示所述报警信息;
接收模块,用于接收用户设定的流量规则;
切换模块,用于将灰度流量切换至用户设定的流量规则所对应的流量值;
发布模块,用于根据切换后的灰度流量进行灰度发布。
14.根据权利要求11所述的装置,其特征在于,还包括:
第一获取模块,用于在灰度发布的过程中,采集灰度流量数据之前,响应于灰度规则配置请求,获取为目标应用配置的灰度规则;
存储模块,用于存储所述灰度规则。
15.根据权利要求11所述的装置,其特征在于,还包括:
第二获取模块,用于获取为目标应用中各个服务的不同版本配置的灰度服务标;
生成模块,用于根据为各个服务的不同版本配置的灰度服务标,生成引流规则;
存储模块,用于存储所述引流规则,其中,所述引流规则用于在应用域进行引流。
16.根据权利要求11所述的装置,其特征在于,还包括:
确定模块,用于在对所述灰度流量数据进行数据分析之后,确定灰度发布集群中的机器是否存在故障或者机器资源是否充足;
扩容模块,用于在确定机器存在故障或者机器资源不足的情况下,对灰度发布集群进行扩容;
回收模块,用于在灰度发布完成之后,回收扩容的资源。
17.根据权利要求11所述的装置,其特征在于,所述采集模块,包括:
第一获取单元,用于获取灰度流量日志;
第二获取单元,用于根据所述灰度流量日志获取灰度流量数据。
18.一种应用发布***,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至7中任一项所述方法的步骤。
19.一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现权利要求1至7中任一项所述方法的步骤。
CN202010749191.7A 2020-07-30 2020-07-30 一种应用的灰度发布方法、装置和应用发布*** Pending CN113296825A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010749191.7A CN113296825A (zh) 2020-07-30 2020-07-30 一种应用的灰度发布方法、装置和应用发布***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010749191.7A CN113296825A (zh) 2020-07-30 2020-07-30 一种应用的灰度发布方法、装置和应用发布***

Publications (1)

Publication Number Publication Date
CN113296825A true CN113296825A (zh) 2021-08-24

Family

ID=77318235

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010749191.7A Pending CN113296825A (zh) 2020-07-30 2020-07-30 一种应用的灰度发布方法、装置和应用发布***

Country Status (1)

Country Link
CN (1) CN113296825A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114422440A (zh) * 2022-03-28 2022-04-29 北京沃丰时代数据科技有限公司 灰度发布方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016179958A1 (zh) * 2015-05-12 2016-11-17 百度在线网络技术(北京)有限公司 对移动应用进行灰度发布的方法、装置和***
CN110362974A (zh) * 2019-05-31 2019-10-22 杭州恩牛网络技术有限公司 服务灰度发布方法、装置、介质及电子设备
CN110365502A (zh) * 2018-03-26 2019-10-22 华为技术有限公司 一种服务升级管理的方法、装置及存储介质
CN110457223A (zh) * 2019-08-13 2019-11-15 中国联合网络通信集团有限公司 灰度测试引流方法、装置、代理服务器及可读存储介质
CN110688134A (zh) * 2019-08-29 2020-01-14 阿里巴巴集团控股有限公司 灰度发布的方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016179958A1 (zh) * 2015-05-12 2016-11-17 百度在线网络技术(北京)有限公司 对移动应用进行灰度发布的方法、装置和***
CN110365502A (zh) * 2018-03-26 2019-10-22 华为技术有限公司 一种服务升级管理的方法、装置及存储介质
CN110362974A (zh) * 2019-05-31 2019-10-22 杭州恩牛网络技术有限公司 服务灰度发布方法、装置、介质及电子设备
CN110457223A (zh) * 2019-08-13 2019-11-15 中国联合网络通信集团有限公司 灰度测试引流方法、装置、代理服务器及可读存储介质
CN110688134A (zh) * 2019-08-29 2020-01-14 阿里巴巴集团控股有限公司 灰度发布的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李晓毅: "电子银行***灰度发布的研究与实现", 《金融电子化》, no. 01, 15 January 2018 (2018-01-15), pages 93 - 95 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114422440A (zh) * 2022-03-28 2022-04-29 北京沃丰时代数据科技有限公司 灰度发布方法、装置、电子设备及存储介质
CN114422440B (zh) * 2022-03-28 2022-07-12 北京沃丰时代数据科技有限公司 灰度发布方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN110413346B (zh) 一种参数更新方法及装置
US10198284B2 (en) Ensuring operational integrity and performance of deployed converged infrastructure information handling systems
CN104657194B (zh) 用于计算网络中动作的影响的方法和***
CN108768728A (zh) 运维任务处理方法、装置、计算机设备和存储介质
CN107491371B (zh) 一种监控部署的方法以及装置
US11934855B2 (en) System and method to autonomously manage hybrid information technology (IT) infrastructure
CN114527996A (zh) 一种多服务的部署方法、装置、电子设备及存储介质
CN110196804B (zh) 业务的测试方法和装置、存储介质、电子装置
CN113918276A (zh) 一种基于容器的sdn控制器部署方法、设备及介质
CN107545178A (zh) 一种云应用的检测方法及云应用检测装置
CN113608880A (zh) 算法模型部署***
CN113595773B (zh) 信息处理方法、装置、电子设备和存储介质
CN114609995A (zh) 故障控制方法、装置、***、设备、介质及产品
CN115080436A (zh) 测试指标确定方法、装置、电子设备及存储介质
CN113296825A (zh) 一种应用的灰度发布方法、装置和应用发布***
CN114661594A (zh) 一种用于自动化测试的方法、设备、介质及程序产品
CN114185734A (zh) 一种监控集群的方法、装置及电子设备
US11663544B2 (en) System and methods for risk assessment in a multi-tenant cloud environment
CN115129574A (zh) 一种代码测试方法和装置
CN116755799A (zh) 一种服务编排***和方法
CN109766235A (zh) 基于软件监控的配置文件检测方法、***、设备及介质
CN115658287A (zh) 一种用于调度运行单元的方法、设备、介质及程序产品
CN114661593A (zh) 一种用于自动化测试的方法、设备、介质及程序产品
CN114416276A (zh) 设备管理服务的调度方法、装置、电子设备及存储介质
CN109167826A (zh) Web应用的上架方法、装置及***

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