vivo智能活动中台-悟空系统建设之路
如果无法正常显示,请先停止浏览器的去广告插件。
1. vivo 智能活动平台
悟空系统建设之路
冯伟
姜野
vivo 互联网用户运营前端专家
vivo 互联网用户运营服务器专家
2. 01
悟空系统
介绍
3. 悟空系统介绍-让活动更简单,更有效
4. 悟空系统介绍-覆盖vivo全业务
全业务可复用
悟空公共组件
业务自研组件
5. 悟空系统前台设计
技术挑战以及架构设计
01 02 03 04
组件开发
可插拔开发套件介绍 界面组装
活动设计器渲染方案 代码生成
静态页面发布方案 建站智能化方向探索
6. C端活动页面整体生产流程
组件开发
SaaS
界面组装
代码生成
PaaS
数据协议
图片 视频 商城 视觉规范 目标下载
文本 抽奖 游戏 埋点方案 依赖安装
领券 集卡 广告
工具支撑
活动编译
沙箱
画布
通信
资源压缩
开发IDE
机房发布
管理平台
存储服务
数据总线
预览
远程调试
oss备份
活动页面
7. 01 组件开发-可插拔开发套件
开发工具
VSCode Extension
服务托管
NPM Server
权限管理
Open Platform
组件开发 组件发布鉴权 组件关联数据
组件打包 组件包存储 组件权限管控
组件发布 推送更新 组件发布记录
Verdaccioss Server
组件存储至OSS
方案特点
可插拔
托管稳定
高效协作
8. 01 组件开发-可插拔开发套件
VSCode Extension
开发脚手架服务
一键初始化组件代码
组件打包
组件发布
开放文档
9. 02 界面组装-活动设计器渲染方案
IFrame
活动预览区特点
跨域隔离
灵活嵌套
异步精确加载
10. 02 界面组装-活动设计器渲染方案
unirender postMessage
postMessage渲染方案
unirender配置区渲染方案
传递数据:事件形式透传
合并数据:触发响应式
更新数据:全量赋值
数据零拷贝
剔除70%通信代码
内存消耗降低
50%-70%
渲染配置面板
vuex获取共享配置
11. 02 界面组装-活动设计器渲染方案
设计思路
Vue
store
代码实现
重置option&挂载
实例化
配置页
sandboxVue
store
实例化
共享
watcher.deps&store
预览页
渲染子,
传入vue和store
定义加载方式
加载
使用父传入的vue
和store渲染
12. 03 代码生成-静态页面发布方案
实时操作复杂度高
01
问题
公共依赖:dll方式 性能消耗
活动依赖:yarn包
工程资源:vue-cli 消耗计算和内存资源,高峰期响应慢、内存溢出
02
问题
服务保持
服务维护受单机限制 服务更新需停机,期间不可用
服务更新依托平台 扩展性差
占据大量计算资源
难以新增机器,存在浪费计算资源
解决方案
应用拆分
微服务调度
13. 03 代码生成-静态页面发布方案
web-front-end
(/wukongplatform/site/publish)
架构特点
site_id
wukong-Java
轻量化
高性能
publish_res
site_info
vivo-zookeeper
wukong-Node
beehive-registry
注册中心
site_info
编译打包
Node-
service
site_info
wukong-Node
publish_info
Node-service
BeehiveCompile-Node
site_info
beehive-consumer
服务调用
publish_info
WS
(BeehivePublish.beehivePublish)
beehive-service
服务提供
CDN
Aliyun-OSS
编译
打包
publish_info
publish_info
site_zip
site_info
upload_res
vivo-FTP
服务观察页
可观察
14. 04 智能化探索-活动页转换技术
三方页面
悟空页面
面临挑战
保留框架和内容
转换
提取点击交互区
插入自定义内容
15. 04 智能化探索-活动页转换技术
1.安全合规校验
2.自定义脚本动态插入
3.OCR解析素材交互事件
4.交互事件绑定行为
H5 URL
输入
5.合成落地页要素
通过后台浏览器,预置规则
进行页面脚本和数据处理 OCR识别&特征提取 输出
初始化活动信息 通过浏览器渲染后的
Elements元素扫描,以及素
材OCR,实现页面二次合成 悟空 URL
1.归集 活动配置
2.初始化活动id和基础配置
3.启动无头浏览器
4.补齐落地页脚本路径
16. 04 智能化探索-自然语言快速创建活动
AI文本
&图片
情景
预置
标准化
语义输出
内容理解+
模板优选
效果演示
17. 悟空系统中台设计
技术挑战与实践
01 02 03
悟空系统
中台架构 灵活高效的
中台设计 复杂活动的
高效支撑
18. 悟空系统中台架构
触
达
广告投放
短信
Push
活动营销
H5建站
工
具
服
务
配
置
活
动
中
台
开
发
者
控
制
社交裂变
极简建站
人群分流
营销工具
程序化
页面监控
风控
素材中心 工具箱 营销市场
内容组件 营销组件 互动组件 大转盘 砸金蛋 表单 咨询 图片 URL管理 模板市场
图片 应用下载 答题 九宫格 抓娃娃 电话 卡券 视频 程序化站点 组件市场
文本 在线表单 签到 裂变 投票 加粉 抽奖 音频 页面检测 活动市场
热区 微信加粉 抽奖 现场活动 … 签到 … 公共素材库 图片工具 营销学院
通用配置
个性化配置
玩法配置
玩法中心
前置条件
原子组件
任务中心
权
限
管
理
…
奖品中心
通用配置 通用配置 通用配置 任务池 任务上架 任务模板 奖品池 奖品发放 奖励补偿
地域限制 次数限制 … 任务列表 自定义任务 … 奖品库存 自定义奖品 …
组件开发 开放奖励 统一指令 playmaker
组件测试 开放任务 统一API …
数
据
中
心
转化分析 实时数据 访客分析 留存分析
组件分析 页面热力 A/B测试 来源分析
19. 灵活高效的中台设计-BCA模型
BCA
B
+
Behavior
C
Condition
竞猜
答对N道题
收藏
浏览
+
送活动次数
送特定奖品
集卡
分享
Action
评论获赞N次
答题
评论
A
集齐卡片
送虚拟资产
分享指定活动
送抽奖机会
浏览特定页面
发送短信通知
收藏商品
下载
下载特定应用
20. 灵活高效的中台设计-BCA模型引擎
BCA模型
模型引擎
Condition & Action Group l
behavior 1
condition
action
action limit
Behavior happened
模型引擎伪代码
执行入口
Condition校验
加载
Condition & Action
group
Condition & Action Group 2
behavior 2
condition
action
action limit
Condition
校验通过
Action Limi
校验通过
Condition & Action Group n
behavior n
condition
action
action limit
执行Action
执行Action
21. 灵活高效的中台设计-业务的高效接入
下载游戏、打开游戏、V钻消费
游戏中心
抽奖
大富翁
开宝箱
…
游戏礼券、游戏道具
自定义任务
加购物车、支付订单、完成评价
自定义奖品
官方商城
集卡
商城优惠券
下载游戏 下载王者荣耀 V钻消费 V钻消费>=500 听歌 听周杰伦的歌 听歌超过10s
支付订单 商品为手机 商品位配件
… …
听歌、听书、收藏、点赞
i音乐
7天VIP体验卡
发放游戏礼券
发放商城优惠券
发放7天VIP体验卡
22. 灵活高效的中台设计-自定义任务
悟空系统
behavior 1
行为参数定义
发
送
消
查找任务定义
息
condition行为表达式
behavior 2
自定义任务
topic
发送消息
发
查找任务配置
{" expression": "long(time)>=long(timeConfigValue) ", "type ":“1"}
息
消
送
消费消息
{
"user":
"openId":"xxx"
}
" oper":{
"key":"viewvedio",l∥自定义任务唯一标识
"prop":{
"time":15/∥行为参数值
}
behavior n
}
Aviator
规则引擎计算
Condition
表达式结课
Ture
执行Action
False
结束
23. 灵活高效的中台设计-自定义奖品
Action执行(自定义奖品发放)
发放
21 # vivoplus-shop-coupon
自定义奖品前缀
use com.vivo.Doraemon.serializer.JacksOn;
XXX
return paramList;
dubbo接口泛化调用 {
"path":"com.vivo.xxx.XXXFacade“,
"group":"
"version":"1.0.0",
"method":"receiveCouponCommon",
"paramType":"com.vivo.xxx.facade.dto.request
XXXReq“
}
aviator脚本出参解析 use com.vivo.internet.xxx.utils.DateUtils;
let reponseDTO = seq.map();
XXX
return reponseDTO;
自定义奖品唯一标识
自定义奖品
流水号
aviator脚本构造入参
奖品信息
发奖来源
Action上下文
用户信息
24. 复杂活动的高效支撑-组合活动
抽奖活动A 抽奖活动B
用户抽奖机会 A 用户抽奖机会 B
抽奖活动A
抽奖活动B
组合活动C
奖池 A
奖池 B
奖池 A
用户抽奖机会 C
中奖轮播信息 C
中奖轮播信息 A
中奖轮播信息 B
奖池 B
25. 复杂活动的高效支撑-playmaker玩法编辑器
业务场景
签到送福气
涉及活动及依赖关系
签到
活动A
福气值达到20可以解锁
新年签
新年签解锁后可以抽奖
大型新春活动
依赖
资产
活动B
依赖
解锁
活动C
依赖
抽奖
活动D
26. 复杂活动的高效支撑-playmaker玩法编辑器
STEP2
集中式配置
加载playmaker
活动定义
活动初始化
仅生成活动D
注入依赖活动
Ready
STEP1
低代码技术拖拽活动、描绘依赖关系
画图开源项目:jsPlumb
STEP3
创建活动
创建所有子活动并完成依赖关系绑定
参考Sring Bean初始化过程
27. 04
总结和展望
28. 总结和展望
悟空是可视化、组件化、一站式
的综合运营平台,聚焦让活动更
简单,更有效
悟空在自然语言建站方面
取得了阶段性进展
BCA模型,让活动更灵活高效
Playmaker,让复杂活动变得简单
更多AI场景的探索与落地
总结
后续
规划
完善电商能力
面向社会的开放平台
让更多开发者受益
29. Thanks