CN112269591A - 版本发布方法、装置、设备及存储介质 - Google Patents

版本发布方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112269591A
CN112269591A CN202011258571.7A CN202011258571A CN112269591A CN 112269591 A CN112269591 A CN 112269591A CN 202011258571 A CN202011258571 A CN 202011258571A CN 112269591 A CN112269591 A CN 112269591A
Authority
CN
China
Prior art keywords
container
updated
preset
access
preset proportion
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
CN202011258571.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.)
Beijing Ling Skylark Technology Co ltd
Original Assignee
Beijing Ling Skylark 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 Beijing Ling Skylark Technology Co ltd filed Critical Beijing Ling Skylark Technology Co ltd
Priority to CN202011258571.7A priority Critical patent/CN112269591A/zh
Publication of CN112269591A publication Critical patent/CN112269591A/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/65Updates
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

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)
  • Stored Programmes (AREA)

Abstract

本申请提供了一种版本发布方法、装置、设备及存储介质,包括:检测到第一容器存在更新时,将指向第二容器的第一预设比例的访问流量导向更新后的第一容器,获取在更新后的第一容器下第一预设比例的访问流量的处理结果,若处理结果满足预设条件,根据预设的灰度发布规则,从指向第二容器的访问流量中获取第二预设比例的访问流量,并将第二预设比例的访问流量导向更新后的第一容器,重复本步骤,直至将指向第二容器的所有访问流量导向更新后的第一容器,将第二容器的软件版本更新为更新后的第一容器的软件版本,将所有访问流量导向更新后的第二容器。通过自动化的方式实现版本灰度发布,减少了人工操作引入的错误率,提高了版本发布的效率和准确度。

Description

