24
© FreeWheel 2012 SILICON VALLEY • NEW YORK • BEIJING • LONDON Large Scale Video Monetization 海量视频告分发的挑战 杜嵩 [email protected] Arch Summit 2012

杜嵩 Arch summit2012 dusong@freewheel

Embed Size (px)

Citation preview

Page 1: 杜嵩 Arch summit2012 dusong@freewheel

© FreeWheel 2012 SILICON VALLEY • NEW YORK • BEIJING • LONDON

Large Scale Video Monetization海量视频⼲⼴广告分发的挑战

杜嵩 [email protected] Summit 2012

Page 2: 杜嵩 Arch summit2012 dusong@freewheel

Confidential

关于 FreeWheel

• FreeWheel 提供对版权数字内容进⾏行价值管理的全⾯面解决⽅方案•服务于美国市场超过1/3视频⼲⼴广告流量,90%的领先视频⺴⽹网站为

FreeWheel的客户或合作伙伴*•⽀支持数⼗十种平台和设备上的版权数字视频播放和⼲⼴广告管理,并为世界杯、奥运会等⾼高访问量项⺫⽬目提供实时视频⼲⼴广告决策与统计分析。

2

* 统计数字基于2011 Q4 ComScore 和 FreeWheel 数据

Page 3: 杜嵩 Arch summit2012 dusong@freewheel

寻找体现内容最⼤大价值的⽅方程式$ ./adserver --start

Page 4: 杜嵩 Arch summit2012 dusong@freewheel

Confidential

分销商

视频产业的独特挑战 - 复杂的⽣生态链

⼲⼴广告商 内容拥有者

分发渠道

第三⽅方平台

版权拥有及运营⽅方

•多⽅方业务整合•多变的⼲⼴广告投放策略•不同流量模式的分发渠道•完整数据报表和分析•灵活的第三⽅方集成

Page 5: 杜嵩 Arch summit2012 dusong@freewheel

Confidential

视频产业的独特挑战 - 多维度的⼲⼴广告形式和播放体验

•视频内的线性(前后贴⽚片、中插与暂停)和⾮非线性(悬浮)⼲⼴广告、⻚页⾯面展⽰示⼲⼴广告及其组合

•来⾃自⼲⼴广告主(投放频次、区域与独占要求)、最终⽤用户(频次控制、视觉优化)、监管机构(分级、提⽰示)的不同⾓角度的要求

Page 6: 杜嵩 Arch summit2012 dusong@freewheel

Confidential

OLTP OLAPAPI

Ad Server

Forecasting

B2B UI

SDK

Backend

Ruby on Rails

Ruby on Rails

MySQL

C++

C++

C++ / Java

Flash, iOS, …

技术堆栈

Page 7: 杜嵩 Arch summit2012 dusong@freewheel

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

Page 8: 杜嵩 Arch summit2012 dusong@freewheel

平滑处理流量$ netstat -na

Page 9: 杜嵩 Arch summit2012 dusong@freewheel

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 (

Page 10: 杜嵩 Arch summit2012 dusong@freewheel

Confidential

为动态请求的峰值流量作好准备

•基础设施•设计冗余•服务端负载 - 50%•客户端容许延迟•彩排!•⼤大量、稳定的⽇日常流量•静态化?

10

Page 11: 杜嵩 Arch summit2012 dusong@freewheel

保证全球服务的⾼高可⽤用性$ uptime

Page 12: 杜嵩 Arch summit2012 dusong@freewheel

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服务集群的分布

Page 13: 杜嵩 Arch summit2012 dusong@freewheel

Confidential

Failure is a feature

•消灭单点故障•可独⽴立运⾏行的集群•可离线运⾏行的服务实例•总是异步•断线、重连与最终同步

13

Page 14: 杜嵩 Arch summit2012 dusong@freewheel

实时数据透视与多维度报表$ tail -f adserver.log

Page 15: 杜嵩 Arch summit2012 dusong@freewheel

Confidential

多层次的数据服务

15

•⽇日志导出•定期报表•实时报表•预测•BI分析

Page 16: 杜嵩 Arch summit2012 dusong@freewheel

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

实时报表服务的架构设计

Page 17: 杜嵩 Arch summit2012 dusong@freewheel

接⼊入异构平台和终端$ ftpd ; crond ; xcodebuild ; adb push

Page 18: 杜嵩 Arch summit2012 dusong@freewheel

Confidential

多样化的接⼊入是发展趋势

18

Page 19: 杜嵩 Arch summit2012 dusong@freewheel

Confidential

优良的API⽤用户体验有助于快速⼲⼴广泛的业务集成

19

Page 20: 杜嵩 Arch summit2012 dusong@freewheel

Confidential

API的基础:可插接的数据访问层

•建⽴立⼀一致的内部数据层• API术语• API数据规范•维护兼容性•迁移成本的考量

20

内部数据层

API(C++)

API (XSLT)

客户端SDK 第三⽅方

客户端集成

API(Ruby)

导⼊入器(Ruby)

通⽤用客户端集成

特定第三⽅方服务端集成

Page 21: 杜嵩 Arch summit2012 dusong@freewheel

回顾$ history | grep key

Page 22: 杜嵩 Arch summit2012 dusong@freewheel

Confidential

回顾

• adserver --start• 寻找体现内容最⼤大价值的⽅方程式

• 可扩展的核⼼心架构:处理复杂多变业务逻辑

• netstat -na• 平滑处理流量冲击

• 从链路层开始;⾼高峰流量的特质;冗余

• uptime• 保证全球数据中⼼心的⾼高可⽤用性

• 没有单点、总是异步、最终同步

• tail -f adserver.log• 实现亚分钟级数据透视与多维度商业智能报表

• 实时⽇日志处理框架

• ftpd ; crond ; xcodebuild ; adb push• 接⼊入产业链上下游的异构平台和设备

• 开放数据架构、注重API的⽤用户体验

22

Page 23: 杜嵩 Arch summit2012 dusong@freewheel

Confidential

变化总在发⽣生

•设计•与产品团队合作:好的产品设计应该是可扩展、可重⽤用的•重构•定期回顾流量结构和活跃的业务模式•透视•建⽴立快速诊断问题和容易发现趋势的⼯工具

23

Page 24: 杜嵩 Arch summit2012 dusong@freewheel

Confidential

Thank You!