SlideShare a Scribd company logo
1 of 25
Download to read offline
微博推荐引擎
架构蜕变之路
马骎
自我介绍-马骎
• 17年加入微博
关系流与互动等业务
AB测试系统
• 20年9月起负责推荐引擎
系统改造
概要
• 微博推荐引擎介绍
• 在线业务可靠性保障的条件
• 微博推荐引擎改造实践
• 总结回顾
微博推荐引擎介绍
• 服务热门流,热点流,视频后推荐等
• 推荐系统的枢纽
• 架构:总控 + 召回引擎 + 排序引擎
引擎架构
推荐前端
总控
召回引擎 排序引擎
排序模型
召回模型
训练 物料库
在线物料构造
特征 / 实验 / 广告 …
推荐引擎可靠性挑战
• 频繁宕机,正确返回不足两个9
• 代码数十万行
• 物料规模 (百万级 à 千万级)
• 突发流量
• 成本约束,人力不足
可靠性改造不只是技术问题
系统可靠运行的因素
质量
• 架构
• 代码质量
• …
工具
• 治理
• 扩缩容
• …
人力
• 运维
• 监控
• …
推荐引擎具体分析
• 质量 – 不稳定的核心原因,工作量巨大
• 工具 – 有简单的建设但很不足,公司内部有一些通用工具可用
• 运维人力 – 需要专业的运维团队支援
• 改造人力 – 引擎团队不足十人,需要协调人力支援
改造实践
• 初期 – 利用现有工具控制局面
• 中期 – 汇聚人力,提升质量
物料存储
已读
• 后期 – 优化工具
扩缩容
• 其他
运维系统接入
初始状态
• 手动运维与上线,大量的超时与宕机,一名开发同学时间用于上线等运维操作
应对
• 自动化运维工具接入,优化上线脚本
• 基于QPS和超时率的简单自动扩缩容功能
• 组合原有自动处置工具
质量改造 – 物料
问题分析
• 引擎单机存储所有物料及其特征
• 特征数量数百,整体数据较稀疏,大量字符串
• 支持千万级别物料的能力(内存效率 & 更新速度)
• 原有基于mmap的存储引擎速度慢且存在内存泄漏
方案
• 简单的单机模式,快速的加载
• 连续内存对象,2级索引
质量改造 – 物料
质量改造 – 已读
问题分析
• 一个早期实现的基于bloom filter的方案
• 固定size,低消费用户空间利用率低,高消费用户错误率高
• or 操作造成的四倍空间浪费
• 资源出现问题时无应对方法
• 判断逻辑在各服务需要各自实现 BF 1-10 BF 11-20 BF 21-30 BF 31-40
BF 1-10 BF 11-20 BF 21-30 BF 31-40 BF 41-50
Day 31-40
Day 41-50
Read or
Read or
Write
Write
质量改造 – 已读
方案
• 独立成为一个服务,将常用的判断逻辑封装为SDK
• 一串长度可变的bloom filter,限制最大长度
• 前一个填充率达到阈值时开启新的一个bloom filter
• 根据前一个填充速度选择下一个的大小
• Meta信息及最后一个bloom filter需要从主库读取,其他读从库
• 一个独立的短期已读存储,在主要资源不可用时提供降级的服务
外部工具 – 扩缩容
• 日常流量 - 午高峰晚高峰的自动扩容
• 突发流量 - 基于冗余度的自动扩缩容,热点应对机制
外部工具 – 扩缩容
• 突发流量自动扩缩容问题分析
• 快速发现 à 更快的数据通道
• 降级策略 à 不能急速启动且日常冗余度没有非常高时
• 快速扩容 à 更快的机器创建,更快的服务启动
• 冗余度 à 更多的时间
t1 t2 t3
冗余
降级
外部工具 – 扩缩容
• 推荐引擎启动速度 20min à 5min
• 各环节均加入计算量(条数 & 请求)降级,根据当前实际QPS与承载能力选
择降级比例
• 热点应对机制,基于规则与人工的大比例扩容
灵活的工作方法
• 丰富的技能 & 灵活的工具
• 例1:快速开发自动扩缩容工具
• 例2:利用数据工具快速分析条数异常请求的原因
沟通
• 其他团队及部门的支持
• 内部工作的合理安排
总结
• 20.12-21.03 三个多月的时间完成了主要的改造工作,正确处理请求的比例提
升到99.9%以上,服务耗时降低25%,不增加资源支持单机500万物料,启动
速度提升至原先的4倍。
问答
微博推荐引擎架构蜕变之路
微博推荐引擎架构蜕变之路
微博推荐引擎架构蜕变之路

More Related Content

Similar to 微博推荐引擎架构蜕变之路

