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

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

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

本篇文章来自《华为云云原生王者之路训练营》黄金系列课程第10课,由华为云研发专家Lynsey 博士主讲,详细介绍灰度发布的定义,分类,流程及ASM灰度发布功能与使用场景

灰度发布概述

灰度发布的定义和分类

灰度发布是迭代的软件产品在生产环境安全上线的一种重要手段。

应用服务网格基于Istio提供的服务治理能力,对服务提供多版本支持和灵活的流量策略,从而支持多种灰度发布场景。

金丝雀发布(可理解为灰度发布)

在生产环境上引一部分实际流量对一个新版本进行测试,测试新版本的性能和表现,在保证系统整体稳定运行的前提下,尽早发现新版本在实际环境上的问题。

通过在线上运行的服务中,新加入少量的新版本的服务,然后从这少量的新版本中快速获得反馈,根据反馈决定最后的交付形态。

基于权重的灰度发布

可根据需要灵活动态的调整不同服务版本的流量比例

95479e3a9ddac4cd6e4ba4ca8c006d01.png

基于内容的灰度发布

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

05cee71e8f21f94e67d0bc22d7974e68.png

蓝绿发布

蓝绿发布提供了一种零宕机的部署方式。不停老版本,部署新版本进行测试,确认OK,将流量切到新版本,然后老版本同时也升级到新版本。始终有两个版本同时在线,有问题可以快速切换。

在部署应用的过程中,应用始终在线。并且新版本上线过程中,不会修改老版本的任何内容,在部署期间老版本状态不受影响。只要老版本的资源不被删除,可以在任何时间回滚到老版本。

可根据需要将全量流量在新旧版本间切换:

69cb54862d0e69d3d6d12385c0b8edd4.png

灰度发布的流程

89b93e34c440950c2f4947c3f41864ea.png

灰度发布全流程自动化管理:

  • 灰度版本一键部署,流量切换一键生效

  • 配置式灰度策略,支持流量比例、请求内容(Cookie、OS、浏览器等)、源IP

  • 一站式健康、性能、流量监控,实现灰度发布过程量化、智能化、可视化

ASM灰度发布功能与使用场景介绍

灰度发布功能 – 基于内容的灰度发布

步骤1:发起金丝雀灰度任务,选择一个服务进行灰度发布,并指定其版本号

db79466bef64141bd159ac2a9539e2cb.png

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

311a317e50224d580d9a0fe87e552090.png

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

aac018a78bbb9c16acf5a19187e75ca8.png

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

b4f08e13b16c4e7f0d525b9c29202e54.png

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

dfc575e0b3559510c6bbdcec7c0473e0.png

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

Deployment

5848fe96ba31433b4b493bb1fc7af4fc.png

Destination Rule

7f444aed50f7439006d8d7faccd137f6.png

Virtual Service

724509080da0115268d64c3c380893a2.png

灰度发布功能 – 基于权重的灰度发布

步骤1:发起金丝雀灰度任务,选择一个服务进行灰度发布

85f4a46fc3fe01eb46db5e7b01198726.png

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

bc5f36108d6edfe236557d146af387a0.png

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

8781517c08ee6e069205d5eec66eb78b.png

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

fb5cc80bb0800d468d9a08fa4e9edba6.png

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

d3c6548e3592353960b1d58e4fa26329.png

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

Deployment

ae79f38cbb80cc8cfbe62de17b116e10.png

Destination Rule

14845cdacfc26c3079c482040ac5644e.png

Virtual Service

6e120747ce51bb0d03e994afcee00431.png

灰度发布功能 – 蓝绿发布

步骤1:发起蓝绿发布任务,选择一个服务进行蓝绿发布

f07afdb20689a14b31375a574753106e.png

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

400ea9570796f76ced535f3b8eb4f801.png

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

dbd05d4e1c5819a851d76f5db8bae39e.png

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

00411ad55e64e92099def3d940b07017.png

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

645a583a05ef9d18e57af6416755cb40.png

e09ea5eaad3717c109f57d3fe9b37ec6.png

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

Deployment

f075275c5d4e4794e41fc529c527c1a7.png

Destination Rule

c2675ffa1d92a8a86e9110d4937022d1.png

Virtual Service

b16ad8be4d3b32b263bd8463f776d514.png

实验:基于ASM实现web app版本的灰度发布

实验目标:

  • 能够对灰度发布的流程有一定的认识和了解

  • 能够理解灰度发布的类型,配置简单的灰度策略

  • 能够掌握检查灰度策略是否生效的方法,包括界面和后台命令

实验前置条件:

  • 在Kubernetes集群上启用Istio服务网格

  • 在集群上部署好天气预报应用的四个服务的v1版本,可实现服务间的访问互通

实验关键步骤:

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

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

常用命令:

2552825f343d3381488bb3741f8bb61a.png

1b7b3485a6086df88813f9d9dbebc880.png


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

cf81ae8d0fe61a03a2be836babc48287.gif

16916a37d99395a88354dbe61381d282.gif

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值