首页 > 其他分享 >讨论:关于轻量化的灰度发布方案

讨论:关于轻量化的灰度发布方案

时间:2023-02-01 12:03:15浏览次数:35  
标签:讨论 上线 TestFlight App 用户 轻量化 发布 灰度

什么是灰度?

要想了解这个问题就要先明白什么是灰度。灰度从字面意思理解就是存在于黑与白之间的一个平滑过渡的区域,所以说对于互联网产品来说,上线和未上线就是黑与白之分,而实现未上线功能平稳过渡的一种方式就叫做灰度发布。

灰度发布又叫金丝雀发布,起源是,矿井工人发现,金丝雀对瓦斯气体很敏感,矿工会在下井之前,先放一只金丝雀到井中,如果金丝雀不叫了,就代表瓦斯浓度高。

讨论:关于轻量化的灰度发布方案_灰度

灰度发布和 AB Test 的区别

和大部分人一样,我个人之前对灰度发布和 AB Test 存在一定的混淆,认为就是换了一种说法,但实际调研发现两者之间存在着本质上的区别。

1、AB Test

AB测试一般由产品经理和运营来主导。它是把两种功能,或者两个版本,交给相同的用户来使用,看用户喜欢哪种功能。

要点是,AB的两种功能都是可用的, 投放的用户群体无差别,让用户选择更受欢迎的功能,后期可能是A上线,也可能是B上线。

讨论:关于轻量化的灰度发布方案_自定义_02

2、灰度发布

灰度测试一般由研发,测试或运维来主导。它是把系统的新版本,或者说新功能,以部分上线的方法来上线,验证新版本是否足够可靠。

关键要点是,灰度版本未必是可用的,或者说没有严重bug的,投放的客户群体可能只是北上广深等一线城市的用户,由监控确定是否有问题,后续可能会继续放量上线。


讨论:关于轻量化的灰度发布方案_App_03

灰度发布的优势

1、提前获得使用反馈,缩减风险影响范围

因为灰度发布可以通过地域、性别、用户等级、使用客户端等一系列的策略条件对目标用户群进行筛选,所以可以保证验证版本影响的用户在最小可接受的范围内。此外,基于验证版本提前收集用户使用意见,及时完善产品功能,并且根据用户和监控的反馈结果,做到查漏补缺,对于过程中发现的重大问题,甚至可以及时的回滚至“旧版本”。

2、自定义规则引擎,精准控制内容投放

此外灰度发布可以作为一个自定义的规则引擎,可按地域、人群、时段等自定义标签对 App 模块或者 Web 页面进行内容的精准投放,满足企业产品的精准化投放发布需要。就像是我们业务组负责人提出的需求,把新上线的活动仅投放给北上广深四个一线城市的高等级用户。

灰度发布方案分析

1、TestFlight

对于 iOS 开发者来讲有一个较为方便的灰度测试方案,也是大家使用最多的 —— TestFlight。TestFlight测试工具允许开发者通过邮件等方式邀请用户测试。TestFlight 在被苹果收购之后,和 AppStoreConnect 进行了深入整合,现在,它可以生成一个公开的链接,用户可以直接安装测试。

当用户打开现有版本的 App 后,服务器可以根据当前用户的标签判断是否为灰度用户。如果是的话,需下发TestFlight 的安装链接,App 端引导用户进入TestFlight 安装。

但 TestFlight 也有一定的不足:

  • 用户必须安装 TestFlight ;
  • 有效测试时间为60天,在有效期结束之前需引导用户更新正式版本;
  • 测试用户可以达到最多10000。

2、功能小程序化

第二种对于很多开发者来讲可能比较陌生,起因是因为公司的 App 较为臃肿,迭代发版非常麻烦,希望功能模块互相解耦实现模块化开发,各业务模块间互不影响,所以计划集成 FinClip SDK ,让整个 App 具备小程序的运行能力,继而把 App 之前的业务功能都小程序化,通过管理后台去实现动态更新与发布。