价值中国网站开发、管理经验探讨、分享、交流
价值中国网站开发、管理经验探讨、分享、交流价值中国网站开发、管理经验探讨、分享、交流
价值中国网站开发、管理经验探讨、分享、交流hizhubo
 
Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用
Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用
Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用Zac John
 
Sap sem 实施要点
Sap sem 实施要点Sap sem 实施要点
Sap sem 实施要点jacochen
 
05.wls调优
05.wls调优05.wls调优
05.wls调优Meng He
 
移动互联网服务端架构介绍
移动互联网服务端架构介绍移动互联网服务端架构介绍
移动互联网服务端架构介绍arganzheng
 
去哪儿Ugc平台设计经验
去哪儿Ugc平台设计经验去哪儿Ugc平台设计经验
去哪儿Ugc平台设计经验mysqlops
 
Wushi-Qcon2011
Wushi-Qcon2011Wushi-Qcon2011
Wushi-Qcon2011Yiwei Ma
 
淘宝线上线下性能跟踪体系和容量规划-Qcon2011
淘宝线上线下性能跟踪体系和容量规划-Qcon2011淘宝线上线下性能跟踪体系和容量规划-Qcon2011
淘宝线上线下性能跟踪体系和容量规划-Qcon2011Yiwei Ma
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介pan weizeng
 
Google analytics代码部署补充 + SEO 搜索引擎优化
Google analytics代码部署补充 + SEO 搜索引擎优化Google analytics代码部署补充 + SEO 搜索引擎优化
Google analytics代码部署补充 + SEO 搜索引擎优化Vinny Wu
 
百度优化指南 V2
百度优化指南 V2百度优化指南 V2
百度优化指南 V2hanchengluo
 
ChinaNetCloud - Aliyun Joint Event on Cloud Operations
ChinaNetCloud - Aliyun Joint Event on Cloud Operations ChinaNetCloud - Aliyun Joint Event on Cloud Operations
ChinaNetCloud - Aliyun Joint Event on Cloud Operations ChinaNetCloud
 
账务系统设计及应用
账务系统设计及应用账务系统设计及应用
账务系统设计及应用wang zaixiang
 
QCon - Engineering Productivity in Large Scale Development
QCon - Engineering Productivity in Large Scale DevelopmentQCon - Engineering Productivity in Large Scale Development
QCon - Engineering Productivity in Large Scale DevelopmentVincent Xia
 
QCon - 支持百度万人开发的工具装备及百度工程效率提升实践
QCon - 支持百度万人开发的工具装备及百度工程效率提升实践 QCon - 支持百度万人开发的工具装备及百度工程效率提升实践
QCon - 支持百度万人开发的工具装备及百度工程效率提升实践 Vincent Xia
 
通用Mock平台在支付宝测试的实践
通用Mock平台在支付宝测试的实践通用Mock平台在支付宝测试的实践
通用Mock平台在支付宝测试的实践drewz lin
 
ASP.Net MVC2 简介
ASP.Net MVC2 简介ASP.Net MVC2 简介
ASP.Net MVC2 简介Allen Lsy
 
Aws 全面业务流程管理解决方案v2 0
Aws 全面业务流程管理解决方案v2 0Aws 全面业务流程管理解决方案v2 0
Aws 全面业务流程管理解决方案v2 0mfrog
 
Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)jalamar
 
Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)LetAgileFly
 

Similar to 微博推荐引擎架构蜕变之路 (20)

价值中国网站开发、管理经验探讨、分享、交流
价值中国网站开发、管理经验探讨、分享、交流价值中国网站开发、管理经验探讨、分享、交流
价值中国网站开发、管理经验探讨、分享、交流
 
Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用
Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用
Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用
 
Sap sem 实施要点
Sap sem 实施要点Sap sem 实施要点
Sap sem 实施要点
 
05.wls调优
05.wls调优05.wls调优
05.wls调优
 
移动互联网服务端架构介绍
移动互联网服务端架构介绍移动互联网服务端架构介绍
移动互联网服务端架构介绍
 
去哪儿Ugc平台设计经验
去哪儿Ugc平台设计经验去哪儿Ugc平台设计经验
去哪儿Ugc平台设计经验
 
Wushi-Qcon2011
Wushi-Qcon2011Wushi-Qcon2011
Wushi-Qcon2011
 
淘宝线上线下性能跟踪体系和容量规划-Qcon2011
淘宝线上线下性能跟踪体系和容量规划-Qcon2011淘宝线上线下性能跟踪体系和容量规划-Qcon2011
淘宝线上线下性能跟踪体系和容量规划-Qcon2011
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介
 
Google analytics代码部署补充 + SEO 搜索引擎优化
Google analytics代码部署补充 + SEO 搜索引擎优化Google analytics代码部署补充 + SEO 搜索引擎优化
Google analytics代码部署补充 + SEO 搜索引擎优化
 
