在阿里工作之前,并没有了解过灰度能力,直到接触到了敏捷开发,灰度能力对快速地产品迭代及其重要
灰度能力
灰度(Gray Scale)是一种流量分配策略,对于新发布的功能、代码,将流量从少到多逐步平滑的分配到新的产品功能、代码逻辑中;不仅是软件开发的重要能力,更是产品、运营的重要手段。
灰度的目的大致有2种:
- 风险可控;
- 功能验证;
灰度的方式我这里也大致分为2种:
- 机器灰度(物理灰度):确保发布、系统的稳定性;
- 代码灰度(逻辑灰度):确保业务功能、代码逻辑的稳定性;
灰度目的
- 降低风险以及保障业务连续性
首先是降低技术变更带来的风险;你永远无法保证上线的新代码不会出问题,甚至某些情况下无法确定风险影响范围。 灰度能力可以确保新的代码逻辑先由小部分的流量进行验证,降低可能带来的风险影响范围。 其次是业务风险,新的业务功能、商业模式,可能带来潜在的用户体验风险,灰度能力同样可以将这些风险控制在较低的水平,以此来逐步验证。 因此,灰度让产品的迭代可以平滑过度的同时,也能确保当潜在的风险发生时,以最快的实现回滚。
- 优化用户体验
依据特定的流量标识进行灰度,可以使得更具有代表性的用户来反映出新的业务功能的有效性,同时能更精准地收集到符合用户需求的反馈,从而更好的制定产品的下一步策略,更好的提升用户体验。
- 提升运营效率
灰度能力对流量的分配,也就意味着对资源的合理分配。 比如说特定的产品广告、推广,可以依赖灰度来完成更精准的分配。
灰度能力的实现
灰度可以是物理灰度,也可以是逻辑灰度。
- 物理灰度:根据Server节点进行灰度,新版本的代码或功能优先部署在部分节点上;
- 逻辑灰度:根据特定的逻辑判断,来将流量分配到不同的功能或代码上,能够更精准的控制流量;
放量策略:
- 百分比放量:直接按照流量的大小,进行百分比逐步放量;
- 依据特定的流量标识放量:依据产品的特性,按照特定的划分逻辑进行放量;
- 渠道;
- 人群;
- 用户;
1. 物理灰度(机器灰度)
2. 逻辑灰度(代码灰度)
百分比灰度;