刚好在进行技术体验时发现,FinClip 的小程序是借助部署的 FinClip 管理后台实现上下架,上下架的同时可以进行上架规则的制定。这样一来,相当于有了一个自定义的灰度发布引擎去自由配置地域、性别、用户等级等自定义条件,不需要编写任何复杂的应用逻辑代码,完成上下架的同时就完成了精准的上线发布。

相对于 TestFlight ,这种方式的优势在于:

  • 不仅可以用在iOS系统中,Android 和桌面端应用也能集成 FinClip SDK ,相当于灰度测试覆盖的范围更加广;
  • 自身的迭代升级,不会影响到宿主 App 运行的稳定性,也无需对 App 进行全回归测试;
  • 小程序业务功能开发可以高度并行;
  • 灰度发布粒度更细致(例如一个小程序是可以仅在测试白名单的范围内试点)。

由于本次调研的范围和时间有限,所以我认为较好用的轻量化灰度发布方案就暂时罗列这两类,当然方案有千千万,选择自己合适的就好。


标签:讨论,上线,TestFlight,App,用户,轻量化,发布,灰度
From: https://blog.51cto.com/u_15904909/6031180

相关文章

  • SAP UI5 应用的标准 Theme 和自定义 Theme 的加载讨论
    SAPUI5应用的初始主题可以硬编码在应用程序中(在加载SAPUI5的引导程序的脚本标签中)或在加载SAPUI5之前定义的JS配置对象中,例如下面的例子:<scriptid="sap-ui-boots......
  • 《安富莱嵌入式周报》第301期:ThreadX老大离开微软推出PX5 RTOS第5代系统,支持回流焊的
    往期周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104祝大家开工大吉视频版:https://www.bilibili.com/video/BV1GT411o......
  • 左正则代数模的不可约直和分解的讨论证明
    丘老师的精彩讲解: 有限性代数的不可约左模(十六)_哔哩哔哩_bilibili  有限性代数的不可约左模(十七)_哔哩哔哩_bilibili这个内容主要看丘维声的《群表示论》2.2节,主定理的......
  • WC2023(授课与讨论4)
    PO-Final2022三角形演讲(1)排序后,显然每一组是一个区间,设分别为\([1,x],(x,y]\)和\((y,n]\)枚举\(y\)并对前两段分类讨论,限制即\(\begin{cases}a_{x}\len-y\\a_{y}\le......
  • WC2023(授课与讨论2)
    HammertoFall(1)定义\(f_{i,j}\)表示\([i,q]\)天中点\(j\)的答案,则\(f_{i,j}=\begin{cases}f_{i+1,j}&j\neb_{i}\\\min_{(j,k)\inE}(f_{i+1,k}+w_{(j,k)})&j=b_{i}\en......
  • 数据库系统(上)——模型与语言 讨论答案
    课程里面讨论的问题都特别有趣,第一章是明确为什么需要学习数据库,为什么学习数据库,学习数据库哪些东西,然后是每章的重要知识点,用于巩固学到的知识,有一个有趣的现象,当你很认......
  • 基于深度学习的轻量化姿态检测模型设计-原
    基于深度学习的轻量化姿态检测模型设计摘要:随着深度神经网络和智能移动设备的快速发展,单目人体姿态检测的技术门槛逐步降低,网络结构轻量化设计逐渐成为前沿且热门的研......
  • 【QOJ 4273】Good Game(分类讨论)(构造)
    GoodGame题目链接:QOJ4273题目大意给你一个01串,每次可以删一个长度为2/3的全0子串或者全1子串。要你构造一种方法把串删空,或者输出无解。思路首先发现这个......
  • Istio 灰度发布
    金丝雀发布也被称为灰度发布,实际上就是将少量的生产流量路由到线上服务的新版本中,以验证新版本的准确性和稳定性。Istio和Kubernetes实现金丝雀发布的方式不太一样,Istio......
  • 每天一点基础K8S--使用基础ingress进行灰度发布
    利用ingress实现灰度发布1、背景ingress可以实现七层负载,可以根据请求header不同将流量代理到后端不同的service服务。比如:后端网站进行了更新,为了不全网更换,可以利用i......