目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

JAVA全系列 教程

3762个小节阅读:7090.3k

收藏
全部开发者教程

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(248)
赞(0)

15、运维面试必问---如何基于网关实现灰度发布的?说说你们的灰度发布方案?

问题背景

灰度发布是指在 黑和白(0和1)之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,指为产品已发布A版本,在发布B版本时,在同一时间维度,让一部分用户继续用A版本,一部分用户开始用B版本,如果用户对B版本没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B版本上面来。灰度发布可以保证整体系统的稳定,在初始灰度发布时就可以发现及调整问题,以保证其影响度。

灰度发布的好处

  • 降低发布影响面: 就算出问题,也只会影响部分用户,从而可以提前发现新版本中的 bug,然后在下一次发布前提前修复,避免影响更多用户;
  • 提升用户体验: 除了能发现 bug,还能很好的收集新版本的用户使用反馈,从而提前调整系统,提升用户体验,也能给后续的产品演进带来参考价值。
  • 可以做到不停机的热迁移,版本回滚便捷(速度快)

灰度发布的几种类型

  • 金丝雀发布
  • 滚动发布
  • 蓝绿发布

金丝雀发布

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

[图片]

滚动发布

滚动发布则是在金丝雀发布的基础上进行的改进和优化,第一次也是使用金丝雀发布,后续则使用多批次的形式发布剩余实例,每次批次之间会进行观察,如果有问题,再进行回滚。

蓝绿发布

image-20230421120238856

发布策略的比较

  • 蓝绿发布:适合于对于资源预算比较充足的业务,或者是比较简单的单体应用,可以快速实现系统的整体变更
  • 金丝雀和全链路灰度:适合需要针对特定用户或者人群进行连网请求验证的业务,可以显著减低风险

综上,建议选择金丝雀或者全链路灰度进行服务的升级发布。

灰度发布流程及实现思路

用户请求--> 网关-->服务a-->服务b

  1. 用户会发送请求
  2. 经过网关分发请求到具体的服务A
  3. 服务A 调用服务B

基于网关的灰度发布解决方案

通过网关寻找下层服务之前,通过拦截器处理请求头的参数信息,通过判断数据库中数据当前请求是否符合灰度的要求,如果符合,走灰度服务;否则走正常服务。

image-20230421115002718

 

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2