百度优化指南 V2
百度优化指南 V2百度优化指南 V2
百度优化指南 V2
 
ChinaNetCloud - Aliyun Joint Event on Cloud Operations
ChinaNetCloud - Aliyun Joint Event on Cloud Operations ChinaNetCloud - Aliyun Joint Event on Cloud Operations
ChinaNetCloud - Aliyun Joint Event on Cloud Operations
 
账务系统设计及应用
账务系统设计及应用账务系统设计及应用
账务系统设计及应用
 
QCon - Engineering Productivity in Large Scale Development
QCon - Engineering Productivity in Large Scale DevelopmentQCon - Engineering Productivity in Large Scale Development
QCon - Engineering Productivity in Large Scale Development
 
QCon - 支持百度万人开发的工具装备及百度工程效率提升实践
QCon - 支持百度万人开发的工具装备及百度工程效率提升实践 QCon - 支持百度万人开发的工具装备及百度工程效率提升实践
QCon - 支持百度万人开发的工具装备及百度工程效率提升实践
 
通用Mock平台在支付宝测试的实践
通用Mock平台在支付宝测试的实践通用Mock平台在支付宝测试的实践
通用Mock平台在支付宝测试的实践
 
ASP.Net MVC2 简介
ASP.Net MVC2 简介ASP.Net MVC2 简介
ASP.Net MVC2 简介
 
Aws 全面业务流程管理解决方案v2 0
Aws 全面业务流程管理解决方案v2 0Aws 全面业务流程管理解决方案v2 0
Aws 全面业务流程管理解决方案v2 0
 
Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
 
Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
 

More from Fan Robbin

The state of geo in ElasticSearch
The state of geo in ElasticSearchThe state of geo in ElasticSearch
The state of geo in ElasticSearchFan Robbin
 
reliabe by design
reliabe by designreliabe by design
reliabe by designFan Robbin
 
updates from lucene lands 2015
updates from lucene lands 2015updates from lucene lands 2015
updates from lucene lands 2015Fan Robbin
 
All about aggregations
All about aggregationsAll about aggregations
All about aggregationsFan Robbin
 
bm25 demystified
bm25 demystifiedbm25 demystified
bm25 demystifiedFan Robbin
 
Seven deadly sins of ElasticSearch Benchmarking
Seven deadly sins of ElasticSearch BenchmarkingSeven deadly sins of ElasticSearch Benchmarking
Seven deadly sins of ElasticSearch BenchmarkingFan Robbin
 
AinoVongeCorry_AnIntroductionToArchitectureQuality.ppt
AinoVongeCorry_AnIntroductionToArchitectureQuality.pptAinoVongeCorry_AnIntroductionToArchitectureQuality.ppt
AinoVongeCorry_AnIntroductionToArchitectureQuality.pptFan Robbin
 
广告推荐训练系统的落地实践
广告推荐训练系统的落地实践广告推荐训练系统的落地实践
广告推荐训练系统的落地实践Fan Robbin
 
Claire protorpc
Claire protorpcClaire protorpc
Claire protorpcFan Robbin
 
可视化的微博
可视化的微博可视化的微博
可视化的微博Fan Robbin
 

More from Fan Robbin (10)

The state of geo in ElasticSearch
The state of geo in ElasticSearchThe state of geo in ElasticSearch
The state of geo in ElasticSearch
 
reliabe by design
reliabe by designreliabe by design
reliabe by design
 
updates from lucene lands 2015
updates from lucene lands 2015updates from lucene lands 2015
updates from lucene lands 2015
 
All about aggregations
All about aggregationsAll about aggregations
All about aggregations
 
bm25 demystified
bm25 demystifiedbm25 demystified
bm25 demystified
 
Seven deadly sins of ElasticSearch Benchmarking
Seven deadly sins of ElasticSearch BenchmarkingSeven deadly sins of ElasticSearch Benchmarking
Seven deadly sins of ElasticSearch Benchmarking
 
AinoVongeCorry_AnIntroductionToArchitectureQuality.ppt
AinoVongeCorry_AnIntroductionToArchitectureQuality.pptAinoVongeCorry_AnIntroductionToArchitectureQuality.ppt
AinoVongeCorry_AnIntroductionToArchitectureQuality.ppt
 
广告推荐训练系统的落地实践
广告推荐训练系统的落地实践广告推荐训练系统的落地实践
广告推荐训练系统的落地实践
 
Claire protorpc
Claire protorpcClaire protorpc
Claire protorpc
 
可视化的微博
可视化的微博可视化的微博
可视化的微博
 

微博推荐引擎架构蜕变之路