Istio 流量管理案例/主流发布策略

主流发布方案介绍
主流发布方案:
  • 蓝绿发布
  • 滚动发布
  • 灰度发布(金丝雀发布)
  • A/B Test

蓝绿发布  简单粗暴


这些发布方案主要解决什么问题,主要是解决新旧业务平滑的切换,升级,顺利的带入到生产环境,保持其不间断的提供服务,减少流量丢失。

项目逻辑上分为AB组,在项目升级时,首先把A组从负载均衡中摘除,进行新版本的部署。B组仍然继续提供服务。A组升级完成上线,B组从负载均衡中摘除。

特点:
  • 策略简单
  • 升级/回滚速度快
  • 用户无感知,平滑过渡
缺点:
  • 需要两倍以上服务器资源
  • 短时间内浪费一定资源成本
  • 有问题影响范围大

适合小项目,对用户的敏感度不是特别大。

滚动发布


kubernetes默认的更新策略也就是主流发布方案是滚动更新。

每次只升级一个或多个服务,升级完成后加入生产环境, 不断执行这个过程,直到集群中的全部旧版升级新版本。

Kubernetes的默认发布策略。
特点:
  • 用户无感知,平滑过渡
缺点:
  • 部署周期长(需要健康检查,等它准备就绪,然后升级下一个,健康检查还是需要花费一些时间的)
  • 发布策略较复杂
  • 不易回滚
  • 有影响范围较大

灰度发布(金丝雀发布)


只升级部分服务,即让一部分用户继续用老版本,一部分用户开始用新版本,如果用户对新版本没有什么意见,那么逐步扩大范围,把所有用户都迁移到新版本上面来。(影响面非常的小)

特点:
  • 保证整体系统稳定性
  • 用户无感知,平滑过渡
缺点:
  • 自动化要求高

A/B Test


灰度发布的一种方式,主要对特定用户采样后,对收集到的反馈数据做相关对比,然后根据比对结果作出决策。用来测试应用功能表现的方法,侧重应用的可用性,受欢迎程度等,最后决定是否升级。

猜你喜欢

转载自blog.csdn.net/qq_34556414/article/details/125776993