首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏coding个人笔记

    灰度发布

    灰度发布,对于大厂来说是必不可少的,对于我这种从来没有灰度发布过的,并不是很清楚,估计也有很多人不知道这个东西。以前只是直到灰度发布,这次稍微了解一下。 灰度发布是指新版本或者新功能通过一定策略选取一些用户,让他们先使用,通过使用情况对功能、性能、稳定性等指标评估是否扩大范围直至全面发布灰度发布开始到结束期间的这一段时间,称为灰度期。 如果是客户端的灰度发布,应该是可以按照用户逐渐推送更新安装包。而服务端的灰度发布则会相应容易一些,毕竟是在后台实现。 现在有专门的灰度发布模式A/B测试,通过业务代码区分流量访问不同代码。 灰度发布除了代码层面之外,对服务这块要求还是蛮大的,灰度发布不同于预发布灰度发布是直接让线上用户参与,而一般预发布发布到线上,由测试人员进行测试。 当然,会使用灰度发布的,一般来说都是千万级别用户的项目了,虽然很想使用灰度发布,但还是需要考虑实际场景,也希望以后能有机会使用灰度发布。 (完)

    1.9K30发布于 2020-04-24
  • 来自专栏程序员升级之路

    灰度发布

    1、什么是灰度发布 以下是百度词条的解释: 灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。 灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。 2、为什么要灰度发布 灰度发布的主要目的是保证系统的可用性。因为每一次线上变更都无法保证系统100%的无bug,所以变更后要在线上小范围验证,等没问题再全面放开。 2、业务代码中写灰度逻辑 在业务代码中写好判断当前用户是否需要走灰度,如果是走新流程,不是还是走老流程。 所以功能2:数据库查询解密就不用单独做灰度了。

    3.4K62发布于 2020-09-11
  • 来自专栏姜同学

    灰度发布

    什么是灰度发布 介绍灰度发布流程之前我先一句话介绍一下什么是灰度发布灰度发布就是,线上app无需停机就可以保证运行的是经过测试的稳定版本,且我们在冒烟测试时也不会影响到线上App的运行。 为什么我们要搞灰度发布 线上的服务每次都是我来构建,我可以非常负责任的讲,冒烟测试时不重新发布的几率很小,而且很多时候需要我去定位线上问题,这个过程我不知道你们痛不痛苦,反正我是很痛苦。 为了能让用户有更好的体验,也为了我不在那么痛苦所以我们急需要一款灰度发布系统。 灰度发布系统怎么搞 一个很简单的理论,同时准备两份服务,让符合规则的请求路由到灰度接口,不符合规则的路由到之前发布的服务就好了哇~ 图片 代码实现 熟悉SpringCloudGateway的同学对于 让符合规则的请求路由到灰度接口,不符合规则的路由到之前发布的服务就好了哇~,对于这个简单的需求我们只要在path断言不变的前提下在增加一个管理规则的断言不就可以了吗,以指定请求头包含指定value的规则为例

    2.2K30编辑于 2022-10-27
  • 来自专栏Mysql -- 21世纪最放肆的人

    灰度发布

    灰度发布浅析 定义 灰度发布就是已一种平滑过渡的方式来发布,通过切换线上新旧版本之间的路由权重,逐步从旧版本切换到新版本;比如要上线新功能,首先只是更新少量的服务节点,通过路由权重,让少部分用户体验新版本 灰度发布 一个系统往往有接入层比如nginx(Openresty),网关层比如zuul,以及服务层比如各种rpc框架;在这几层都有路由功能,也就是说这几层都可以做灰度;接入层可以使用nginx+lua来实现灰度 同时准备请求地址/hiGray,返回值为route2;用于区分是否走了灰度服务器;然后在zuul端需要引入一个插件: <dependency> <groupId>io.jmnarloch</groupId 具体可以参考官方文档:旧路由规则 测试 启动zookeeper,然后分别启动两台生产者,启动消费者时通过修改tag然后观察路由; 总结 本文分别从接入层,网关层,服务层这三层简要的介绍了通过路由规则来实现灰度发布 ;已每层比较典型的中间件来介绍具体如何去实现简单的灰度发布;总体来说就是使用中间件的路由功能,动态加载外部自定义的一些路由策略脚本,以此来达到灰度发布的目的。

    2.1K30发布于 2020-12-09
  • 来自专栏DDD

    游戏灰度发布

    ,蓝绿部署、滚动部署、灰度发布、金丝雀发布。。。 等等,理想很丰满,现实很骨感 在版本发布最后一天,开发人员在凌晨1、 2点时,还在开发,修复bug,好不容易打包,回家睡觉 第二天运维在8点开始停机发布新版本; duang,怎么游戏服起不来了,开发请起床 整个游戏的链条上,似乎大家都已经习惯,开发习惯,玩家也习惯 习惯麻痹了一切,没有提出更好的策略,大家都这么玩啊,无所谓啦~ 方案 细思极恐,我们应该,也需要做得更好 灰度发布/金丝雀发布 灰度发布是在原有版本可用的情况下 灰度发布/金丝雀发布由以下几个步骤组成: 准备好部署各个阶段的工件,包括:构建工件,测试脚本,配置文件和部署清单文件。 从负载均衡列表中移除掉“金丝雀”服务器。 在之前的架构图中,稍作修改,在玩家与Gameserver之间增加一层ha-proxy,这样就有了灰度发布的基础 玩家不再直接与game-server直连,而是与ha-proxy 透明性 对玩家来说,发版本就是透明的

    2.1K30发布于 2021-03-23
  • 来自专栏zaking's

    一、灰度发布

    一、灰度发布   灰度发布是一种发布方式,也叫金丝雀发布,起源是矿工在下井之前会先放一只金丝雀到井里,如果金丝雀不叫了,就代表瓦斯浓度高。原因是金丝雀对瓦斯气体很敏感。 灰度发布的做法是:会在现存旧应用的基础上,启动一个新版应用,但是新版应用并不会直接让用户访问。而是先让测试同学去进行测试。 代表是否开启灰度功能 nginx.ingress.kubernetes.io/canary-by-cookie:灰度发布 cookie 的 key。当 key 值等于 always 时,灰度触发生效。 header去判断是否为灰度用户,再决定是否返回灰度版本服务。    二、滚动发布   滚动发布,则是我们一般所说的无宕机发布。其发布方式如同名称一样,一次取出一台/多台服务器(看策略配置)进行新版本更新。

    2K20编辑于 2022-05-10
  • 来自专栏Linyb极客之路

    灰度发布方案

    一、灰度发布定义 灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。 灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。 ? 二、实现思路方向 1、在代码中做。 一套线上环境,代码中做开关,对于不同的用户走不同的逻辑 2、在接入层做。 /intro.html 新浪微博开源项目 git地址:https://github.com/CNSRE/ABTestingGateway ABTestingGateway是一个可以动态设置分流策略的灰度发布系统 demo逻辑:目标服务的端口和灰度服务端口的一致,并且请求方法的第一个参数类型是Long(userId)并且是灰度用户,则判断为灰度服务,否则按照默认随机调用其余非灰度服务 ?

    12.4K41发布于 2018-08-06
  • 来自专栏iTesting

    关于灰度发布

    所以感觉应该算是一种通用系统吧~ 为什么要有灰度发布系统? 两者还是有一些区别的,小流量上线一般做的是系统的彻底升级,和灰度发布不一样。也即是前面提到的,灰度发布期间,线上的系统两套代码在同一台新发布的机器上也同时存在。 灰度发布一般人都比较熟悉的案例可能是微软的操作系统升级吧,其实腾讯qq或者微信发布也差不多。不过说到操作系统升级,灰度发布感觉还有另外的一层意思。可以控制用户流量对网络或者系统的负载的影响。 继续来说互联网公司的灰度发布系统。 一般的灰度发布都会有一些策略,其实就是分类/桶策略。 : 15810321343 md5=> 05eadde36e5e5c3a00015a8f07d98d6b sha1=> 7962e1ba260de074ef895af44c62ad353ee36c2c

    2.5K30发布于 2019-11-01
  • 来自专栏玖叁叁

    StatefulSet灰度发布

    灰度发布(Gray Release)是一种流行的发布策略,可以使我们在不中断整个生产环境的情况下逐步将新版本的应用程序发布给一小部分用户,以确保它们能够正常运行。 因此,在灰度发布中,我们可以使用不同的副本集来分别部署新版本和旧版本的应用程序,并逐步增加新版本的副本集,以确保它们能够正确运行。 下面是一个基于StatefulSet的灰度发布示例:假设我们有一个名为web的StatefulSet,它有3个副本,使用的是RollingUpdate更新策略,版本号为v1,现在我们想要发布新版本的应用程序 ,并使用灰度发布策略。 当我们想要进行灰度发布时,我们可以通过 StatefulSet 的 RollingUpdate 更新策略来实现。

    1.3K10编辑于 2023-04-30
  • 来自专栏devops_k8s

    灰度发布实现及蓝绿发布

    image.png 3.0 方案 3.1 灰度发布 灰度发布是一种常见的服务滚动升级或A/B测试策略。 发布前检查:预检查当前 Ingress 是否有且只关联了唯一的 Service 实例,且 Service 实例下有且只有唯一版本的 Deployment。 2 . 修改 Ingress 流量规则:根据发布配置调整 Ingress 配置,开始执行灰度。 4 . 人工验证:通过 cookie 或者 header 对灰度版本进行验证,根据结果选择完成发布或者回滚。 通过header实现灰度发布验证 image.png 待改进 1 . 2 . 3 . 3.2 蓝绿发布 不停老版本,部署新版本然后进行测试,确认ok,将流量切换到新版本,然后老版本升级到新版本 : 将流量从版本1切换到版本2; 第四步: 如版本2测试正常,就删除版本1正在使用资源(例如实例1),从此正式使用版本2; 小结 从过程不难发现,部署过程中,应用始终在线,并且新版本上线过程中,并没有修改老版本的任何内容

    1.9K21发布于 2021-08-08
  • 来自专栏飞鸟的专栏

    istio如何灰度发布

    Istio中的灰度发布在Istio中,灰度发布是通过指定不同版本的流量路由规则来实现的。这些规则描述了如何将传入的流量分配到不同的版本中,从而实现逐步推出新版本的目的。 通过使用这些组件,我们可以在Istio中轻松地设置灰度发布规则。Istio灰度发布的步骤下面是在Istio中实现灰度发布的基本步骤:创建两个Kubernetes部署,分别代表旧版本和新版本。 下面是一些实现灰度发布的示例。示例1:基于HTTP头的灰度发布在这个示例中,我们将使用HTTP头来指定将流量路由到哪个版本。我们将创建两个版本的示例服务,并使用HTTP头将流量路由到不同的版本中。 当end-user值为v2时,流量将路由到v2版本的reviews服务。当HTTP头中没有指定end-user时,流量将路路由到默认版本的reviews服务(即v1)。 现在,我们可以测试v2版本的reviews服务。为此,我们需要在HTTP头中添加一个end-user值为v2的标头。

    2.1K30编辑于 2023-03-29
  • 来自专栏服务端开发笔记

    灰度发布与ABtest

    蓝绿发布 [zouhf7hpk5.png? 1650518920&q-header-list=&q-url-param-list=&q-signature=3f398079c973505209591401cb9401008dd76a12] 滚动发布 金丝雀/灰度发布 [eaguaysaiw.png? =1650511749;1650518949&q-header-list=&q-url-param-list=&q-signature=0619ae0090d2cfff2cd70323c7235b517ee609e7 q-header-list=&q-url-param-list=&q-signature=f1e00c1938c3f637f272370811873e986e768d32] 实际使用过程中往往是AB测试+灰度结合使用

    88760编辑于 2022-04-21
  • 来自专栏全栈程序员必看

    Nginx灰度发布—-【cookie】、【IP】

    灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。 AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。 灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。 A/B测试流程 Nginx根据Cookie实现灰度发布 ---- 根据Cookie查询Cookie键为version的值,如果该Cookie值为V1则转发到tomcat1,为V2则转发到tomcat2 X-Forwarded-For $proxy_add_x_forwarded_for; index index.html index.htm; } } Nginx根据来路IP实现灰度发布

    1.4K20编辑于 2022-06-29
  • 来自专栏玖叁叁

    Ingress实现灰度发布(二)

    在实现灰度发布时,我们可以使用Ingress规则将流量路由到新版本服务和旧版本服务。为此,我们需要定义两个不同的Ingress规则。 port: name: http - host: example.com http: paths: - path: /api/v2 pathType: Prefix backend: service: name: my-service-v2 port: 该规则具有两个路径,分别是“/api/v1”和“/api/v2”。当请求路径为“/api/v1”时,Ingress规则将流量路由到名为“my-service-v1”的Service资源。 同样,当请求路径为“/api/v2”时,Ingress规则将流量路由到名为“my-service-v2”的Service资源。

    47520编辑于 2023-05-05
  • 来自专栏芋道源码1024

    SpringCloud 优雅下线+灰度发布

    Hystrix 源码解析 Java 并发源码 来源:blog.csdn.net/qq_35246620/ article/details/109166722/ 前言 优雅下线 常见的下线方式 优雅的下线方式 灰度发布 常见的优雅解决方案,主要包括优雅下线和灰度发布。而实际上,灰度发布的范围就已经包含优雅下线了。 最后,在本文中,我们主要讲述基于 Spring Cloud 和 Euraka 的优雅下线以及灰度发布。 项目地址:https://github.com/YunaiV/onemall 灰度发布 蓝绿部署 蓝绿部署,英文名为 Blue Green Deployment,是一种可以保证系统在不间断提供服务的情况下上线的部署方式 2 如集群 2 测试正常,就删除集群 1 正在使用的资源(例如实例),使用集群 2 对外提供服务 因为在使用蓝绿部署的方式时,我们需要控制流量,所以我们需要借助路由服务,如 Nginx 等。 金丝雀部署 金丝雀部署又称灰度部署(或者,灰度发布),英文名为 Canary Deployment,是指在黑与白之间,能够平滑过渡的一种发布方式 。

    1.4K30编辑于 2022-04-18
  • 来自专栏猿天地

    SpringCloud 优雅下线+灰度发布

    回复”学习资料“获取学习宝典 来源:blog.csdn.net/qq_35246620/article/ details/109166722 文章目录 前言 优雅下线 常见的下线方式 优雅的下线方式 灰度发布 常见的优雅解决方案,主要包括优雅下线和灰度发布。而实际上,灰度发布的范围就已经包含优雅下线了。 最后,在本文中,我们主要讲述基于 Spring Cloud 和 Euraka 的优雅下线以及灰度发布灰度发布 蓝绿部署 蓝绿部署,英文名为 Blue Green Deployment,是一种可以保证系统在不间断提供服务的情况下上线的部署方式。 如何保证系统不间断提供服务呢? 2 如集群 2 测试正常,就删除集群 1 正在使用的资源(例如实例),使用集群 2 对外提供服务 因为在使用蓝绿部署的方式时,我们需要控制流量,所以我们需要借助路由服务,如 Nginx 等。 金丝雀部署 金丝雀部署又称灰度部署(或者,灰度发布),英文名为 Canary Deployment,是指在黑与白之间,能够平滑过渡的一种发布方式。

    70320编辑于 2022-05-10
  • 来自专栏cwl_Java

    快速学习-Saturn灰度发布

    灰度发布 1. 目的 灰度发布是为了在升级过程中减少对于现有业务的影响,通过升级一台Executor先验证是否没有问题后,再逐步按照批次升级。 灰度发布要求域下至少有2台Executor。 2. 什么时候需要灰度发布 变更了现有的作业代码 增加了新的作业 3.

    1.1K30发布于 2020-09-18
  • 来自专栏JAVA技术站

    灰度环境发布策略 转

    灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。 AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面 来。 灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。 灰度发布一般有三种方式 nginx+lua,nginx根据cookie分流,nginx 根据权重来分配 nginx+lua根据来访者ip地址区分,由于公司出口是一个ip地址,会出现访问网站要么都是老版 ,要么都是新版,采用这种方式并不适合 nginx 根据权重来分配,实现很简单,也可以尝试 nginx根据cookie分流,灰度发布基于用户才更合理 两台服务器分别定义为 tts_V6  192.168.3.81

    99430发布于 2018-08-16
  • 来自专栏玖叁叁

    Ingress实现灰度发布(一)

    灰度发布是一种逐步将新版本服务引入生产环境的策略,以减少因服务更新引起的风险。 在Kubernetes中,可以使用Ingress控制器来实现灰度发布,将一部分请求路由到新版本服务,一部分请求路由到旧版本服务。 创建两个版本的服务在进行灰度发布之前,首先需要准备两个版本的服务,分别是旧版本和新版本。 为了说明这个过程,我们创建了一个名为“my-service”的简单Web服务,并在版本1和版本2中创建了两个副本。 apiVersion: apps/v1kind: Deploymentmetadata: name: my-service-v1spec: replicas: 2 selector: matchLabels

    67110编辑于 2023-05-05
  • 来自专栏互联网-小阿宇

    Nginx灰度发布----【cookie】、【IP】

    灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。 AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。 灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。 A/B测试流程 Nginx根据Cookie实现灰度发布 ---- 根据Cookie查询Cookie键为version的值,如果该Cookie值为V1则转发到tomcat1,为V2则转发到tomcat2 X-Forwarded-For $proxy_add_x_forwarded_for; index index.html index.htm; } } Nginx根据来路IP实现灰度发布

    1.5K11编辑于 2022-11-21
领券