CN108279921A - 一种基于容器平台的自动灰度发布方法、系统及装置 - Google Patents
一种基于容器平台的自动灰度发布方法、系统及装置 Download PDFInfo
- Publication number
- CN108279921A CN108279921A CN201810060259.3A CN201810060259A CN108279921A CN 108279921 A CN108279921 A CN 108279921A CN 201810060259 A CN201810060259 A CN 201810060259A CN 108279921 A CN108279921 A CN 108279921A
- Authority
- CN
- China
- Prior art keywords
- new version
- gray scale
- version software
- pod
- container platform
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Abstract
本发明公开了一种基于容器平台的自动灰度发布方法、系统及装置,方法包括对新版本软件进行预部署配置;当监控到新版本镜像时,生成新版本软件;根据预部署配置,将新版本软件通过K8S系统的pod的形式分布式部署在集群中。本发明通过将新版本软件自动部署新版本到集群上,无需嵌入服务代码,也无需维护多重环境,并能在生产环境或测试环境上完成灰度发布,只需简单配置即可与持续交付流程相结合,能有效减少工作量,并且大大提高了开发效率。本发明可广泛应用于软件开发中。
Description
技术领域
本发明涉及计算机软件技术领域,尤其涉及一种基于容器平台的自动灰度发布方法、系统及装置。
背景技术
互联网产品有一个特点,就是不停的升级,升级,再升级,但是系统升级总是伴随着风险,新旧版本兼容的风险,用户使用习惯突然改变而造成用户流失的风险,系统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上。
本发明一种基于容器平台的自动灰度发布装置,包括:
存储器,用于存放程序;
处理器,用于执行所述程序,所述程序使得所述处理器执行所述的基于容器平台的自动灰度发布方法。
从上述内容可知,本发明通过将新版本软件自动部署新版本到集群上,无需嵌入服务代码,也无需维护多重环境,并能在生产环境或测试环境上完成灰度发布,只需简单配置即可与持续交付流程相结合,能有效减少工作量,并且大大提高了开发效率。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (7)
1.一种基于容器平台的自动灰度发布方法,其特征在于,包括以下步骤:
对新版本软件进行预部署配置;
当监控到新版本镜像时,生成新版本软件;
根据预部署配置,将新版本软件通过K8S系统的pod的形式分布式部署在集群中。
2.根据权利要求1所述的一种基于容器平台的自动灰度发布方法,其特征在于:
所述的对新版本软件进行预部署配置,其具体包括:
配置流水线,并使其处于工作状态;
对新版本的流量规则进行预设置。
3.根据权利要求2所述的一种基于容器平台的自动灰度发布方法,其特征在于:
所述的根据预部署配置,将新版本软件通过K8S系统的pod的形式分布式部署在集群中,这一步骤具体包括:
在同一个服务网格内各个代理构成的网络中截获用户请求的业务流量,并通过在每个pod中自动注入服务网格的代理容器接替该业务流量;
通过不同版本预设置的流量规则,将新版本软件通过K8S系统将流量规则分配到不同的pod上。
4.一种基于容器平台的自动灰度发布系统,其特征在于,包括:
配置单元,用于对新版本软件进行预部署配置;
监控单元,用于当监控到新版本镜像时,生成新版本软件;
发布单元,用于根据预部署配置,将新版本软件通过K8S系统的pod的形式分布式部署在集群中。
5.根据权利要求4所述的一种基于容器平台的自动灰度发布系统,其特征在于:
所述的配置单元具体包括:
流水线配置单元,用于配置流水线,并使其处于工作状态;
流量规则设置单元,用于对新版本的流量规则进行预设置。
6.根据权利要求5所述的一种基于容器平台的自动灰度发布系统,其特征在于:
所述的发布单元具体包括:
注入单元,用于在同一个服务网格内各个代理构成的网络中截获用户请求的业务流量,并通过在每个pod中自动注入服务网格的代理容器接替该业务流量;
分配单元,用于通过不同版本预设置的流量规则,将新版本软件通过K8S系统将流量规则分配到不同的pod上。
7.一种基于容器平台的自动灰度发布装置,其特征在于,包括:
存储器,用于存放程序;
处理器,用于执行所述程序,所述程序使得所述处理器执行如权利要求1~3任一项所述的基于容器平台的自动灰度发布方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810060259.3A CN108279921A (zh) | 2018-01-22 | 2018-01-22 | 一种基于容器平台的自动灰度发布方法、系统及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810060259.3A CN108279921A (zh) | 2018-01-22 | 2018-01-22 | 一种基于容器平台的自动灰度发布方法、系统及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108279921A true CN108279921A (zh) | 2018-07-13 |
Family
ID=62804420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810060259.3A Pending CN108279921A (zh) | 2018-01-22 | 2018-01-22 | 一种基于容器平台的自动灰度发布方法、系统及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108279921A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109358858A (zh) * | 2018-09-19 | 2019-02-19 | 网易(杭州)网络有限公司 | 自动化部署方法、装置、介质及电子设备 |
CN110427204A (zh) * | 2019-08-08 | 2019-11-08 | 浪潮云信息技术有限公司 | 一种基于容器和服务网格技术的自动化灰度发布方法 |
CN110471683A (zh) * | 2019-08-06 | 2019-11-19 | 上海浦东发展银行股份有限公司信用卡中心 | 一种基于智能dns的容器云应用蓝绿发布方法 |
CN110912734A (zh) * | 2019-10-31 | 2020-03-24 | 北京浪潮数据技术有限公司 | 云管理平台实现容器应用多维度灰度发布方法及装置 |
CN111142920A (zh) * | 2019-12-31 | 2020-05-12 | 浪潮云信息技术有限公司 | 一种基于容器技术的自动化蓝绿发布方法 |
CN111949311A (zh) * | 2020-08-12 | 2020-11-17 | 中国工商银行股份有限公司 | 灰度发布方法及系统 |
CN112073449A (zh) * | 2019-06-11 | 2020-12-11 | 易保网络技术(上海)有限公司 | 基于Kubernetes的环境切换处理方法和设备 |
CN112732274A (zh) * | 2021-01-08 | 2021-04-30 | 上海汇付数据服务有限公司 | 基于灰度发布的容器应用发布方法以及管理平台 |
CN112835604A (zh) * | 2021-03-26 | 2021-05-25 | 中国工商银行股份有限公司 | 系统灰度版本发布管理方法、系统、设备和介质 |
CN112988394A (zh) * | 2021-04-20 | 2021-06-18 | 北京世纪好未来教育科技有限公司 | 基于云原生容器的业务服务发布方法、装置、介质和设备 |
CN113050978A (zh) * | 2019-12-26 | 2021-06-29 | 中国移动通信集团北京有限公司 | 应用的灰度发布控制方法、装置、设备及计算机存储介质 |
CN114205280A (zh) * | 2021-11-17 | 2022-03-18 | 广州云擎互动信息技术有限公司 | 基于容器云和服务网格的应用发布方法及流量路由方法 |
US11366653B2 (en) | 2019-06-03 | 2022-06-21 | Hewlett Packard Enterprise Development Lp | Updating application code |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105354076A (zh) * | 2015-10-23 | 2016-02-24 | 深圳前海达闼云端智能科技有限公司 | 一种应用部署方法及装置 |
CN105554102A (zh) * | 2015-12-14 | 2016-05-04 | 中电科华云信息技术有限公司 | 基于容器集群的弹性伸缩方法及其应用系统 |
CN105630488A (zh) * | 2015-12-18 | 2016-06-01 | 上海爱数信息技术股份有限公司 | 一种基于docker容器技术的持续集成实现方法 |
US9560081B1 (en) * | 2016-06-24 | 2017-01-31 | Varmour Networks, Inc. | Data network microsegmentation |
-
2018
- 2018-01-22 CN CN201810060259.3A patent/CN108279921A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105354076A (zh) * | 2015-10-23 | 2016-02-24 | 深圳前海达闼云端智能科技有限公司 | 一种应用部署方法及装置 |
CN105554102A (zh) * | 2015-12-14 | 2016-05-04 | 中电科华云信息技术有限公司 | 基于容器集群的弹性伸缩方法及其应用系统 |
CN105630488A (zh) * | 2015-12-18 | 2016-06-01 | 上海爱数信息技术股份有限公司 | 一种基于docker容器技术的持续集成实现方法 |
US9560081B1 (en) * | 2016-06-24 | 2017-01-31 | Varmour Networks, Inc. | Data network microsegmentation |
Non-Patent Citations (2)
Title |
---|
ALEX LEONG: "A Service Mesh for Kubernetes (Part 4):CD via Traffic Shifting", 《HTTPS://DZONE.COM/ARTICLES/A-SERVICE-MESH-FOR-KUBERNETES-PART-4-CD-VIA-TRAFFIC-SHIFTING》 * |
伪架构师: "聊聊代码 | Linkerd+Namerd 实现Kubernetes集群的灰度发布", 《HTTP://WWW.VOIDCN.COM/ARTICLE/P-GWJRKJQJ-XV.HTML》 * |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109358858A (zh) * | 2018-09-19 | 2019-02-19 | 网易(杭州)网络有限公司 | 自动化部署方法、装置、介质及电子设备 |
CN109358858B (zh) * | 2018-09-19 | 2022-03-22 | 网易(杭州)网络有限公司 | 自动化部署方法、装置、介质及电子设备 |
US11366653B2 (en) | 2019-06-03 | 2022-06-21 | Hewlett Packard Enterprise Development Lp | Updating application code |
CN112073449A (zh) * | 2019-06-11 | 2020-12-11 | 易保网络技术(上海)有限公司 | 基于Kubernetes的环境切换处理方法和设备 |
CN112073449B (zh) * | 2019-06-11 | 2023-04-18 | 易保网络技术(上海)有限公司 | 基于Kubernetes的环境切换处理方法和设备 |
CN110471683A (zh) * | 2019-08-06 | 2019-11-19 | 上海浦东发展银行股份有限公司信用卡中心 | 一种基于智能dns的容器云应用蓝绿发布方法 |
CN110471683B (zh) * | 2019-08-06 | 2023-11-24 | 上海浦东发展银行股份有限公司信用卡中心 | 一种基于智能dns的容器云应用蓝绿发布方法 |
CN110427204A (zh) * | 2019-08-08 | 2019-11-08 | 浪潮云信息技术有限公司 | 一种基于容器和服务网格技术的自动化灰度发布方法 |
CN110427204B (zh) * | 2019-08-08 | 2023-09-19 | 浪潮云信息技术股份公司 | 一种基于容器和服务网格技术的自动化灰度发布方法 |
CN110912734A (zh) * | 2019-10-31 | 2020-03-24 | 北京浪潮数据技术有限公司 | 云管理平台实现容器应用多维度灰度发布方法及装置 |
CN113050978A (zh) * | 2019-12-26 | 2021-06-29 | 中国移动通信集团北京有限公司 | 应用的灰度发布控制方法、装置、设备及计算机存储介质 |
CN113050978B (zh) * | 2019-12-26 | 2024-03-19 | 中国移动通信集团北京有限公司 | 应用的灰度发布控制方法、装置、设备及计算机存储介质 |
CN111142920A (zh) * | 2019-12-31 | 2020-05-12 | 浪潮云信息技术有限公司 | 一种基于容器技术的自动化蓝绿发布方法 |
CN111949311B (zh) * | 2020-08-12 | 2023-08-25 | 中国工商银行股份有限公司 | 灰度发布方法及系统 |
CN111949311A (zh) * | 2020-08-12 | 2020-11-17 | 中国工商银行股份有限公司 | 灰度发布方法及系统 |
CN112732274A (zh) * | 2021-01-08 | 2021-04-30 | 上海汇付数据服务有限公司 | 基于灰度发布的容器应用发布方法以及管理平台 |
CN112835604A (zh) * | 2021-03-26 | 2021-05-25 | 中国工商银行股份有限公司 | 系统灰度版本发布管理方法、系统、设备和介质 |
CN112835604B (zh) * | 2021-03-26 | 2024-03-29 | 中国工商银行股份有限公司 | 系统灰度版本发布管理方法、系统、设备和介质 |
CN112988394B (zh) * | 2021-04-20 | 2021-08-17 | 北京世纪好未来教育科技有限公司 | 基于云原生容器的业务服务发布方法、装置、介质和设备 |
CN112988394A (zh) * | 2021-04-20 | 2021-06-18 | 北京世纪好未来教育科技有限公司 | 基于云原生容器的业务服务发布方法、装置、介质和设备 |
CN114205280A (zh) * | 2021-11-17 | 2022-03-18 | 广州云擎互动信息技术有限公司 | 基于容器云和服务网格的应用发布方法及流量路由方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108279921A (zh) | 一种基于容器平台的自动灰度发布方法、系统及装置 | |
US20150127725A1 (en) | Method and System for Building an Elastic Cloud Web Server Farm | |
US10585691B2 (en) | Distribution system, computer, and arrangement method for virtual machine | |
CN103036946B (zh) | 一种用于云平台处理文件备份任务的方法和系统 | |
US10713183B2 (en) | Virtual machine backup using snapshots and current configuration | |
EP2255284B1 (en) | Method and system for detecting the installation and usage of software in an application virtualization environment | |
US9811356B2 (en) | Automated software configuration management | |
CN109309693B (zh) | 基于docker的多服务系统、部署方法及装置、设备及存储介质 | |
US20110314465A1 (en) | Method and system for workload distributing and processing across a network of replicated virtual machines | |
US9690562B2 (en) | Detecting computing processes requiring reinitialization after a software package update | |
US20070226231A1 (en) | Systems and methods for managing business issues | |
US20200183881A1 (en) | Computerized systems and methods for distributed file collection and processing | |
US20150195128A1 (en) | Apparatus and method for supporting configuration management of virtual machine, and apparatus and method for brokering cloud service using the configuration management supporting apparatus | |
US8660996B2 (en) | Monitoring files in cloud-based networks | |
CN110442502B (zh) | 一种埋点的方法、装置、设备及存储介质 | |
CN103248696A (zh) | 一种云计算环境下的虚拟资源动态配置方法 | |
CN110245020B (zh) | 基于多个取证设备的手机内容取证方法和系统 | |
CN101488173A (zh) | 支持零宕机的可信虚拟域启动文件完整性度量的方法 | |
CN111835679B (zh) | 多租户场景下的租户资源管理方法和装置 | |
CN103176892A (zh) | 一种页面监控方法及系统 | |
CN104158841A (zh) | 计算资源分配方法 | |
CN112579692A (zh) | 一种数据同步方法、装置、系统、设备及存储介质 | |
CN105320503A (zh) | 中间件插件框架设计系统及方法 | |
CN107465709A (zh) | 分布式镜像构建任务方法及装置、系统 | |
CN115129423A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180713 |