版本发布方法、装置、设备及存储介质
技术领域
本申请涉及计算机软件技术领域,具体而言,涉及一种版本发布方法、装置、设备及存储介质。
背景技术
为满足用户日益增长的需求,软件版本也在不断地进行迭代更新,因此对版本上线前的测试方法也提出了更高的要求。
现有技术中,版本发布主要是通过灰度发布的方式来实现,灰度发布指的是在黑与白之间,能够平滑过渡的一种发布方式,发布者根据经验结合新旧版本的数据对比来判断是逐步增加导向新版本的流量还是回滚到旧版本,例如刚开始给新版本分配10%的流量,运行一段时间后,管理员观察各项指标无异常,然后把导向新版本的流量提升到20%,运行一段时间后再观察,然后重复这个过程,中间如果发布者发现任何的错误,则将流量切回到老版本,保证用户的正常使用。
然而,上述过程主要是依赖于人工来完成整个灰度发布的,造成版本发布的效率低下,并且准确度不高。
发明内容
本申请的目的在于,针对上述现有技术中的不足,提供一种版本发布方法、装置、设备及存储介质,以解决现有技术中版本发布的效率低下,且准确度不高的问题。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请一实施例提供了一种版本发布方法,所述方法包括:
检测到第一容器存在更新时,将指向第二容器的第一预设比例的访问流量导向更新后的第一容器;
获取在所述更新后的第一容器下所述第一预设比例的访问流量的处理结果;
若所述处理结果满足预设条件,则根据预设的灰度发布规则,从指向所述第二容器的访问流量中获取第二预设比例的访问流量,并将所述第二预设比例的访问流量导向所述更新后的第一容器,重复本步骤,直至将指向所述第二容器的所有访问流量导向更新后的第一容器;
将所述第二容器的软件版本更新为所述更新后的第一容器的软件版本,并将所述所有访问流量导向更新后的第二容器。
可选地,若所述处理结果不满足所述预设条件,所述方法还包括:
将所述第一预设比例的访问流量从所述更新后的第一容器回滚至所述第二容器。
可选地,所述将所述第一预设比例的访问流量从所述第一容器回滚至所述第二容器,包括:
每隔预设间隔,获取在所述第一容器下所述第一预设比例的访问流量的处理结果;
若预设次数的所述处理结果均不满足所述预设条件,则将所述第一预设比例的访问流量从所述更新后的第一容器回滚至所述第二容器。
可选地,所述检测到第一容器存在更新时,将指向第二容器的第一预设比例的访问流量导向更新后的第一容器,包括:
采用预先创建的所述第一容器对外提供的第一调用接口,将所述第一预设比例的访问流量导向更新后的第一容器。
可选地,所述采用预先创建的所述第一容器对外提供的第一调用接口,将所述第一预设比例的访问流量导向更新后的第一容器,包括:
依次采用预设调用接口、所述第一调用接口,将所述第一预设比例的访问流量导向更新后的第一容器,所述预设调用接口为创建所述灰度发布规则前所述第一容器对外提供的调用接口。
可选地,所述检测到第一容器更新时,将指向第二容器的第一预设比例的访问流量导向更新后的第一容器之前,还包括:
检测到用户创建的所述灰度发布规则时,对所述第一容器进行复制得到所述第二容器;
将指向所述第一容器的所有访问流量导向所述第二容器。
可选地,所述将所述第一预设比例的访问流量从所述更新后的第一容器回滚至所述第二容器,包括:
采用预先创建的所述第二容器对外提供的第二调用接口,将所述第一预设比例的访问流量从所述更新后的第一容器回滚至所述第二容器。
第二方面,本申请另一实施例提供了一种版本发布装置,所述装置包括:
处理模块,用于检测到第一容器存在更新时,将指向第二容器的第一预设比例的访问流量导向更新后的第一容器;
获取模块,用于获取在所述第一容器下所述第一预设比例的访问流量的处理结果;
所述处理模块,还用于若所述处理结果满足预设条件,则根据预设的灰度发布规则,从指向所述第二容器的访问流量中获取第二预设比例的访问流量,并将所述第二预设比例的访问流量导向更新后的第一容器,重复本步骤,直至将指向所述第二容器的所有访问流量导向更新后的第一容器,将所述第二容器的软件版本更新为所述更新后的第一容器的软件版本,并将所述所有访问流量导向更新后的第二容器。
可选地,若所述处理结果不满足所述预设条件,所述处理模块还用于:
将所述第一预设比例的访问流量从所述更新后的第一容器回滚至所述第二容器。
可选地,所述处理模块具体用于:
每隔预设间隔,获取在所述第一容器下所述第一预设比例的访问流量的处理结果;
若预设次数的所述处理结果均不满足所述预设条件,则将所述第一预设比例的访问流量从所述更新后的第一容器回滚至所述第二容器。
可选地,所述处理模块具体用于:
采用预先创建的所述第一容器对外提供的第一调用接口,将所述第一预设比例的访问流量导向更新后的第一容器。
可选地,所述处理模块具体用于:
依次采用预设调用接口、所述第一调用接口,将所述第一预设比例的访问流量导向更新后的第一容器,所述预设调用接口为创建所述灰度发布规则前所述第一容器对外提供的调用接口。
可选地,所述检测到第一容器更新时,将指向第二容器的第一预设比例的访问流量导向更新后的第一容器之前,所述处理模块还用于:
检测到用户创建的所述灰度发布规则时,对所述第一容器进行复制得到所述第二容器;
将指向所述第一容器的所有访问流量导向所述第二容器。
可选地,所述处理模块具体用于:
采用预先创建的所述第二容器对外提供的第二调用接口,将所述第一预设比例的访问流量从所述更新后的第一容器回滚至所述第二容器。
第三方面,本申请另一实施例提供了一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的计算机程序,当所述计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述计算机程序,以执行第一方面所述的方法。
第四方面,本申请另一实施例提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行第一方面所述方法。
本申请实施例提供的版本发布方法、装置、设备及存储介质,其中,该方法包括:检测到第一容器存在更新时,将指向第二容器的第一预设比例的访问流量导向更新后的第一容器,获取在更新后的第一容器下第一预设比例的访问流量的处理结果,若处理结果满足预设条件,则根据预设的灰度发布规则,从指向第二容器的访问流量中获取第二预设比例的访问流量,并将第二预设比例的访问流量导向更新后的第一容器,重复本步骤,直至将指向第二容器的所有访问流量导向更新后的第一容器,将第二容器的软件版本更新为更新后的第一容器的软件版本,并将所有访问流量导向更新后的第二容器。和现有技术相比,本申请通过自动化的方式实现版本的灰度发布,减少了人工操作引入的错误率,提高了版本发布的效率和准确度。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例提供的版本发布方法的流程示意图一;
图2示出了本申请实施例提供的版本发布方法的流程示意图二;
图3示出了本申请实施例提供的版本发布方法的流程示意图三;
图4示出了本申请实施例提供的创建灰度发布规则前的访问流量导向的示意图;
图5示出了本申请实施例提供的创建灰度发布规则后的访问流量导向的示意图;
图6示出了本申请实施例提供的版本发布装置的结构示意图;
图7示出了本申请实施例提供的计算机设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
目前,每当开发完一个软件版本,发布者都会在上线前对该版本进行尽可能完整的测试,但由于客户的使用方式、数据来源的千差万别,以及测试规模和真实测试环境规模的差距,因为更安全可控的新版本发布方式就成为发布者的迫切需求。
目前,版本发布主要是通过灰度发布来实现的,现有技术存在的缺陷在于:通过人工操作来完成整个灰度发布的上线流程,因此存在不确定性和不安全性,造成版本发布的效率低下,并且准确度不高。为解决现有技术中存在的问题,本申请引入自动化的方式来实现版本的灰度发布,减少了人工操作引入的错误率,提高了版本发布的效率和准确度。
下面结合几个具体实施例对本申请提供的版本发布方法进行详细介绍。
图1示出了本申请实施例提供的版本发布方法的流程示意图一,本实施例的执行主体可以为计算机设备,例如可以为后台服务器。如图1所示,该方法包括:
S101、检测到第一容器存在更新时,将指向第二容器的第一预设比例的访问流量导向更新后的第一容器。
其中,第一容器可以为目标应用的旧版本的容器,第二容器可以为用户当前访问的目标应用的旧版本的容器,也就是说,目标应用的旧版本的容器包括第一容器和第二容器,区别在于当前访问的是第二容器。
通常情况下,目标应用的容器存在更新时,说明目标应用的软件版本存在一定的更新,目标应用可以为任意一款软件应用,例如可以为网页应用,本实施例对目标应用不做特别限定。
第一容器存在更新可以是目标应用的旧版本存在更新,检测到第一容器存在更新时,将指向第二容器的第一预设比例的访问流量导向更新后的第一容器,也就是说,检测到目标应用的旧版本存在更新时,则可以将原本指向第二容器的第一预设比例的访问请求导向更新后的第一容器,也即由更新后的第一容器来处理第二容器的第一预设比例的访问请求。
需要说明的是,第一预设比例可以根据实际情况选取,例如可以为10%、15%等,本实施例对此不做特别限定。
可选地,检测到第一容器更新时,将指向第二容器的第一预设比例的访问流量导向更新后的第一容器之前,还包括:
检测到用户创建的灰度发布规则时,对第一容器进行复制得到第二容器;
将指向第一容器的所有访问流量导向第二容器。
检测到创建的灰度发布规则之前,访问流量实际上导向的是第一容器,检测到创建的灰度发布规则时,则可以对第一容器进行复制得到第二容器,并将指向第一容器的所有访问流量导向第二容器,也就是说,第二容器是版本发布前所有访问流量导向的容器,第一容器是用户可以更新的容器,可选地,可以采用运行在kubernetes上的开源软件flagger的控制器检测灰度发布规则。
S102、获取在更新后的第一容器下第一预设比例的访问流量的处理结果。
将指向第二容器的第一预设比例的访问流量导向更新后的第一容器,更新后的第一容器可以处理第一预设比例的访问流量,并获取第一预设比例的访问流量的处理结果。
其中,该处理结果可以包括如下结果中的至少一种:
平均响应时长、错误率。
平均响应时长可以为更新后的第一容器处理第一预设比例的访问流量的平均响应时长,访问错误率可以为更新后的第一容器处理第一预设比例的访问流量的错误率,通常第一容器处理访问流量出错时,后台服务器可以根据出错产生的错误码判断出错类型,这样用户侧也无法接收来自后台服务器的反馈响应,用户界面上可以显示有“访问出错”的字样。
需要说明的是,处理结果可以通过设置于后台服务器上的监控软件采集得到,后台服务器例如可以为linux服务器,监控软件例如可以为运行在linux服务器上的promethues,版本发布者可以根据实际需求在该监控软件中写入需要采集的处理结果的类型,从而可以通过该监控软件采集得到各种处理结果。
S103、若处理结果满足预设条件,则根据预设的灰度发布规则,从指向第二容器的访问流量中获取第二预设比例的访问流量,并将第二预设比例的访问流量导向更新后的第一容器,重复本步骤,直至将指向第二容器的所有访问流量导向更新后的第一容器。
预设条件可以包括如下条件中的任意一种:
小于或等于预设响应时长、小于或等于预设错误率。
预设条件与处理结果相对应,也就是说,若处理结果包括平均响应时长,则预设条件可以为小于或等于预设响应时长,若处理结果包括错误率,则预设条件可以为小于或等于预设错误率。
若处理结果满足预设条件,则根据预设的灰度发布规则,从指向第二容器的访问流量中获取第二预设比例的访问流量,并将第二预设比例的访问流量导向更新后的第一容器,也就是说,预设的灰度发布规则中包括访问流量的增加比例,也即第二预设比例,若第一预设比例的访问流量的处理结果满足预设条件,则再从指向第二容器的访问流量中增加第二预设比例,将增加的第二预设比例的访问流量导向更新后的第一容器。
重复本步骤,直至将指向第二容器的所有访问流量导向更新后的第一容器,也就是说,若更新后的第一容器对第二预设比例的访问流量的处理结果满足预设条件,则根据预设的灰度发布规则,再从指向第二容器的访问流量中增加第二预设比例,将增加的第二预设比例的访问流量导向更新后的第一容器,直至将指向第二容器的所有访问流量导向更新后的第一容器,即由更新后的第一容器来处理所有访问流量,第二容器不再接收流量,从而实现了发布更新后的第一容器对应的软件版本。
需要说明的说,预设的灰度发布规则中还可以包括预设条件、预设间隔。其中,预设间隔可以为每隔多长时间检查一次处理结果,例如可以为指向第二容器的第一预设比例的访问流量导向更新后的第一容器之后,每隔多长时间判断处理结果是否满足预设条件。
S104、将第二容器的软件版本更新为更新后的第一容器的软件版本,并将所有访问流量导向更新后的第二容器。
将所有访问流量导向更新后的第一容器,说明更新后的第一容器的软件版本为当前可访问的新版本,那么还可以将第二容器的软件版本更新为更新后的第一容器的软件版本,并将所有访问流量从更新后的第一容器导向更新后的第二容器,也就是说,在第二容器上实现了版本的发布。
另外,更新后的第一容器和更新后的第二容器具有相同的版本,更新后的第二容器为所有访问流量访问的容器,而更新后的第一容器的访问流量为0,也即,更新后的第一容器可以作为一个触发器,待检测到更新后的第一容器再次存在更新时,还可以执行步骤S101-S104,以在更新后的第二容器上实现下一个版本的发布。
本实施例提供的版本发布方法,包括:检测到第一容器存在更新时,将指向第二容器的第一预设比例的访问流量导向更新后的第一容器,获取在更新后的第一容器下第一预设比例的访问流量的处理结果,若处理结果满足预设条件,则根据预设的灰度发布规则,从指向第二容器的访问流量中获取第二预设比例的访问流量,并将第二预设比例的访问流量导向更新后的第一容器,重复本步骤,直至将指向第二容器的所有访问流量导向更新后的第一容器,将第二容器的软件版本更新为更新后的第一容器的软件版本,将所有访问流量导向更新后的第二容器。和现有技术相比,本申请通过自动化的方式实现版本的灰度发布,减少了人工操作引入的错误率,提高了版本发布的效率和准确度。
可选地,若处理结果不满足预设条件,该方法还包括:
将第一预设比例的访问流量从更新后的第一容器回滚至第二容器。
若更新后的第一容器下第一预设比例的访问流量的处理结果不满足预设条件,则可以将第一预设比例的访问流量从更新后的第一容器回滚至第二容器,也就是说,考虑到本次访问的成功率,则在处理结果不满足预设条件时,还可以将第一预设比例的访问流量从更新后的第一容器回滚至第二容器,即所有访问流量均导向第二容器,以保证本次访问的成功率。
下面结合图2实施例对流量回滚进行具体说明。图2示出了本申请实施例提供的版本发布方法的流程示意图二,如图2所示,将第一预设比例的访问流量从更新后的第一容器回滚至第二容器,包括:
S201、每隔预设间隔,获取在第一容器下第一预设比例的访问流量的处理结果。
S202、若预设次数的处理结果均不满足预设条件,则将第一预设比例的访问流量从更新后的第一容器回滚至第二容器。
其中,预设的灰度发布规则中还可以包括预设间隔,预设间隔可以为每隔多长时间检查一次处理结果,则可以每隔预设间隔,获取在第一容器下第一预设比例的访问流量的处理结果,若预设次数的处理结果均不满足预设条件,则将第一预设比例的访问流量从更新后的第一容器回滚至第二容器,也就是说,有可能系统故障的情况下,使得第一次获取的处理结果不满足预设条件,那么为了确保处理结果的准确度,则更新后的第一容器可以重复处理第一预设比例的访问流量,后台服务器可以获取预设次数的处理结果,若预设次数的处理结果均不满足预设条件,才将第一预设比例的访问流量回滚至第二容器。
需要说明的是,更新后的第一容器处理第一预设比例的访问流量的次数可以为预设次数。
其中,预设间隔可以为1s、2s、3s,预设次数可以为2次、3次、4次等,本实施例对预设间隔、预设次数的选取不做特别限定。
本实施例提供的版本发布方法,包括:每隔预设间隔,获取在第一容器下第一预设比例的访问流量的处理结果,若预设次数的处理结果均不满足预设条件,则将第一预设比例的访问流量从更新后的第一容器回滚至第二容器,提高了处理结果的准确度,进而提高了版本发布的准确度。
在一种可能的实施方式中,可以通过调用接口将访问流量导向更新后的第一容器,或者通过调用接口将访问流量回滚至第二容器。下面结合图3实施例对一种具体实现进行说明,图3示出了本申请实施例提供的版本发布方法的流程示意图三,如图3所示,该方法包括:
S301、检测到第一容器存在更新时,采用预先创建的第一容器对外提供的第一调用接口,将第一预设比例的访问流量导向更新后的第一容器。
其中,预先创建的第一调用接口为第一容器对外提供的接口,检测到第一容器存在更新时,可以采用预先创建的第一容器外面提供的第一调用接口,将第一预设比例的访问流量导向更新后的第一容器。
步骤S301之前还可以包括:
通过资源监听器监听用户创建的用户自定义资源;
根据用户自定义资源创建第一容器对外提供的第一调用接口。
用户可以定义一个用户自定义资源(Custom Resource Definition,CRD),CRD例如可以为kubernetes CRD,Kubernetes是目前应用最为广泛的容器平台。其中,用户自定义资源包括灰度发布规则、第一容器对外提供的第一调用接口、第二容器对外提供的第二调用接口以及第一容器。
通过资源监听器监听到用户创建的用户自定义资源时,可以根据用户自定义资源创建第一容器对外提供的第一调用接口,其中,资源监听器例如可以为Kubernetes平台下的控制器(controller)。
可选地,采用预先创建的第一容器对外提供的第一调用接口,将第一预设比例的访问流量导向更新后的第一容器,包括:
依次采用预设调用接口、第一调用接口,将第一预设比例的访问流量导向更新后的第一容器。
其中,预设调用接口为创建灰度发布规则前第一容器对外提供的调用接口,也就是说,版本发布之前只存在第一容器,那么所有访问流量只导向第一容器。
依次采用预设调用接口、第一调用接口,将第一预设比例的访问流量导向更新后的第一容器,也就是说,访问流量经由预设调用接口、第一调用接口,第一预设比例的访问流量会导向更新后的第一容器。
S302、获取在更新后的第一容器下第一预设比例的访问流量的处理结果;
S303、若处理结果满足预设条件,则根据预设的灰度发布规则,从指向第二容器的访问流量中获取第二预设比例的访问流量,并采用第一调用接口,将第二预设比例的访问流量导向更新后的第一容器,重复本步骤,直至将指向第二容器的所有访问流量导向更新后的第一容器,以发布更新后的第一容器对应的软件版本。
获取在更新后的第一容器下第一预设比例的访问流量的处理结果,若处理结果满足预设条件,则根据预设的灰度发布规则,从指向第二容器的访问流量中获取第二预设比例的访问流量,并采用第一调用接口,将第二预设比例的访问流量导向更新后的第一容器,重复本步骤,直至将指向第二容器的所有访问流量导向更新后的第一容器,以发布更新后的第一容器对应的软件版本。
可选地,采用第一调用接口将第二预设比例的访问流量导向更新后的第一容器,包括:
依次采用预设调用接口、第一调用接口,将第二预设比例的访问流量导向更新后的第一容器,也就是说,第二预设比例的访问流量经由预设调用接口、第一调用接口导向更新后的第一容器。
S304、若处理结果不满足预设条件,采用预先创建的第二容器对外提供的第二调用接口,将第一预设比例的访问流量从更新后的第一容器回滚至第二容器。
若处理结果不满足预设条件,则可以采用预先创建的第二容器对外提供的第二调用接口,将第一预设比例的访问流量从更新后的第一容器回滚至第二容器,例如可以依次采用预设调用接口、第二调用接口将第一预设比例的访问流量从更新后的第一容器回滚至第二容器。
需要说明的是,用户自定义资源还可以包括第二容器对外提供的第二调用接口,若处理结果不满足预设条件,则可以采用用户自定义资源中的第二调用接口,将第一预设比例的访问流量从更新后的第一容器回滚至第二容器。
参考图4、图5,图4示出了本申请实施例提供的创建灰度发布规则前的访问流量导向的示意图,图5示出了本申请实施例提供的创建灰度发布规则后的访问流量导向的示意图。
如图4所示,创建灰度发布规则之前,所有访问流量导向的是第一容器,也就是说,100%的访问流量实际上访问的是第一容器,第一容器对外提供的调用接口为预设调用接口。
如图5所示,创建灰度发布规则之后,对第一容器进行复制得到第二容器,并将指向第一容器的所有访问流量导向第二容器,也就是说,100%的访问流量实际上访问的是第二容器,其中,第一调用接口为第一容器对外提供的接口,第二调用接口为第二容器对外提供的接口,且依次采用预设调用接口、第一调用接口,将所有访问流量导向第二容器,在检测到第一容器存在更新时,再将指向第二容器的第一预设比例的访问流量导向更新后的第一容器。
本实施例提供的版本发布方法,包括:检测到第一容器存在更新时,采用预先创建的第一容器对外提供的第一调用接口,将第一预设比例的访问流量导向更新后的第一容器,获取在更新后的第一容器下第一预设比例的访问流量的处理结果,若处理结果满足预设条件,则根据预设的灰度发布规则,从指向第二容器的访问流量中获取第二预设比例的访问流量,并采用第一调用接口,将第二预设比例的访问流量导向更新后的第一容器,重复本步骤,直至将指向第二容器的所有访问流量导向更新后的第一容器,以发布更新后的第一容器对应的软件版本,若处理结果不满足预设条件,采用预先创建的第二容器对外提供的第二调用接口,将第一预设比例的访问流量从更新后的第一容器回滚至第二容器。通过自动化的方式实现版本的灰度发布,减少了人工操作引入的错误率,提高了版本发布的效率和准确度。
图6示出了本申请实施例提供的版本发布装置的结构示意图,如图6所示,版本发布装置40包括:
处理模块401,用于检测到第一容器存在更新时,将指向第二容器的第一预设比例的访问流量导向更新后的第一容器;
获取模块402,用于获取在所述第一容器下所述第一预设比例的访问流量的处理结果;
所述处理模块401,还用于若所述处理结果满足预设条件,则根据预设的灰度发布规则,从指向所述第二容器的访问流量中获取第二预设比例的访问流量,并将所述第二预设比例的访问流量导向更新后的第一容器,重复本步骤,直至将指向所述第二容器的所有访问流量导向更新后的第一容器,将所述第二容器的软件版本更新为所述更新后的第一容器的软件版本,并将所述所有访问流量导向更新后的第二容器。
可选地,若所述处理结果不满足所述预设条件,所述处理模块401还用于:
将所述第一预设比例的访问流量从所述更新后的第一容器回滚至所述第二容器。
可选地,所述处理模块401具体用于:
每隔预设间隔,获取在所述第一容器下所述第一预设比例的访问流量的处理结果;
若预设次数的所述处理结果均不满足所述预设条件,则将所述第一预设比例的访问流量从所述更新后的第一容器回滚至所述第二容器。
可选地,所述处理模块401具体用于:
采用预先创建的所述第一容器对外提供的第一调用接口,将所述第一预设比例的访问流量导向更新后的第一容器。
可选地,所述处理模块401具体用于:
依次采用预设调用接口、所述第一调用接口,将所述第一预设比例的访问流量导向更新后的第一容器,所述预设调用接口为创建所述灰度发布规则前所述第一容器对外提供的调用接口。
可选地,所述检测到第一容器更新时,将指向第二容器的第一预设比例的访问流量导向更新后的第一容器之前,所述处理模块401还用于:
检测到用户创建的所述灰度发布规则时,对所述第一容器进行复制得到所述第二容器;
将指向所述第一容器的所有访问流量导向所述第二容器。
可选地,所述处理模块401具体用于:
采用预先创建的所述第二容器对外提供的第二调用接口,将所述第一预设比例的访问流量从所述更新后的第一容器回滚至所述第二容器。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
图7示出了本申请实施例提供的计算机设备的结构示意图,如图7所示,计算机设备50包括:处理器501、存储器502和总线503,所述存储器502存储有所述处理器501可执行的计算机程序,当所述计算机设备50运行时,所述处理器501与所述存储器502之间通过总线503通信,所述处理器501执行所述计算机程序,以执行上述方法实施例。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (10)

