如何构建一个高可用可扩展的广告投放平台-品友互动

20
第12 12期 《新一代互联网行为定向广告技术的挑 新一代互联网行为定向广告技术的挑 战与优化 战与优化-》- 品友互动 友互动专场 专场 www.LAMPER.cn QQ群: 83304912 http://weibo.com/lampercn

Upload: shaoning-pan

Post on 15-Jan-2015

1.885 views

Category:

Technology


5 download

DESCRIPTION

#LAMP人#新一代互联网行为定向广告技术的挑战与优化- 品友互动专场

TRANSCRIPT

第第1212期期《《新一代互联网行为定向广告技术的挑新一代互联网行为定向广告技术的挑

战与优化战与优化--》》--品品友互动友互动专场专场

www.LAMPER.cnQQ群: 83304912

http://weibo.com/lampercn

如何构建一个高可用、可扩展的广告如何构建一个高可用、可扩展的广告投放平台投放平台

Copyright@2012 iPinyou All Rights Reserved.

李江涛

目录☆什么是广告投放平台主要挑战☆主要挑战

☆设计要点

什么是广告投放平台•广告位

– JS代码– SWF代码

•创意创意•投放计划•广告主

主要挑战• 7x24(网站可用性: 3-5个9)

– 不能宕机– 无停机维护时间– 不能开天窗

• 高并发

可用性与经济损失假设每秒1万曝光每千次曝光30元

可用性与经济损失假设每秒1万曝光每千次曝光30元• 高并发

• 低延时• 可扩展

级别 年宕机时间 年损失5个9 约5分钟 9467元4个9 约53分钟 94673元3个9 约9小时 94.7万2个9 约3.7天 947万……

级别 年宕机时间 年损失5个9 约5分钟 9467元4个9 约53分钟 94673元3个9 约9小时 94.7万2个9 约3.7天 947万……

设计——无共享架构• 避免共享Session(会话)• 避免会话复制• 避免Sticky(粘性) Session• Cookie替代Session• Cookie替代Session

设计——动静分离• 将创意(Creative)等JS、Flash、CSS、HTML

静态文件剥离出来

•使用CDN(内容分发网络)处理静态资源请求

设计——集群• Web负载均衡

– LVS– HAProxy– Nginx– Nginx– F5

• MySQL 主从分离• Cache集群

设计——高性能存储• NoSQL数据库

– Memcached/MemcacheDB– Redis– TT(Tokyo Tyrant)/TC(Tokyo Cabinet)– TT(Tokyo Tyrant)/TC(Tokyo Cabinet)– Cassandra– HBase– MongoDB

设计——其它高性能设计• 高质量、高性能的程序代码

• 优化各种耗时、消耗资源逻辑

设计——高可用• Web负载均衡&故

障迁移

• 高可用网络环境• 高可用网络环境

• DB和Cache高可用

高可用——Web故障迁移• LVS/HAProxy/Nginx

• Keepalived/Heartbeat

• Tomcat/Web Server

高可用——高可用网络环境• 双份网络交换机

• 接入交换机使用STP协议

LVS

SWSW

LVS

• Linux操作系统使用bonding(mode=1\6)

WEB

SW SW

WEBWEB

DB CacheDB Cache

WEB

高可用——DB和Cache高可用• DB高可用

– MySQL主从分离

• Cache高可用• Cache高可用– 主从复制(Redis)– 直接写两份– 使用品友iRedis

iRedis简介基于Jedis的Redis集群客户端,提供了哈希、范围等多种集群策略;支持本地配置、远程配置等配置

发行包/config:分布策略及log4j配置示例/doc:用户手册/lib:iRedis依赖库/samples:示例代码/schema:分布策略配置文件Schema定义

发行包/config:分布策略及log4j配置示例/doc:用户手册/lib:iRedis依赖库/samples:示例代码/schema:分布策略配置文件Schema定义

模式;支持灾备节点配置

添加节点无需迁移数据(哈希+范围集群策略)

义/server:配置服务器/src:iRedis源代码/iredis-{version}.jar iRedis jar包

义/server:配置服务器/src:iRedis源代码/iredis-{version}.jar iRedis jar包

设计——快速扩展• 增加负载均衡节点

– LVS DR模式性能极佳,一般无需扩展– DNS设置多个A记录

• 增加Web节点• 增加Web节点– service keepalived/haproxy reload

• 增加Cache节点– 一致性Hash– 自实现数据迁移策略

设计——无缝部署• 使用JSP/PHP应对频繁变更• 使用集群来实现伪无缝部署

– 轮循策略– 健康检查– 健康检查– 无Session

• OSGi热部署• 热代码替换(仅限于开发环境)

如何构建一个高可用、可扩展的广告投放平台?• 无共享架构• 动静分离• 集群

•高可用– Web故障迁移– 高可用网络环境• 集群

• 高性能存储• 服务、数据分级• 其它高性能设计

– 高可用网络环境– DB和Cache高可用

•快速扩展•无缝部署

我们的技术:我们的技术:海量数据、云计算、分布式、数据挖掘、机器学习、海量数据、云计算、分布式、数据挖掘、机器学习、精准定向、用户行为分析精准定向、用户行为分析

海量数据、云计算、分布式、数据挖掘、精准定向、海量数据、云计算、分布式、数据挖掘、精准定向、数据分析、数据分析、HadoopHadoop,,RedisRedis,,HbaseHbase,,HiveHive,,PigPig,,OozieOozie,,GangliaGanglia,,FlumeFlume,,LuceneLucene,,LIBSVMLIBSVM,,MahoutMahout,,ZookeeperZookeeper……………………

品友互动感谢您的关注,希望继续支持:品友互动感谢您的关注,希望继续支持:官方网站:官方网站:http://www.ipinyou.com.cnhttp://www.ipinyou.com.cn官方微博:官方微博:http://weibo.com/pinyouhudonghttp://weibo.com/pinyouhudong招聘微博:招聘微博:http://weibo.com/pinyouhudonghrhttp://weibo.com/pinyouhudonghr

尽管每一个词都名声显赫,热的发紫,但这的确就是尽管每一个词都名声显赫,热的发紫,但这的确就是我们每天正在做的和使用着的;我们每天正在做的和使用着的;

我知道,你那一本正经的外表下面那颗躁动的心已经我知道,你那一本正经的外表下面那颗躁动的心已经蠢蠢欲动了蠢蠢欲动了!!!!!!!!

来吧!这儿的舞台无比广阔,这儿的技术绝对前沿,来吧!这儿的舞台无比广阔,这儿的技术绝对前沿,这儿的事情会让你激动得颤抖这儿的事情会让你激动得颤抖!!!!!!!!

加入品友:加入品友:[email protected]@ipinyou.com

我们的产品:我们的产品: OptimusOptimus Folo8Folo8