概述上两篇文章,我们讲解了灰度组件的需求和设计的思路。不管之前讲的限流、幂等框架,还是现在讲的灰度组件,功能性需求都不复杂,相反,非功能性需求是开发的重点。本章,按照上篇文章的灰度组件的设计思路,讲解如何进行编码实现。不过,本章对实现的讲解,前前面两个实战项目有所不同。在前两个项目中,我们都是手把手从最基础的 MVP 代码将其。然后讲解如何 review 代码发现问题、重构代码解决问题,最终得到一
蓝绿部署蓝绿部署,英文名为 Blue Green Deployment,是一种可以保证系统在不间断提供服务的情况下上线的部署方式。如何保证系统不间断提供服务呢?那就是同时部署两个集群,但仅对外提供一个集群的服务,当需要升级时,切换集群进行升级。蓝绿部署无需停机,并且风险较小。其大致步骤为:部署集群 1 的应用(初始状态),将所有外部请求的流量都打到这个集群上部署集群 2 的应用,集群 2 的代码与
金丝雀发布也被称为灰度发布,实际上就是将少量的生产流量路由到线上服务的新版本中,以验证新版本的准确性和稳定性。Istio和 Kubernetes 实现金丝雀发布的方式不太一样,Istio 通过 Envoy 强大的路由规则管理能力,可以灵活地控制对应版本的流量百分比。通过创建其它的路由规则实现灰度,比如根据用户访问查看 Pod,也可以看到 reviews 这个服务一共启动了三个版本:kubectl
原创 2023-01-22 08:41:10
250阅读
Dubbo提供流量灰度的服务治理能力,可以在无需重启应用的情况下,配置标签路由规则和条件路由实现灰度发布Dubbo可以通过XML配置,注解配置,动态配置实现流量灰度,这里主要介绍动态配置的方式,其他配置方式请参考旧文档配置开始之前请确保成功运行Dubbo-Admin背景信息在产品开发中会遇到需求变化、版本迭代的场景,为了兼顾需求变化和系统稳定,发布要尽可能平滑,影响人群要由少到多,一旦有问题马上
整合nacos(Euraka 类似)实现灰度发布在一般情况下,升级服务器端应用,需要将应用源码或程序包上传到服务器,然后停止掉老版本服务,再启动新版本。但是这种简单的发布方式存在两个问题,一方面,在新版本升级过程中,服务是暂时中断的,另一方面,如果新版本有BUG,升级失败,回滚起来也非常麻烦,容易造成更长时间的服务不可用。什么是灰度发布呢?要想了解这个问题就要先明白什么是灰度灰度从字面意思理解就
dubbo源码学习(三)-Router 在学习router之前先了解下灰色发布的概念 灰度发布概念:灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以
服务升级机制  在项目敏捷开发的过程中,不可避免需要快速、安全的更新应用,目前比较流行的几种部署方案有: 滚动发布灰度发布/金丝雀发布和蓝绿部署。滚动发布(目前某银行内部生产环境交易系统的发布方式):  一般是取出一个或者多个服务器停止服务,执行更新,并重新将其投入使用。周而复始,直到集群中所有的实例都更新成新版本。  这种部署方式相对于蓝绿部署,更加节约资源——它不需要运行两个集群、两倍的实例
目录1.实现思路2.具体实现3.核心实现思路和代码3.1 区分正式服务和灰度服务3.2 负载均衡调用灰度服务3.3 网关传递灰度标识3.4 Openfeign 传递灰度标签小结灰度发布(Gray Release,也称为灰度发布或金丝雀发布)是指在软件或服务发布过程中,将新版本的功能或服务以较小的比例引入到生产环境中,仅向部分用户或节点提供新功能的一种发布策略。在传统的全量发布中,新版本的功能会一次
三个问题,回顾前情提要。ServiceMesh 解决什么问题?SM 本质是业务服务与底层技术体系的解耦:一个进程实现业务逻辑(不管是调用方,还是服务提供方),biz,即上图白色方块一个进程实现底层技术体系,proxy,即上图蓝色方块画外音:负载均衡、监控告警、服务发现与治理、调用链… 等诸多基础设施,都放到这一层实现。什么是 IstioIstio 是 ServiceMesh 的产品化落地。Ist
转载 2021-02-02 20:39:53
941阅读
2评论
三个问题,回顾前情提要。ServiceMesh解决什么问题?SM本质是业务服务与底层技术体系的解耦:一个进程实现业务逻辑(不管是调用方,还是服务提供方),biz,即上图白色方块一个进程实现底层技术体系,proxy,即上图蓝色方块画外音:负载均衡、监控告警、服务发现与治理、调用链…等诸多基础设施,都放到这一层实现。什么是IstioIstio是ServiceMesh的产品化落地。Istio的分层架构
原创 2020-11-10 15:36:25
470阅读
准备工作 安装好 Istio # 安装 demo 配置 istioctl install --set profile=demo # 设置启用自动注入 istio sidecar 的命名空间 kubectl label namespace default istio-injection=enabled
转载 2020-11-04 15:28:00
110阅读
2评论
  什么是灰度发布呢?要想了解这个问题就要先明白什么是灰度灰度从字面意思理解就是存在于黑与白之间的一个平滑过渡的区域,所以说对于互联网产品来说,上线和未上线就是黑与白之分,而实现未上线功能平稳过渡的一种方式就叫做灰度发布。  非黑即白从来不是一种普遍现象,从色彩角度讲,灰度指不饱和的黑色,我们把黑色定为基准色,每个灰度对象是从白色(0%)到黑色(100%)的中间值,这中间的98%都是灰。  互联
