SpringCloud系列之服务容错保护Netflix Hystrix(springcloud容错机制)
607
2022-05-30
云原生之路07之Istio服务网格进阶
第十章 Istio灰度发布管理
前情回顾:
服务网格的发展历程、相关概念
Istio的概念、架构、特性、应用场景
架构:控制面(Istiod: Citadel,Pilot, Gally)、数据平面:(代理 Envoy)
特性:流量管理(负载均衡,动态路由,灰度发布,故障注入)、可观察性(调用链,访问日志,监控)、策略控制(限流,ACL,配额,计费)、认证安全(认证,授权,审计)
资源类型:Gateway,Virtual Service、Destination Rule
业务灰度发布概述
灰度发布是迭代的软件产品在生产环境安全上线的一种重要手段
应用服务网格基于Istio提供的服务治理能力,对服务提供多版本支持和灵活的流量策略,从而支持多种灰度发布场景
金丝雀发布
在生产环境上引一部分实际流量对一个新版本进行测试,测试新版本的性能和表现,在保证系统整体文档运行的前提下,尽早发现新版本在实际环境上的问题
通过在线上运行的服务中,新加入少量的新版本的服务,然后从这少量的新版本中快速活动反馈,根据反馈决定最后的交付形态。
分类
(1)基于权重的灰度发布:可更加需要灵活动态的调整不同服务版本的流量比例
(2)基于内容的灰度发布:可根据请求的内容控制其流行的服务版本(Cookie,Header,OS,Browser)。
蓝绿发布
蓝绿发布提供一种零宕机的部署方式。不停老版本,部署新版本进行测试。始终有两个版本同时在线,有问题可以快速切换
在部署应用过程中,应用始终在线。并且新版本上线过程中,不会修改老版本任何内容,在部署阶段老版本状态不受影响。只要老版本资源不被删除,可以在任何时间回滚到老版本。
可根据需要将全量流量在新旧版本间切换
灰度发布流程
灰度版本一键部署,流量切换一键生效
配置式灰度策略,支持流量比例,请求内容(Cookie,OS,浏览器等)和源IP
一站式健康,性能,流量监控,实现灰度发布过程量化,智能化和可视化。
ASM灰度发布功能与使用场景
可根据请求的内容控制其流行的服务版本(Cookie,Header,OS,Browser)
步骤:
(1) 发起金丝雀灰度任务,选择一个服务进行灰度发布
(2) 给选定的服务创建灰度版
(3) 提交并等待灰度版本正常启动
(4) 在实例正常启动后,可以给灰度版本配置流量规则,分配流量
(5) 经过一段时间的运行,确认灰度版本运行正常,满足业务要求,则可以切换全部流量到灰度版本,原版本下线
实验: 基于ASM实现Web app的灰度版本发布
第十一章 Istio流量治理与监控管理
微服务发展
微服务:互联网高速发展以及传统分布式、SOA架构无法适应快速的开发迭代等多重因素共同推动下的产物
微服务雏形:微服务概念最早由Fred George 在2012年的一次技术大会上所提出,拆分SOA服务实现解耦
微服务发扬光大:2014年,James Lewis 和 Martin Fowler发表一篇名为《Microservices》的文章
服务治理介绍
服务治理主要针对微服务的治理:
(1)服务注册和服务发现
(2)服务负载均衡,路由,灰度和蓝绿
(3)服务降级,熔断
(4)服务限流
(5)服务监控
微服务框架:SpringCloud,Dubbo
Istio常用的流量治理策略
负载均衡算法:加权轮询、最少请求、环形Hash、随机、优先级负载均衡、Locality加权
Istio监控介绍
可观测性:Istio以非侵入的方式提供了一下遥测类型:
Metrics
Distributed Traces
Access Logs
Istio 云原生
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。