暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

规则引擎——快速打造你的精细化运营平台

乐信技术精英社 2020-05-07
2096

作者 | donaldhuang

审编 | groveshi

导读

精细化运营平台在当下已经是业务开展的一项基础支持了,但建设一套高可用、高并发、低时延、可扩展的系统要投入的成本也令人生畏。然而,在乐信这就是接近0成本的工作,因为我们有“规则引擎”。

一、项目简介

什么是规则引擎?

  • 底层基于avitor引擎实现,可毫秒级执行,在规则复杂度上升的情况下,性能无明显损耗; 

  • 管理界面可视化,支持运营人员按照既定语法灵活编写规则或者基于图形化界面编辑规则,发版无需开发参与; 

  • 有一套严格的测试流程保障规则发布质量,支持灰度和AB test,让规则可快速试验并迭代; 

  • 同时,为接入业务提供高可用、高并发、低延时的系统能力,以及实时数据报表和监控能力,及时跟进运营效果和发现异常。

二、项目背景

  1. 五花八门的运营类诉求,各业务研发团队重复实现规则配置系统

    一个典型的应用场景,比如乐卡app在活动推广时经常遭遇羊毛党干扰的问题,导致运营投入不能有效让利于正常用户。在接入规则引擎后,在一周内有效解决了羊毛党问题,每日拦截500~5000+羊毛党 。并且基于规则引擎提供的AB test能力,可以灵活调整运营策略,有效跟踪运营效果。


  2. 随着运营对实时性的要求越来越高,研发成本越来越高。

    【案例1】运营诉求的计算逻辑复杂,关联多个数据源表,大部分基于etl任务t+1计算,没有通用的实时计算解决方案


    【案例2】业务做用户精准运营,现有的运营系统难以达到业务对实时性的要求

    只要接入规则引擎,以上问题通通不存在!!!

三、项目目的

  1. 建设高可用、高并发、低时延、可扩展的 精细化运营平台 。为公司业务提供通用的决策能力,提高产品运营效率,避免研发资源重复投入;

  2. 抽象出公司业务的计算模型,能够支撑每天 百亿级 的在线请求;

四、已实现的功能

  1. 字段平台提供了强大的计算能力,包含10000+个特征变量。并开放给业务,支持业务快速上线新特征;

  2. 字段平台支持降级,当出现系统瓶颈时,可针对业务指定特征变量进行降级,提供有损服务

  3. 规则引擎提供毫秒级决策能力,95%以上决策在100ms内完成,目前线上每天1亿+决策请求,30亿+字段计算请求;

  4. 可视化规则编辑与管理,发版无需开发参与;

  5. 支持灰度和AB test,让规则可快速试验并迭代,准确评估规则变更影响范围;

  6. 提供实时数据报表和监控能力,及时跟进运营效果和发现异常;

