规避三方工具带给产品的潜在风险

风险与需求

我们通常会引入三方平台工具或插件,帮助自身产品提供更好的客户体验,比如数据分析工具、用户引导、客户成功工具等。为此,通常需要把三方工具 SDK 集成到项目中,但这类 SDK 会对网站应用做 DOM 操作,存在使产品无法正常运行的风险,如:

  1. 某些用户的浏览器环境下,三方 SDK 使产品不能正常运行
  2. 三方平台进行了错误的更新,导致产品部分功能瘫痪
  3. 海外的三方插件,网络不稳定或有法律风险

一旦发生风险可能会造成不可避免的经济损失。

解决方案

通过敏捷开关(featureflag.co)提供的 Feature flag 在生产环境渐进式发布与回滚三方工具的功能特性。如下图所示,当 Feature flag 返回值为 true 时,则执行三方工具初始化代码,否则不执行(假设三方工具不被初始化,就不会被执行)。暂时无法在飞书文档外展示此内容

代码集成

如下为码示例。在第二行代码中,使用敏捷开关的 SDK 获取 Feature flag "三方插件工具"的返回值,如果为 true,则初始化三方工具,否则什么都不做。

if (ffcService.flags['三方插件工具'] === true) { 
    thirdTool.init('{key}', { id: auth.id }); 
}

渐进式发布

为了避免风险,我们采用如下的发布机制:

  • 第一步,上线后不对任何用户开放
  • 第二步,在生产环境对内测团队开放
  • 第三步,发布给10%的公众用户
  • 第四步,发布给30%的公众用户
  • 第五步,发布给100%的公众用户

第一步,在集成了三方插件工具的新版产品上线时,在敏捷开关后台设置 Feature flag "三方插件工具"返回值为 false,使产品不对任何用户开放。

544eb05db698a4aa4e5bc1ed17ecd957.jpeg

第二步,在 Feature flag 的"自定义规则"中引入内部测试团队,即三方工具只对内测人员开放。如下图所示,在"目标用户"和"自定义规则"区域,分别设置 Feature flag 对内测成员返回 true :

  1. 在"目标用户"模块的 true 返回值下添加会参与内测的目标用户。
  2. 在"自定义规则"模块中,建立一个对“开发组”和“内测团队”用户组返回 true 的规则。

39f8ea3fee9be9835645434a756b472a.jpeg

三步,如果在内测过程中出现问题,则可以反馈给第三方团队等他们的 BUG 修复。如果三方工具在内测环节表现良好,则可以开始向公众用户进行渐进式发布。如下图所示,将默认返回值按百分比设置,给 10% 的用户返回 true, 90% 的用户返回 false。

8e47b5d218ca59d1f34660a5a7edfc8a.jpeg

如果有 BUG 出现则可以将返回值设置为 100% false,0% true 的方式实现秒级回滚。如果可以精准的知道是哪些用户有BUG,则可以通过"自定义规则"针对具体用户进行回滚。第四步,如果第三步没有任何异常,则可以扩大用户的发布百分比,将默认返回值百分比设置为 30% 的用户返回 true, 70% 的用户返回 false。如果出现 BUG,可以按照第三步所描述的方式进行回滚。第五步,如果第四步没有任何异常,则可以扩大用户的发布百分比,将默认返回值百分比设置为 100% 的用户返回 true, 0% 的用户返回 false。如果出现 BUG,可以按照第三步所描述的方式进行回滚。

261a3e45920a5775f43459d93bec9d99.jpeg

总结

通过使用 Feature flag 控制三方工具,大幅度降低了其发布上线的风险。即使在未来的使用中因为三方工具的更新产生了BUG,我们也可以通过敏捷开关的后台快速的回滚下线三方工具,保障产品的整体稳定性,降低风险。同样,这种操作可以适用于大多数新功能发布、功能更新的场景。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值