点击上方“程序猿技术大咖”,关注并选择“设为星标”
本篇文章来自《华为云云原生王者之路训练营》黄金系列课程第10课,由华为云研发专家Lynsey 博士主讲,详细介绍灰度发布的定义,分类,流程及ASM灰度发布功能与使用场景。
灰度发布概述
灰度发布的定义和分类
灰度发布是迭代的软件产品在生产环境安全上线的一种重要手段。
应用服务网格基于Istio提供的服务治理能力,对服务提供多版本支持和灵活的流量策略,从而支持多种灰度发布场景。
金丝雀发布(可理解为灰度发布)
在生产环境上引一部分实际流量对一个新版本进行测试,测试新版本的性能和表现,在保证系统整体稳定运行的前提下,尽早发现新版本在实际环境上的问题。
通过在线上运行的服务中,新加入少量的新版本的服务,然后从这少量的新版本中快速获得反馈,根据反馈决定最后的交付形态。
基于权重的灰度发布
可根据需要灵活动态的调整不同服务版本的流量比例

基于内容的灰度发布
可根据请求的内容控制其流向的服务版本(Cookie, Header, OS, Browser)

蓝绿发布
蓝绿发布提供了一种零宕机的部署方式。不停老版本,部署新版本进行测试,确认OK,将流量切到新版本,然后老版本同时也升级到新版本。始终有两个版本同时在线,有问题可以快速切换。
在部署应用的过程中,应用始终在线。并且新版本上线过程中,不会修改老版本的任何内容,在部署期间老版本状态不受影响。只要老版本的资源不被删除,可以在任何时间回滚到老版本。
可根据需要将全量流量在新旧版本间切换:

灰度发布的流程

灰度版本一键部署,流量切换一键生效 配置式灰度策略,支持流量比例、请求内容(Cookie、OS、浏览器等)、源IP 一站式健康、性能、流量监控,实现灰度发布过程量化、智能化、可视化
ASM灰度发布功能与使用场景介绍
灰度发布功能 – 基于内容的灰度发布
步骤1:发起金丝雀灰度任务,选择一个服务进行灰度发布,并指定其版本号

步骤2:给选定服务创建灰度版,选择灰度发布版本的镜像

步骤3:提交并等待灰度版本正常启动

步骤4:在实例正常启动后,可以给灰度版本配置流量规则,分配流量

步骤5:配置完成流量规则后,经过一段时间的运行,确认灰度版本运行正常,满足业务要求,则可以切换全部流量到灰度版本,原来版本下线。

灰度发布功能 – 基于内容的灰度发布(后台操作)
Deployment

Destination Rule

Virtual Service

灰度发布功能 – 基于权重的灰度发布
步骤1:发起金丝雀灰度任务,选择一个服务进行灰度发布

步骤2:给选定服务创建灰度版

步骤3:提交并等待灰度版本正常启动

步骤4:在实例正常启动后,可以给灰度版本配置流量规则,分配流量

步骤5:经过一段时间的运行,确认灰度版本运行正常,满足业务要求,则可以切换全部流量到灰度版本,原来版本下线

灰度发布功能 – 基于权重的灰度发布(后台操作)
Deployment

Destination Rule

Virtual Service

灰度发布功能 – 蓝绿发布
步骤1:发起蓝绿发布任务,选择一个服务进行蓝绿发布

步骤2:给选定服务创建灰度版

步骤3:提交并等待灰度版本正常启动,在实例正常启动后,切换全量流量到灰度版本

步骤4:经过一段时间的运行,确认灰度版本运行正常,满足业务要求,则可以将原版本下线

步骤5:如果发现灰度版本有问题,也可以一键迁移回原版本,从而完成安全快速热回退


灰度发布功能 – 蓝绿发布(后台操作)
Deployment

Destination Rule

Virtual Service

实验:基于ASM实现web app版本的灰度发布
实验目标:
能够对灰度发布的流程有一定的认识和了解
能够理解灰度发布的类型,配置简单的灰度策略
能够掌握检查灰度策略是否生效的方法,包括界面和后台命令
实验前置条件:
在Kubernetes集群上启用Istio服务网格
在集群上部署好天气预报应用的四个服务的v1版本,可实现服务间的访问互通
实验关键步骤:
观察当前的服务调用关系,服务拓扑图和应用UI
对forecast服务进行基于权重/内容的灰度发布,权重/策略可任意调整,并观察服务的调用关系
常用命令:


感谢您的阅读,也欢迎您发表关于这篇文章的任何建议,关注我,技术不迷茫!

云原生第9课:Istio服务网格快速入门 云原生第8课:Kubernetes应用配置管理 云原生第7课:Kubernetes 网络与服务管理 云原生第6课:Kubernetes持久化数据卷管理 云原生第5课:Kubernetes工作负载管理 云原生第4课:Kubernetes 集群管理 云原生第3课:Kubernetes 系统快速入门 云原生第2课:云原生技术体系中的基石-容器技术 云原生第1课:云原生发展历程与技术体系

喜欢就点个"在看"呗,留言、转发朋友圈