1.一种版本发布方法,其特征在于,包括:
检测到第一容器存在更新时,将指向第二容器的第一预设比例的访问流量导向更新后的第一容器;
获取在所述更新后的第一容器下所述第一预设比例的访问流量的处理结果;
若所述处理结果满足预设条件,则根据预设的灰度发布规则,从指向所述第二容器的访问流量中获取第二预设比例的访问流量,并将所述第二预设比例的访问流量导向所述更新后的第一容器,重复本步骤,直至将指向所述第二容器的所有访问流量导向更新后的第一容器;
将所述第二容器的软件版本更新为所述更新后的第一容器的软件版本,并将所述所有访问流量导向更新后的第二容器。
2.根据权利要求1所述的方法,其特征在于,若所述处理结果不满足所述预设条件,所述方法还包括:
将所述第一预设比例的访问流量从所述更新后的第一容器回滚至所述第二容器。
3.根据权利要求2所述的方法,其特征在于,所述将所述第一预设比例的访问流量从所述第一容器回滚至所述第二容器,包括:
每隔预设间隔,获取在所述第一容器下所述第一预设比例的访问流量的处理结果;
若预设次数的所述处理结果均不满足所述预设条件,则将所述第一预设比例的访问流量从所述更新后的第一容器回滚至所述第二容器。
4.根据权利要求1所述的方法,其特征在于,所述检测到第一容器存在更新时,将指向第二容器的第一预设比例的访问流量导向更新后的第一容器,包括:
采用预先创建的所述第一容器对外提供的第一调用接口,将所述第一预设比例的访问流量导向更新后的第一容器。
5.根据权利要求4所述的方法,其特征在于,所述采用预先创建的所述第一容器对外提供的第一调用接口,将所述第一预设比例的访问流量导向更新后的第一容器,包括:
依次采用预设调用接口、所述第一调用接口,将所述第一预设比例的访问流量导向更新后的第一容器,所述预设调用接口为创建所述灰度发布规则前所述第一容器对外提供的调用接口。
6.根据权利要求4或5所述的方法,其特征在于,所述检测到第一容器更新时,将指向第二容器的第一预设比例的访问流量导向更新后的第一容器之前,还包括:
检测到用户创建的所述灰度发布规则时,对所述第一容器进行复制得到所述第二容器;
将指向所述第一容器的所有访问流量导向所述第二容器。
7.根据权利要求2或3所述的方法,其特征在于,所述将所述第一预设比例的访问流量从所述更新后的第一容器回滚至所述第二容器,包括:
采用预先创建的所述第二容器对外提供的第二调用接口,将所述第一预设比例的访问流量从所述更新后的第一容器回滚至所述第二容器。
8.一种版本发布装置,其特征在于,包括:
处理模块,用于检测到第一容器存在更新时,将指向第二容器的第一预设比例的访问流量导向更新后的第一容器;
获取模块,用于获取在所述第一容器下所述第一预设比例的访问流量的处理结果;
所述处理模块,还用于若所述处理结果满足预设条件,则根据预设的灰度发布规则,从指向所述第二容器的访问流量中获取第二预设比例的访问流量,并将所述第二预设比例的访问流量导向更新后的第一容器,重复本步骤,直至将指向所述第二容器的所有访问流量导向更新后的第一容器,将所述第二容器的软件版本更新为所述更新后的第一容器的软件版本,并将所述所有访问流量导向更新后的第二容器。
9.一种计算机设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的计算机程序,当所述计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述计算机程序,以执行权利要求1-7任一项所述的方法。
10.一种存储介质,其特征在于,包括:所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行权利要求1-7任一项所述的方法。
CN202011258571.7A 2020-11-11 2020-11-11 版本发布方法、装置、设备及存储介质 Pending CN112269591A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011258571.7A CN112269591A (zh) 2020-11-11 2020-11-11 版本发布方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011258571.7A CN112269591A (zh) 2020-11-11 2020-11-11 版本发布方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN112269591A true CN112269591A (zh) 2021-01-26

