一种基于容器平台的自动灰度发布方法、系统及装置制造方法及图纸

技术编号:18444560 阅读:177 留言:0更新日期:2018-07-14 10:14
本发明专利技术公开了一种基于容器平台的自动灰度发布方法、系统及装置,方法包括对新版本软件进行预部署配置;当监控到新版本镜像时,生成新版本软件;根据预部署配置,将新版本软件通过K8S系统的pod的形式分布式部署在集群中。本发明专利技术通过将新版本软件自动部署新版本到集群上,无需嵌入服务代码,也无需维护多重环境,并能在生产环境或测试环境上完成灰度发布,只需简单配置即可与持续交付流程相结合,能有效减少工作量,并且大大提高了开发效率。本发明专利技术可广泛应用于软件开发中。

Automatic grayscale publishing method, system and device based on container platform

The invention discloses an automatic gray distribution method, system and device based on a container platform. The method includes a pre deployment configuration for the new version of the software. When a new version of the image is monitored, a new version of the software is generated. According to the pre deployment configuration, the new version of the software is distributed in the form of the cluster in the form of the K8S system of pod. In the middle. By automatically deploying a new version of a new version of the software to a cluster, it does not need to embed the service code, and does not need to maintain multiple environments, and can complete the distribution of grayscale in the production environment or the test environment. It can be combined with the continuous delivery process in a simple configuration. It can reduce the workload effectively and greatly improve the development. Efficiency. The invention can be widely used in software development.

【技术实现步骤摘要】
一种基于容器平台的自动灰度发布方法、系统及装置
本专利技术涉及计算机软件
,尤其涉及一种基于容器平台的自动灰度发布方法、系统及装置。
技术介绍
互联网产品有一个特点,就是不停的升级,升级,再升级,但是系统升级总是伴随着风险,新旧版本兼容的风险,用户使用习惯突然改变而造成用户流失的风险,系统down机的风险。为了避免这些风险,很多产品都采用了灰度发布的策略,其主要思想就是把影响集中到一个点,然后再发散到一个面,出现意外情况后很容易就回退。传统的灰度发布主要有两大方向:1、在代码中做。一套线上环境,代码中做开关,对于不同的用户走不同的逻辑。2、在接入层做。多套(隔离的)线上环境,接入层针对不同用户转发到不同的环境中一般上传统灰度发布的处理方法采用第二种方向,是将应用的稳定代码和灰度代码分别发布到不同服务器上,并加载该应用的灰度配置信息;接收请求,并从请求的参数信息中提取用于灰度判断的灰度数据;根据所述灰度配置信息对所述灰度数据进行判断,确定该请求是否参与灰度发布;若参与,则将该请求分配到灰度代码所在的服务器处理;若不参与,则将该请求分配到稳定代码所在的服务器处理。然而,若在代码中做,则需要在灰度发布逻辑中侵入代码,工作量较大;若在接入层中做,则配置复杂,需维护多套线上环境,运维成本高。
技术实现思路
为了解决上述技术问题,本专利技术的目的是提供一种能减少工作量,且基于容器平台的自动灰度发布方法、系统及装置。本专利技术所采取的技术方案是:一种基于容器平台的自动灰度发布方法,包括以下步骤:对新版本软件进行预部署配置;当监控到新版本镜像时,生成新版本软件;根据预部署配置,将新版本软件通过K8S系统的pod的形式分布式部署在集群中。作为所述的一种基于容器平台的自动灰度发布方法的进一步改进,所述的对新版本软件进行预部署配置,其具体包括:配置流水线,并使其处于工作状态;对新版本的流量规则进行预设置。作为所述的一种基于容器平台的自动灰度发布方法的进一步改进,所述的根据预部署配置,将新版本软件通过K8S系统的pod的形式分布式部署在集群中,这一步骤具体包括:在同一个服务网格内各个代理构成的网络中截获用户请求的业务流量,并通过在每个pod中自动注入服务网格的代理容器接替该业务流量;通过不同版本预设置的流量规则,将新版本软件通过K8S系统将流量规则分配到不同的pod上。本专利技术所采用的另一技术方案是:一种基于容器平台的自动灰度发布系统,包括:配置单元,用于对新版本软件进行预部署配置;监控单元,用于当监控到新版本镜像时,生成新版本软件;发布单元,用于根据预部署配置,将新版本软件通过K8S系统的pod的形式分布式部署在集群中。作为所述的一种基于容器平台的自动灰度发布系统的进一步改进,所述的配置单元具体包括:流水线配置单元,用于配置流水线,并使其处于工作状态;流量规则设置单元,用于对新版本的流量规则进行预设置。作为所述的一种基于容器平台的自动灰度发布系统的进一步改进,所述的发布单元具体包括:注入单元,用于在同一个服务网格内各个代理构成的网络中截获用户请求的业务流量,并通过在每个pod中自动注入服务网格的代理容器接替该业务流量;分配单元,用于通过不同版本预设置的流量规则,将新版本软件通过K8S系统将流量规则分配到不同的pod上。本专利技术所采用的再一个技术方案是:一种基于容器平台的自动灰度发布装置,包括:存储器,用于存放程序;处理器,用于执行所述程序,所述程序使得所述处理器执行所述的基于容器平台的自动灰度发布方法。本专利技术的有益效果是:本专利技术一种基于容器平台的自动灰度发布方法、系统及装置通过将新版本软件自动部署新版本到集群上,无需嵌入服务代码,也无需维护多重环境,并能在生产环境或测试环境上完成灰度发布,只需简单配置即可与持续交付流程相结合,能有效减少工作量,并且大大提高了开发效率。附图说明图1是本专利技术一种基于容器平台的自动灰度发布方法的步骤流程图;图2是本专利技术一种基于容器平台的自动灰度发布系统的模块方框图。具体实施方式下面结合附图对本专利技术的具体实施方式作进一步说明:参考图1,本专利技术一种基于容器平台的自动灰度发布方法,包括以下步骤:对新版本软件进行预部署配置;当监控到新版本镜像时,生成新版本软件;根据预部署配置,将新版本软件通过K8S系统的pod的形式分布式部署在集群中。进一步作为优选的实施方式,所述的对新版本软件进行预部署配置,其具体包括:配置流水线,并使其处于工作状态;对新版本的流量规则进行预设置。进一步作为优选的实施方式,所述的根据预部署配置,将新版本软件通过K8S系统的pod的形式分布式部署在集群中,这一步骤具体包括:在同一个服务网格内各个代理构成的网络中截获用户请求的业务流量,并通过在每个pod中自动注入服务网格的代理容器接替该业务流量;通过不同版本预设置的流量规则,将新版本软件通过K8S系统将流量规则分配到不同的pod上。本实施例中,需要将serviceA中的新版本软件发布到serviceB中,第一步中serviceB只有一个版本,第二步则通过发布serviceB的新版本软件在Pod4上,与前一版本共存,通过配置服务网格的代理将少量流量分发到Canary版本上。其中Pod表示K8S的最小部署单元,承载着服务的容器以及服务网格的代理容器。Service表示K8S的服务抽象,用户请求的流量统一发给Service对外公布的服务地址和端口。参考图2,本专利技术一种基于容器平台的自动灰度发布系统,包括:配置单元,用于对新版本软件进行预部署配置;监控单元,用于当监控到新版本镜像时,生成新版本软件;发布单元,用于根据预部署配置,将新版本软件通过K8S系统的pod的形式分布式部署在集群中。进一步作为优选的实施方式,所述的配置单元具体包括:流水线配置单元,用于配置流水线,并使其处于工作状态;流量规则设置单元,用于对新版本的流量规则进行预设置。进一步作为优选的实施方式,所述的发布单元具体包括:注入单元,用于在同一个服务网格内各个代理构成的网络中截获用户请求的业务流量,并通过在每个pod中自动注入服务网格的代理容器接替该业务流量;分配单元,用于通过不同版本预设置的流量规则,将新版本软件通过K8S系统将流量规则分配到不同的pod上。本专利技术一种基于容器平台的自动灰度发布装置,包括:存储器,用于存放程序;处理器,用于执行所述程序,所述程序使得所述处理器执行所述的基于容器平台的自动灰度发布方法。从上述内容可知,本专利技术通过将新版本软件自动部署新版本到集群上,无需嵌入服务代码,也无需维护多重环境,并能在生产环境或测试环境上完成灰度发布,只需简单配置即可与持续交付流程相结合,能有效减少工作量,并且大大提高了开发效率。以上是对本专利技术的较佳实施进行了具体说明,但本专利技术创造并不限于所述实施例,熟悉本领域的技术人员在不违背本专利技术精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。本文档来自技高网...

