美团外卖广告引擎平台化实践

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 美团外卖广告平台化实践 林乐彬
2.
3. 林乐彬 2016年加入美团,目前是美团外卖广告引擎架构负责人 曾前后任职腾讯,百度,有多年互联网广告相关经验
4. • 美团外卖广告平台化实践 • 背景 • 架构解读 • 成果展示 • 总结
5. 外卖广告业务介绍-业务场景 • 列表广告 • 展示广告 • 搜索广告 • 创新广告
6. 外卖广告业务介绍-检索流程 典型的召回漏斗 广告检索链路 PV 召回 触发 商家端 LBS 召回 广告物料传输 粗排 向量化 召回 精排 在线预估 创意 优选 机制
7. 现状分析 • 业务逻辑复用度低: 广告业务逻辑复杂,开发人员较多,导致业务逻辑抽象力度标准不够统一 • 学习成本高: 代码复杂,新同学熟悉代码成本较高,上手较难。线上模块数量有20+,框架差异较大,导致跨模块 开发难,人员效率没有充分利用。 • PM信息获取难: 业务线多,逻辑复杂,最复杂模块的代码行数有13w+,需求PRD设计,获取信息难 • QA测试评估难: 评估测试范围主要依赖PM以及RD的描述,容易出现漏测的现象。
8. 业务目标 提升产研效率 •  提高功能复用度,提升开发效率。  降低协作成本,提升产研协作效率。 对业务进行赋能 •  PM可通过可视化的平台化页面,了解其他产品线的能力,赋能产品迭代
9. • 架构解读 • 架构思考 • 具体实现
10. 架构思考-整体思想 • 标准化  逻辑梳理,标准化改造,提供复用基础 • 框架 能力的承载,调度,透出 • 产研新流程  产研运行机制,持续性保证 列表 展示 搜索 营销 创新 ... 服务模块 触发 召回 一站式 中控 机制 ...  产品场景 框 架 标准化 服务 调度引擎 逻辑功能 能力透出 承载 数据协议 检索流程 产研新流程 QA PM 运行机制 组件层 工具包 RD
11. 标准化-思想 逻辑 • 检索过程抽象 功能 在不同流程下面,用不同的功能集合, 标准化 通过不同的数据,获取广告的过程 数据 流程
12. 标准化-逻辑功能 流量 统一 入口 业务线 • 业务逻辑   双层颗粒度(Stage-Action) 3级复用度细分 context传递 预处理 召回定向  组件和工具包 预估 物料组装 排序计价 列表 营销 展示 . . . 24业务场景 压测流量过滤 召回广告 数据封装 获取poi物料 商家队列排序 版本控制 召回结果处理 数据拆包 获取有效模板 计算价格 实验初始化 定向结果召回 结果处理 数据封装 构建结果 ...... ...... ...... ...... ...... action • 无业务逻辑 stage action action action 功能(逻辑颗粒度) 2级颗粒度建设+3级复用度细分 业务逻辑无关 复用与易用的trade off 颗 粒 度 复 用 度 stage 大的阶段的划分 大 action 某个阶段的小的细分 小 场景内 同一场景内部 低 场景间 不同场景之间 无场景 与场景无关 高 组件 功能组合 双层抽象 工具 功能点 action
13. 标准化-数据 • 数据的来源  输入  词表  第三方调用 输入 •统一 content封装上下 文 词表 •统一词表管理 •标准化交互协议 第三方调用 •统一封装 •上层无感知
14. 标准化-调用流程 • 原则  性能优先,无重复调用 • 落地方案  用户维度的数据   统一在初始化后进行封装调用。 商家维度数据   有批量接口使用的数据,在召回后统一 封装调用。 无批量接口使用的数据;在精排截断后 统一封装调用。
15. 架构思考-整体思想 • 标准化  逻辑梳理,标准化改造,提供复用基础 • 框架 能力的承载,调度,透出 • 产研新流程  产研运行机制,持续性保证 列表 展示 搜索 营销 创新 ... 服务模块 触发 召回 一站式 中控 机制 ...  产品场景 框 架 标准化 服务 调度引擎 逻辑功能 能力透出 承载 数据协议 检索流程 产研新流程 QA PM 运行机制 组件层 工具包 RD
16. 平台框架-整体介绍 • web    服务 业务编排 统计监控 业务可视化 • 核心包   调度引擎 元数据采集 • 组件包  业务,策略通用能力沉淀 • 工具包  底层通用基础能力
17. 平台框架-主要模块介绍 • 流程编排下发  全图化流程编排 • 构图  组件和Action的编排配置生成具体的 DAG模板图 • 调度  模块流量请求时,引擎选择正确的 DAG模板图并执行
18. 高性能实践-全图化分析 • 基本原理  定义 action X action Y  inputX​(A , B , C......N) outputY​ ( A , B , C......M ) 满足下列任意条件,则 action X 依赖于 action Y • • inputX ∩ outputY ​̸ = ∅ 即:action X的某个/某些入参是由action Y产出 outputX​ ∩ outputY = ∅ 即:action X与action Y操作相同字段
19. 高性能实践-全图化分析 • 解析模块  通过对字节码分析,解析出每个action的 input、output集合。 • 依赖分析模块   标记的解析法,分析出action之间的依赖 关系 生成的图进行剪枝操作
20. 高性能实践-全图化效果 • 自动纠正人工错误编排   同时操作深层次变量, 并行 ->串行 蓝色部分 • 并最大化编排并行度   无依赖关系, 串行 ->并行 绿色,红色,黄色
21. 高性能实践-调度器 • 分层调度器  针对多串行节点的图推荐使用分层调 度器 • 队列通知调度器  针对多并行节点的图推荐使用队列流 水线调度器。
22. 高性能实践-线程调度调优 • 调度API  同步调用  异步调用 • 调度调优  线程模型调优:同步调用,主线程来 执行最外层的GraphTask  串行节点执行优化:串行结点不切换 线程
23. 高可用实践 • 业务隔离  图的粒度分离进行隔离 • 调度任务隔离  GraphTask,NodeTask 线程池隔离 • 过程监控  异常,超时,统计
24. 平台框架-能力透出 • 编译时能力上报,注解方式   @LppAbility @LppExtension
25. 平台框架-业务层组件 • 统一的公共域和公共依赖  业务实体,内外部依赖 • 统一的接口和流程设计  三个阶段:prepare、process,post。 • 统一的切面能力  日志采集、耗时监控、降级限流
26. 架构思考-整体思想 • 标准化  逻辑梳理,标准化改造,提供复用基础 • 框架 能力的承载,调度,透出 • 产研新流程  产研运行机制,持续性保证 列表 展示 搜索 营销 创新 ... 服务模块 触发 召回 一站式 中控 机制 ...  产品场景 框 架 标准化 服务 调度引擎 逻辑功能 能力透出 承载 数据协议 检索流程 产研新流程 QA PM 运行机制 组件层 工具包 RD
27. 产研新流程-问题分析 • PM  信息获取困难,沟通成本高 • RD   重复开发 排期评估不准 • QA  测试范围评估不准,效率低
28. 产研新流程-方案 思想:stage/action的方式来驱动项目交付 • PM  借助系统业务调研与需求设计 • RD  基于action能力沉淀与复用 • QA  针对采用stage/action统一沟通协作 语言,明确测试范围
29. 平台化-成果展示 业务迭代提效 • 系统能力沉淀  业务基础能力沉淀48个,模块共用能力沉淀 126个,产品线共用能力沉淀323个 • 人效的提升  能力复用比52+%,提效30+% • 接入业务场景  15个业务场景接入 系统可视化(展示业务服务流程)
30. 总结 平台化 = 标准化 核心 + 平台框架 载体 + 产研新流程 机制 • 标准化:逻辑功能,数据,调用流程 • 平台框架:能力上报,流程编排(全图化),调度引擎(分层调度,隔离) • 产研新流程:PM(借助知识沉淀),RD(能力沉淀,复用),QA(确定测试范围)
31.
32.

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.139.0. UTC+08:00, 2024-12-24 03:19
浙ICP备14020137号-1 $Map of visitor$