暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

云原生第10课:Istio 灰度发布管理

340

点击上方“程序猿技术大咖”,关注并选择“设为星标”

回复“加群”获取入群讨论资格!

本篇文章来自《华为云云原生王者之路训练营》黄金系列课程第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版本,可实现服务间的访问互通


实验关键步骤:

  1. 观察当前的服务调用关系,服务拓扑图和应用UI

  2. 对forecast服务进行基于权重/内容的灰度发布,权重/策略可任意调整,并观察服务的调用关系


常用命令:





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


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

文章转载自程序猿技术大咖,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论