美文网首页
简单的前端灰度发布方案

简单的前端灰度发布方案

作者: Lee拔山兮 | 来源:发表于2021-03-13 19:24 被阅读0次

基本概念

灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。

实现思路

灰度发布的核心就是分流,一部分用户能看到,一部分用户看不到。所以主要实现的核心分流算法。在实现这个需求的时候,我想到了抽签。比如在1-100的数字中抽到1-30的用户进入beta版本,抽到31-100的用户进入stable版本。这样就相当于是30%的流量进入灰度版本。

具体实现

首先实现产生1-100的整数的随机函数。

/***************************************
 * 生成从minNum到maxNum的随机数。
 * 如果指定decimalNum个数,则生成指定小数位数的随机数
 * 如果不指定任何参数,则生成0-1之间的随机数。
 *
 * @minNum:[数据类型是Integer]生成的随机数的最小值(minNum和maxNum可以调换位置)
 * @maxNum:[数据类型是Integer]生成的随机数的最大值
 * @decimalNum:[数据类型是Integer]如果生成的是带有小数的随机数,则指定随机数的小数点后的位数
 *
 ****************************************/
function randomNum(maxNum, minNum, decimalNum) {
    var max = 0,
        min = 0;
    minNum <= maxNum ? ((min = minNum), (max = maxNum)) : ((min = maxNum), (max = minNum));
    switch (arguments.length) {
        case 1:
            return Math.floor(Math.random() * (max + 1));
        case 2:
            return Math.floor(Math.random() * (max - min + 1) + min);
        case 3:
            return (Math.random() * (max - min) + min).toFixed(decimalNum);
        default:
            return Math.random();
    }
}

然后实现灰度流量的判断

/**
 * @description 灰度显示
 * @param {Number} defaultLucky 灰度值,取值范围[0,1]
 * @returns {Boolean} ture/false
 */
export function isShowGray(defaultLucky) {
    if (!lucky) lucky = defaultLucky;
    var num = randomNum(1, 100);
    if (num <= Number(100 * lucky) && num >= 1) {
        return true;
    }
    return false;
}

总结

至此,简单的灰度方案就做好了。在进入页面时先调用isShowGray函数判断进入哪个方案。这样就可以做到简单的用户分流。

相关文章

  • 简单的前端灰度发布方案

    基本概念 灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testi...

  • 前端如何实现灰度发布

    前端进行灰度发布,首先需要为用户打上灰度标签和放量策略。 方案1:不同实例上部署不同的应用版本,根据nginx中的...

  • 灰度发布01-效果与方案分析

    一、灰度发布期待的效果分析 1.1 灰度发布前 灰度发布前,系统处于正常使用状态,用户在浏览器输入地址访问前端H5...

  • 灰度发布方案

    前提: 看过 我的consul,consul-template,nginx,springBoot,搭建动态负载的集...

  • 灰度发布方案

    灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让...

  • 灰度发布

    灰度发布:灰度很简单,发布很复杂 - 程序人生的博客 - CSDN博客 灰度发布常见一般有三种方式 - 蒋大帅-蒋...

  • 灰度发布方案选型

    上文中,由于初次接触灰度发布,关于这一概念的践行还有很多不了解的地方,因此标题为“灰度发布用户选取”。后来在进一步...

  • 目前技术缺陷

    dubbo接口测试方案?【急】【jmeter测试】 简单灰度上线方案?【急】【运维walle】 简单的业务监控方案...

  • 我们的灰度发布方案

    1 背景与解决思路 做灰度发布,主要有两个大的方向 在代码中做。一套线上环境,代码中做开关,对于不同的用户走不同的...

  • 灰度发布用户选取

    近日接触的项目涉及到“灰度发布”的概念,这是第一次接触灰度发布,因此对灰度发布用户选取的方式十分好奇。“灰度发布(...

网友评论

      本文标题:简单的前端灰度发布方案

      本文链接:https://www.haomeiwen.com/subject/ppoxcltx.html