聊一聊灰度

2020-11-19 17:42:44 浏览数 (1)

聊一聊灰度

案例

小明家做食品批发生意,供应商向其推荐了一款新产品,并告诉他市场特别好,但是小明做了很多年生意,对于新产品线有自己的想法,他不愿意一下子就进很多新产品,因为有可能市场好大赚一笔,

也有可能市场不好砸在手里,和供应商协商后,小明计划先进一小部分新产品做试用点,旧产品保证库存占有量95%,新产品进库存的5%的量,如果新产品卖得好下次多进点,提高新产品覆盖率,如果效果

不好,就不进了。

1

概念

灰度,从字面意思上讲就是介于白与黑之间的状态,对于应用来说,灰度其实是版本迭代和功能升级中的中间态,是旧版本向新版本平滑过渡的过程。上边描述的案例其实就是灰度的真实应用场景,对于新产品引入一小部分做功能试点(灰度),如果试点效果好就可以考虑全面覆盖,如果不好就可以产品回退。

2

目的

我们都用有用过各种app应用,有些时候我们下载到的应用是beta版,其实是一些用户才有资格使用的测试版,而不是面向所有用户开放的稳定版。

灰度的目的是将产品面向一部分用户,如果试用结果反馈良好,再大量推广或者全量推广,如果反馈不好,可以回退到一个稳定可用的状态。

3

场景

按照灰度使用场景的不同,灰度可以分为灰度发布和灰度放量:

  • 灰度发布

灰度发布,是将应用按照一定比例发布到指定的服务器上,然后应用服务集群就会出现有一部分集群运行1.0版本应用,有一部分服务器运行2.0版本应用,这样请求过来后,会经过路由层路由到新版服务或者旧版服务。

  • 灰度放量

灰度放量,有很多时候是和灰度发布结合使用的,比如灰度发布后按照用户白名单放量,在白名单中的用户请求路由到新版本服务,不在白名单的使用旧服务,但是灰度放量和灰度服务是不同的,灰度放量可以独立使用,而不用依赖于灰度发布,比如新功能上线后(全量发布),想根据店铺进行灰度放量,那就可以配置店铺白名单,在白名单店铺中的单子进入应用后才会走新功能逻辑,不在

白名单店铺的单子不走新功能逻辑。

4

维度

按照实现方式和面向使用者的不同,灰度又可以分为技术灰度和产品灰度。

  • 技术灰度

技术灰度,是灰度的实现以及灰度逻辑控制都是由研发人员通过代码来控制,我们目前很多场景中的灰度使用其实都是技术灰度,比如按照店铺粒度和用户粒度灰度,都是通过研发人员提供白名单配置来实现,所有的操作主动权都掌握在研发人员手中,就算实现了配置中心的动态配置,但也是研发人员操作的。

  • 产品灰度

所谓产品灰度,其实就是将灰度配置能力透出给运营管理人员,也就是将灰度开发成一种向运营管理人员开放的功能,运营管理人员可以人工配置灰度规则,比如配置灰度某个店铺,灰度某些用户,灰度多少占比的流量等等。

5

灰度策略

灰度策略是指灰度场景不同的实现方式,常用的有:

  • 店铺灰度;只有在白名单中的店铺才会走新的逻辑
  • 用户灰度;只有在白名单中的用户才走新的逻辑
  • 金额灰度;比如只有金额小于指定值的案例才能走新的策略

总结

灰度是产品迭代过程中的一种版本切换方案,能够实现旧版本向新版本平滑过渡,能够及早获取用户的反馈,提升产品质量,降低产品升级所影响的用户范围。

0 人点赞