1.定义

灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。

2.Apollo实现的功能

1)对于一些对程序有比较大影响的配置,可以先在一个或者多个实例生效,观察一段时间没问题后再全量发布配置。

2)对于一些需要调优的配置参数,可以通过灰度发布功能来实现A/B测试。可以在不同的机器上应用不同的配置,不断调整、测评一段时间后找出较优的配置再全量发布配置。

3.场景介绍

我们将上一篇博客中SpringBoot集成Apollo的项目部署在两台服务器上,用来演示。

灰度目标

我们希望my.test这个配置,对一台服务器灰度发布一个my.test=java,而另一台服务器仍保持不变。

4.创建灰度

1)点击application namespace右上角的 创建灰度 按钮

2)点击确定后,灰度版本就创建成功了,页面会自动切换到 灰度版本 Tab

5.灰度配置

1)点击 主版本的配置 中,要修改的配置最右侧的 对此配置灰度 按钮

2)修改灰度值

6.配置灰度规则

1)切换到 灰度规则 Tab,点击 新增规则 按钮

2)在弹出框中 灰度的IP 下拉框会默认展示当前使用配置的机器列表,选择我们要灰度的IP,点击完成

3)灰度发布

4)发布后,切换到 灰度实例列表 Tab,就能看到某一个服务器已经使用了灰度发布的值

7.全量发布

如果灰度的配置测试下来比较理想,符合预期,那么就可以操作 全量发布 。

全量发布的效果是:

1)灰度版本的配置会合并回主版本,在这个例子中,就是主版本的my.test会变成java 2)主版本的配置会自动进行一次发布 3)在全量发布页面,可以选择是否保留当前灰度版本,默认为不保留

8.放弃发布

如果灰度版本不理想或者不需要了,可以点击 放弃灰度

9.发布历史

点击主版本的 发布历史 按钮,可以看到当前namespace的主版本以及灰度版本的发布历史

Apollo之灰度发布相关推荐

  1. apollo集群部署_ribbon+apollo实现灰度发布

    一.前言 在一般情况下,升级服务器端应用,需要将应用源码或程序包上传到服务器,然后停止掉老版本服务,再启动新版本.但是这种简单的发布方式存在两个问题,一方面,在新版本升级过程中,服务是暂时中断的,另一 ...

  2. Apollo配置灰度发布

    所谓灰度发布,就是一部分客户端采用新的配置,一部分采用旧的,待新的配置经过市场检验后再全量发布为最新的配置,实现版本迭代的平滑过渡.

  3. Apollo灰度发布

    定义 灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式.在其上可以进行A/B testing,即让一部分用户继续用 产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩 ...

  4. 基于apollo实现配置灰度发布

    前言 在上一篇,通过dubbo的版本号控制,我们实现了一个服务的简单的灰度发布过程,在真实的项目环境中,灰度发布的应用场景是很多的,服务接口存在灰度的需求,本篇再介绍另一种比较常见的灰度需求场景,即配 ...

  5. Spring Cloud微服务版本灰度发布新神器

    项目地址:https://github.com/Nepxion/Discovery 强烈建议stra.fork该项目,该项目可以作为学习改造Spring Cloud组件的案例项目. Nepxion D ...

  6. springcloud灰度发布实现方案

    Nepxion Discovery是一款对Spring Cloud Discovery服务注册发现.Ribbon负载均衡.Feign和RestTemplate调用.Hystrix或者阿里巴巴Senti ...

  7. 基于Nodejs的前端灰度发布方案_20190228

    基于Nodejs的前端灰度发布方案 1. 灰度发布和A/B测试简介 灰度发布 将某个功能灰度发布(逐渐放量)给特定线上人群,避免新功能全量上线带来的风险. 上面的图可以通过两个方面来理解: 蓝色实线和 ...

  8. 11、Nepxion Discovery 之全链路界面操作蓝绿灰度发布

    在之前的文章中讲过,用户可以通过 URL 请求以及配置中心进行灰度发布的操作,而且支持配置中心的灰度发布参数的动态变更.如果用户不希望使用上面的两种方式,Nepxion Discovery 框架还支持 ...

  9. 从0到1搭建简单的灰度发布系统

    系统发布的演进之路 一般情况下我们系统发布需要将老系统关掉,然后将新系统进行启动,这种发布方式就会有一个比较致命的问题:服务短暂不可用,如果新代码存在bug可能会造成更长时间的故障,那么业界的前辈们想 ...

最新文章

  1. php MySQL快速入门_PHP 连接 MySQL
  2. oracle rac添加用户组,oracle 11g rac 与 oracle 10 rac所需要建立的组和用户
  3. 没有新芯片,没有“大核弹”,黄教主这次给大家带来了个PRADA
  4. dir函数_PHP dir()函数与示例
  5. python都有哪些包装_Python基础:21包装
  6. LPA标签传播算法——MATLAB实现及代码
  7. 在DLL Project中定义配置文件
  8. arp协议属于哪一层_TCP/IP协议栈-之-ARP协议分析
  9. 浅谈Javascript -- 【嵌套函数及闭包】
  10. 准备将redis引入项目做消息队列使用
  11. 利用python开发微信JS-JDK(基于python3.6)
  12. 从零开始的腾讯电脑管家下载安装配置教程
  13. 鸡兔同笼(C语言实现)
  14. Java 电阻计算器(一)
  15. 【错解】【附正解】“科林明伦杯”哈尔滨理工大学第十届程序设计竞赛 - E 赛马
  16. OI国家队集训论文集
  17. 数学知识(一):数论
  18. 联想y700安装黑苹果_【EFI】联想Y700 I7-6700HQ HD530 GTX 960M 1080P 10.14.6 引导下载
  19. 常见数据结构-栈-队列-数组-链表-哈希表
  20. 关于数组合并,php

热门文章

  1. java结丹期(14)----javaweb(cookiesession)
  2. 初等数论--同余方程--二元一次不定方程的通解形式
  3. 2021年第二届“华数杯”全国大学生数学建模竞赛
  4. 【django】配置redis数据库【4】
  5. 【django】配置URLconf
  6. Device is not certified by Google
  7. 基于策略的一种高效内存池的实现
  8. qui ajax,Ajax Fils de T Lamon
  9. 程序员求职面试 HR问的问题都能轻松答出,offer分分钟到手
  10. Objective-c 异步发送Post请求的工具类