五、Roadmap

  1. 【新增功能】规则引擎门户建设,体系化管理接入业务,接入时分配权限、容量,配置隔离策略等(开发中)

  2. 【性能优化】规则引擎缓存建设,针对不同业务决策结果可以设置缓存策略,提升规则引擎容量(已完成

  3. 【降级】规则引擎支持降级,当出现系统瓶颈时,可针对业务进行降级,提供有损服务(已完成

  4. 【性能优化】字段管理平台通用缓存层扩展,抽象出通用的计算模型

  5. 【功能优化】流水服务扩展,支持不同业务流水分级存储,丰富运营报表

  6. 【新增功能】融合推荐系统,为业务运营提供更多可能性(已完成

六、技术方案

  1. 竞品对比



  2. 压测报告



  3. 实现原理  
    规则引擎底层使用aviator表达式引擎,可以支持3层以上的多级逻辑嵌套。一方面,aviator是java开源项目,与分期乐后端技术栈完美结合,非常方便新增自定义函数,扩展规则功能;另一方面,使用aviator框架的AviatorEvaluator执行器,支持缓存模式,在规则变更时对表达式进行缓存,规则执行时无需重复编译,大幅提升执行效率,提供了稳定的性能保障,耗时在1~2ms之间


  4. 项目工程

    • server_ruleengine_operation_access

      【精细化运营服务接入层】  

    • server_ruleengine_decision

      【核心决策服务】  

    • server_ruleengine_data

      【决策流水服务】  

    • server_ruleengine_manage

      【规则引擎管理端】  

    • server_ruleengine_task

      【规则引擎测试服务服务】  

    • server_af_field_business_proxy

      【计算代理proxy】


  5. 整体架构  

    • 所有服务节点支持分布式部署,可平行扩展;

    • 接入层按照授信、交易、运营业务物理隔离,并且在接入层支持资源隔离,针对不同优先级业务在接入时分配不同线程池资源;

    • 规则引擎提供通用的决策能力,可以针对不同业务场景配置是否缓存决策结果,以及缓存有效期,根据业务实时性自定义,有效提升访问性能和容量;规则引擎支持降级,可以指定业务场景提供有损服务;

    • 字段平台提供通用的实时计算能力,可以根据不同的底层数据更新频率,设置对应的字段缓存更新机制,比如对实时性要求一般时,可以在洞穿缓存时异步更新缓存;对实时性有一定要求的,可以基于自定义MQ消息触发异步更新缓存,默认基于用户启动app时触发更新动作;对实时性要求较高,需要定制化缓存更新策略;字段平台支持降级,可以指定业务场景提供有损服务


  6. 入流程

七、项目里程碑

  1. 规则引擎门户体验优化,精简业务接入流程,体验优化;支持接入时设置隔离策略【预计5月中旬发布】

  2. 规则引擎缓存建设,针对不同业务决策结果可以设置缓存策略,提升规则引擎容量【2020.02.20发布】

  3. 规则引擎门户建设【2020.01.14发布】

  4. 字段平台门户建设【2019.12.31发布】

  5. 大数据画像能力接入字段平台(支持画像标签实时调用)【2019.12.31发布】

八、QA

  1. 规则引擎接入门户:

    https://rtd.oa.fenqile.com/?#/decision/index

  2. 字段接入门户:

    https://rtd.oa.fenqile.com/#/joinCenter/index

  3. 规则引擎接入说明:

    http://wiki.fenqile.com/pages/viewpage.action?pageId=37287675

  4. 规则编辑指南:

    http://wiki.fenqile.com/pages/viewpage.action?pageId=25486550

  5. 字段接入说明:

    http://wiki.fenqile.com/pages/viewpage.action?pageId=37279157

九、已接入业务方(仅选取了部分具有代表性的业务)

接入业务支撑平台效果
推荐系统字段平台使用实时画像标签,接口耗时5ms,避免了原有画像系统直接读hbase的抖动,提高了获取数据的实时性
财富入池服务字段平台接口耗时4ms,日均拦截金额10W+ ,拦截金额占比2%
OPPO准入规则字段平台接入字段平台-新增黑名单校验,目前拦截5人,拦截率1%
乐享卡1元购资格运营规则引擎乐享卡1元购71%用户可见1元购页面,下单转化率6.5%,开通转化率79%
乐卡通用安全规则规则引擎每天拦截5000+脚本刷单请求,接口耗时5ms


十、负责人

  1. 整体负责人:groveshi

  2. 产品负责人:answerdong  

  3. 开发负责人:donaldhuang

十一、贡献人

  1. hillhe

  2. pasonke

  3. jasonhu

  4. promisecai

  5. vincentzeng

  6. markliu

  7. okaiou

十二、规则引擎公司运营群

- 有兴趣的同学可以联系groveshi/donaldhuang加群【精细化在线运营平台】【电商对接规则引擎专属群】【乐卡对接规则引擎专属群】

复制

最后,我们非常欢迎各位技术同学阅读设计方案和源码,踊跃给予意见!对于优秀的建议,我们会优先考虑在项目中予以实现,也希望通过这个项目能够真正切实解决业务运营的痛点,为业务创造更多价值!!!


end


文章转载自乐信技术精英社,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论