Family

ID=74339569

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011258571.7A Pending CN112269591A (zh) 2020-11-11 2020-11-11 版本发布方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112269591A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114124819A (zh) * 2021-10-22 2022-03-01 北京乐我无限科技有限责任公司 流量分发控制方法、装置、存储介质及计算机设备
CN114866790A (zh) * 2022-03-25 2022-08-05 上海哔哩哔哩科技有限公司 直播流调度方法及装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577660A (zh) * 2012-07-19 2014-02-12 腾讯科技(深圳)有限公司 灰度实验系统和方法
CN106919418A (zh) * 2017-01-22 2017-07-04 北京奇艺世纪科技有限公司 在线应用快速回滚的方法及装置
CN109445811A (zh) * 2018-09-07 2019-03-08 平安科技(深圳)有限公司 灰度发布方法、装置、计算机设备及计算机存储介质
CN109510852A (zh) * 2017-09-15 2019-03-22 阿里巴巴集团控股有限公司 灰度发布的方法及装置
US20190208031A1 (en) * 2017-12-29 2019-07-04 ASG Technologies Group, Inc. dba ASG Technologies Platform-Independent Application Publishing to a Personalized Front-End Interface by Encapsulating Published Content into a Container
CN110134413A (zh) * 2019-03-27 2019-08-16 深圳绿米联创科技有限公司 应用内容更新的控制方法、装置、系统及存储介质
CN110365502A (zh) * 2018-03-26 2019-10-22 华为技术有限公司 一种服务升级管理的方法、装置及存储介质
CN110471683A (zh) * 2019-08-06 2019-11-19 上海浦东发展银行股份有限公司信用卡中心 一种基于智能dns的容器云应用蓝绿发布方法
CN110912734A (zh) * 2019-10-31 2020-03-24 北京浪潮数据技术有限公司 云管理平台实现容器应用多维度灰度发布方法及装置
CN111427605A (zh) * 2020-06-15 2020-07-17 广东睿江云计算股份有限公司 基于docker的分布式代码自动更新部署方法及系统

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577660A (zh) * 2012-07-19 2014-02-12 腾讯科技(深圳)有限公司 灰度实验系统和方法
CN106919418A (zh) * 2017-01-22 2017-07-04 北京奇艺世纪科技有限公司 在线应用快速回滚的方法及装置
CN109510852A (zh) * 2017-09-15 2019-03-22 阿里巴巴集团控股有限公司 灰度发布的方法及装置
US20190208031A1 (en) * 2017-12-29 2019-07-04 ASG Technologies Group, Inc. dba ASG Technologies Platform-Independent Application Publishing to a Personalized Front-End Interface by Encapsulating Published Content into a Container
CN110365502A (zh) * 2018-03-26 2019-10-22 华为技术有限公司 一种服务升级管理的方法、装置及存储介质
CN109445811A (zh) * 2018-09-07 2019-03-08 平安科技(深圳)有限公司 灰度发布方法、装置、计算机设备及计算机存储介质
CN110134413A (zh) * 2019-03-27 2019-08-16 深圳绿米联创科技有限公司 应用内容更新的控制方法、装置、系统及存储介质
CN110471683A (zh) * 2019-08-06 2019-11-19 上海浦东发展银行股份有限公司信用卡中心 一种基于智能dns的容器云应用蓝绿发布方法
CN110912734A (zh) * 2019-10-31 2020-03-24 北京浪潮数据技术有限公司 云管理平台实现容器应用多维度灰度发布方法及装置
CN111427605A (zh) * 2020-06-15 2020-07-17 广东睿江云计算股份有限公司 基于docker的分布式代码自动更新部署方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
佚名: "使用 Istio 实现灰度发布(金丝雀发布)", 《HTTPS://CLOUD.TENCENT.COM/DEVELOPER/ARTICLE/1613799》 *
肖帆: "基于容器技术的私有云平台的设计与实现", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》 *
胡晓亮: "目录基于Kubernetes的容器云平台设计与实现", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114124819A (zh) * 2021-10-22 2022-03-01 北京乐我无限科技有限责任公司 流量分发控制方法、装置、存储介质及计算机设备
CN114124819B (zh) * 2021-10-22 2024-02-09 北京乐我无限科技有限责任公司 流量分发控制方法、装置、存储介质及计算机设备
CN114866790A (zh) * 2022-03-25 2022-08-05 上海哔哩哔哩科技有限公司 直播流调度方法及装置
CN114866790B (zh) * 2022-03-25 2024-02-27 上海哔哩哔哩科技有限公司 直播流调度方法及装置

