Upload
drewz-lin
View
1.126
Download
10
Embed Size (px)
Citation preview
© FreeWheel 2012 SILICON VALLEY • NEW YORK • BEIJING • LONDON
Large Scale Video Monetization海量视频⼲⼴广告分发的挑战
杜嵩 [email protected] Summit 2012
Confidential
关于 FreeWheel
• FreeWheel 提供对版权数字内容进⾏行价值管理的全⾯面解决⽅方案•服务于美国市场超过1/3视频⼲⼴广告流量,90%的领先视频⺴⽹网站为
FreeWheel的客户或合作伙伴*•⽀支持数⼗十种平台和设备上的版权数字视频播放和⼲⼴广告管理,并为世界杯、奥运会等⾼高访问量项⺫⽬目提供实时视频⼲⼴广告决策与统计分析。
2
* 统计数字基于2011 Q4 ComScore 和 FreeWheel 数据
寻找体现内容最⼤大价值的⽅方程式$ ./adserver --start
Confidential
分销商
视频产业的独特挑战 - 复杂的⽣生态链
⼲⼴广告商 内容拥有者
分发渠道
第三⽅方平台
版权拥有及运营⽅方
•多⽅方业务整合•多变的⼲⼴广告投放策略•不同流量模式的分发渠道•完整数据报表和分析•灵活的第三⽅方集成
Confidential
视频产业的独特挑战 - 多维度的⼲⼴广告形式和播放体验
•视频内的线性(前后贴⽚片、中插与暂停)和⾮非线性(悬浮)⼲⼴广告、⻚页⾯面展⽰示⼲⼴广告及其组合
•来⾃自⼲⼴广告主(投放频次、区域与独占要求)、最终⽤用户(频次控制、视觉优化)、监管机构(分级、提⽰示)的不同⾓角度的要求
Confidential
OLTP OLAPAPI
Ad Server
Forecasting
B2B UI
SDK
Backend
Ruby on Rails
Ruby on Rails
MySQL
C++
C++
C++ / Java
Flash, iOS, …
技术堆栈
Confidential
B2B UI 架构
7
ModelController
View/Helper
Biz LogicResources
CONF
API
Module
ModelController
View/Helper
Biz LogicResources
CONF
API
Module
ModelController
View/Helper
Biz LogicResources
CONF
API
Module
ComponentsShared 3rd Plugins Shared ResourcesShared Model Controller/Dispatcher View/Helper
SSO System API (Search, i18n, …)User PermissionShared Library
TasksBizLogic
平滑处理流量$ netstat -na
Confidential
B2C服务集群的架构设计
9
OLTP
GSLB (NetScaler)
Lighttpd Lighttpd Lighttpd
Ad Server 1
MMAPDump
Ad Server 2 Ad Server n
Counter Server
Counter Client Counter ClientCounter ClientMemcached
Binary Logs (
Confidential
为动态请求的峰值流量作好准备
•基础设施•设计冗余•服务端负载 - 50%•客户端容许延迟•彩排!•⼤大量、稳定的⽇日常流量•静态化?
10
保证全球服务的⾼高可⽤用性$ uptime
Confidential
USWest ads cluster USEast1 ads
cluster
Data Service
USEast2 ads cluster
UK ads cluster
150Mbps, 90ms rtt
1Gbps, <1ms rtt
1Gbps, 69ms rtt
B2C服务集群的分布
Confidential
Failure is a feature
•消灭单点故障•可独⽴立运⾏行的集群•可离线运⾏行的服务实例•总是异步•断线、重连与最终同步
13
实时数据透视与多维度报表$ tail -f adserver.log
Confidential
多层次的数据服务
15
•⽇日志导出•定期报表•实时报表•预测•BI分析
Confidential
Ad server
RT-Reporting Servers
Bin/Ack Logs
LogTailer/LogSend
erDebug Logs
LogServer
RT-Counter?MongoDB
?
Historical Data
Store?
Processor
Processor
Processor
Processor
RT-UI
OLTP
MQ Servers
• ZeroMQ for log transporting• LevelDB for log matching• Redis/MongoDB as Realtime Counters• UI: JQuery + Highcharts + Google Map API
实时报表服务的架构设计
接⼊入异构平台和终端$ ftpd ; crond ; xcodebuild ; adb push
Confidential
多样化的接⼊入是发展趋势
18
Confidential
优良的API⽤用户体验有助于快速⼲⼴广泛的业务集成
19
Confidential
API的基础:可插接的数据访问层
•建⽴立⼀一致的内部数据层• API术语• API数据规范•维护兼容性•迁移成本的考量
20
内部数据层
API(C++)
API (XSLT)
客户端SDK 第三⽅方
客户端集成
API(Ruby)
导⼊入器(Ruby)
通⽤用客户端集成
特定第三⽅方服务端集成
回顾$ history | grep key
Confidential
回顾
• adserver --start• 寻找体现内容最⼤大价值的⽅方程式
• 可扩展的核⼼心架构:处理复杂多变业务逻辑
• netstat -na• 平滑处理流量冲击
• 从链路层开始;⾼高峰流量的特质;冗余
• uptime• 保证全球数据中⼼心的⾼高可⽤用性
• 没有单点、总是异步、最终同步
• tail -f adserver.log• 实现亚分钟级数据透视与多维度商业智能报表
• 实时⽇日志处理框架
• ftpd ; crond ; xcodebuild ; adb push• 接⼊入产业链上下游的异构平台和设备
• 开放数据架构、注重API的⽤用户体验
22
Confidential
变化总在发⽣生
•设计•与产品团队合作:好的产品设计应该是可扩展、可重⽤用的•重构•定期回顾流量结构和活跃的业务模式•透视•建⽴立快速诊断问题和容易发现趋势的⼯工具
23
Confidential
Thank You!