转载 1月前
9阅读
在上一篇文章《基于Spring cloud ribbon实现多版本控制》中介绍了如何扩展spring cloud ribbon实现接口多版本控制的项目 – fm-cloud-bambbo, 开发这个项目的过程,给我提供了很多想法和思路,发现只要再做一些扩展,就可以实现灰度管理,于是又有了 fm-cloud-graybunny。灰度发布灰度发布是在多版本控制的基础上进一步扩展实现出来的项目 -&gt
什么是灰度发布灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。灰度期:灰度发布开始到结束期间的这一段时间,称为灰度
升级项目有了阶段性的进展,目前仍然在进行中。通过本⽂,我们对公司内部的 Dubbo 3 升级过程及收益等做了深⼊总结。 作者:李斌、邱炜背景我们公司从 2015 年开始就使⽤ Dubbo 作为微服务框架,当社区推出 Dubbo 3 时,我们也⽴刻跟进并做了深⼊调研,发现 Dubbo 3 的应⽤/实例级服务注册和发现模式能够在一定程度上解决我们当前注册中⼼
Kubernetes(K8S)和Istio是当今流行的容器编排和服务网格工具。在K8S中实现灰度发布可以通过Istio的流量管理功能来实现,它可以让你在不停服的情况下逐步将新版本的服务引流到线上。下面让我们来详细了解如何在K8S中使用Istio实现灰度发布。 ### 流程概述 首先,让我们通过表格展示整个灰度发布流程: | 步骤 | 操作 | | --- | --- | | 1 | 安装和部
原创 4月前
66阅读
Kubernetes作为基础平台,提供了强大的容器编排能力。但是在其上部署业务和服务治理上,仍然会面对一些复杂性和局限性。在服务治理上,已经有许多成熟的ServiceMesh框架用于扩充其能力,如Istio、Linkerd、Dapr等。本文将主要介绍如何使用Istio扩充Kubernetes灰度发布的能力。而在部署上,则会利用开源项目Rainbond(https://github.com/good
原创 精选 2022-09-20 17:22:06
962阅读
背景目前我公司自己搭了一套发布系统,底层使用的是docker的swarm,实现了“灰度发布”功能。当开启发布灰度发布的时候,会独立启动一个容器,只允许指定百分比的流量进入到灰度容器中。 这一套机制,是依靠在网关中对后端http服务实例做不同的权限实现的,只能对http服务生效。 dubbo服务是直接跟注册中心zookeeper拿到所有服务提供者的地址,然后直连服务提供者,并不会经过网关。dubbo
Dubbo是什么?Dubbo是由阿里开发的一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。其核心部分包含:远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。 集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。 自
1.滚动发布常用发布方式有蓝绿发布灰度发布、滚动发布,由于k8s中deployment的特性,默认情况下是滚动发布,其实只要更新deployment中的镜像标签,即是滚动发布,通过spec.strategy中参数来具体实现,如下介绍所示:strategy: rollingUpdate: maxSurge: 25% #最大峰值:是一个可选字段,用来指定可以创建的超出 期望 Po
  • 1
  • 2
  • 3
  • 4
  • 5