Similar Documents

Publication Publication Date Title
CN112269591A (zh) 版本发布方法、装置、设备及存储介质
CN108121543B (zh) 一种软件代码编译处理方法及装置
EP2629205A1 (en) Multi-entity test case execution workflow
CN104834602A (zh) 一种程序发布方法、装置和程序发布系统
CN111679968A (zh) 接口调用异常的检测方法、装置、计算机设备及存储介质
CN111666217A (zh) 用于测试代码的方法和装置
CN112799349A (zh) 一种上下位机的控制方法、系统、电子设备及存储介质
CN112702225A (zh) 云平台性能测试装置、方法、计算机终端和可读存储介质
CN110941486A (zh) 任务管理方法及装置、电子设备和计算机可读存储介质
CN110737548A (zh) 数据请求方法和服务器
CN108494589B (zh) 一种分布式Nginx服务器的管理方法和系统
CN115880110A (zh) 作业任务监控方法、装置、电子设备及存储介质
CN111860855B (zh) 一种行为引导资源投放策略生成方法及装置
CN114091909A (zh) 一种协同开发的方法、系统、装置及电子设备
CN113821443A (zh) 应用程序的功能检测方法、装置、设备及存储介质
CN112181853A (zh) 程序调试方法、装置及系统
CN110716972A (zh) 高频率调用外部接口出错的处理方法和装置
CN112114972B (zh) 数据倾斜的预测方法及装置
CN109919521B (zh) 一种区块链操作确认方法、装置和电子设备
JP2019212084A (ja) ワークフロー管理装置及びワークフロー管理プログラム
CN114281604B (zh) 数据恢复方法、装置、电子设备及存储介质
CN111815442B (zh) 一种链接预测的方法、装置和电子设备
CN114266037B (zh) 一种样本检测方法、装置、电子设备及存储介质
CN110673977B (zh) 一种数据恢复的优化方法、装置、设备及介质
CN118011896A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20210126

RJ01 Rejection of invention patent application after publication