【技术保护点】
1.一种基于容器平台的自动灰度发布方法,其特征在于,包括以下步骤:对新版本软件进行预部署配置;当监控到新版本镜像时,生成新版本软件;根据预部署配置,将新版本软件通过K8S系统的pod的形式分布式部署在集群中。

【技术特征摘要】
1.一种基于容器平台的自动灰度发布方法,其特征在于,包括以下步骤:对新版本软件进行预部署配置;当监控到新版本镜像时,生成新版本软件;根据预部署配置,将新版本软件通过K8S系统的pod的形式分布式部署在集群中。2.根据权利要求1所述的一种基于容器平台的自动灰度发布方法,其特征在于:所述的对新版本软件进行预部署配置,其具体包括:配置流水线,并使其处于工作状态;对新版本的流量规则进行预设置。3.根据权利要求2所述的一种基于容器平台的自动灰度发布方法,其特征在于:所述的根据预部署配置,将新版本软件通过K8S系统的pod的形式分布式部署在集群中,这一步骤具体包括:在同一个服务网格内各个代理构成的网络中截获用户请求的业务流量,并通过在每个pod中自动注入服务网格的代理容器接替该业务流量;通过不同版本预设置的流量规则,将新版本软件通过K8S系统将流量规则分配到不同的pod上。4.一种基于容器平台的自动灰度发布系统,其特征在于,包括:配置单元,用于对新版本软件进行预部署配置...

【专利技术属性】
技术研发人员:颜文德徐明叶祖锋邓锻炼何润林刘俊
申请(专利权)人:广州欧赛斯信息科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1