Upload
michael-zhang
View
995
Download
1
Embed Size (px)
DESCRIPTION
Citation preview
QCon北京2014大会 4月17—19日
ATS与CDN实践 阿里CDN @ Qcon 2013
赵永明
• 赵永明,淘宝花名永豪
• 阿里云核心系统研发Web平台部
• 阿里CDN的cache系统Apache Traffic Server开发
• Apache Traffic Server:作为中国最早的YTS用户,中国第一个committer+PMC成员
• tsar 2.0项目发起人
总览
• Apache Traffic Server介绍
• 阿里CDN实践
• ATS社区
第一段
• Apache Traffic Server介绍
• 阿里CDN实践
• ATS社区、中国、未来
Apache Traffic Server 介绍
• 企业:省钱、省人
• 业务开发:稳定、高效
• 核心:恐怖、可怕
• 运维:靠谱、省心
好扩展的高性能缓存代理服务器
全球用户
第二段
• Apache Traffic Server介绍
• 阿里CDN实践
• ATS社区、中国、未来
我们在做什么?
Cache UGC:与全国人们做斗争
• 数据量大:xx亿商品,xxPB存储
• 流量大:xxxx万QPS
• 业务需求极度压制:保双11而弃业务需求
我们在做什么?
Cache UGC:与全国人们做斗争
• 数据量大:xx亿商品,xxPB存储
• 流量大:xxxx万QPS
• 业务需求极度压制:保双11而弃业务需求
分级存储
分级存储
• 1.5TB存储,1Gb流量,32KB平均大
• 50%左右的磁盘命中,需要2000的IOPS
• 单Sata(SAS)盘最多80-100 IOPS
• Sata + SSD是解决问题的良好组合
单盘性能瓶颈
分级存储特点
• Block级,文件片(默认1M)粒度
同时支持大文件、小文件
LRU算法,简单有效
• 全局中间层,对上层业务透明
• 推荐比例:内存:SSD:SATS=1:10:100或更高
分级存储效果
我们在做什么?
Cache UGC:与全国人们做斗争
• 数据量大:xx亿商品,xxPB存储
• 流量大:xxxx万QPS
• 业务需求极度压制:保双11而弃业务需求
集群
集群原架构 • 去HAproxy
• 提升业务自由度
HAProxy挑战
• 性能,单机50% CPU用于HAproxy
• 7层屏蔽了业务能力
• hash引入复杂度,数据一致性保证
HAProxy优化
• L5630单线程性能优化到1Gb/s
• 基于HAProxy的hash广播Purge
• Cache:HA = 1:1 CPU占用
原生ATS集群
• 集群是Cache文件系统的延伸
• 4线程支持4G/s,50% CPU占用
• 更好的支持:purge、SPDY、rewrite
• 单集群可以支持200台机器
我们在做什么?
Cache UGC:与全国人们做斗争
• 数据量大:xx亿商品,xxPB存储
• 流量大:xxxx万QPS
• 业务需求极度压制:保双11而弃业务需求
用户驱动
remap.config
• 引入类似Nginx的格式,配置用户化
• 嵌入referrer ACL、records.config
• 规范remap的plugin使用
• 嵌入cache.config hosting.config等配置
remap例子
acl define black_list deny { redirect_url http://pics.taobaocdn.com/pic_fobbiden.png referer domain xxx.com|xxxx.com|xxxxx.com } http vodcdn.video { acl check black_list map /withhead http://vodcdn.video.inner/withhead { config records proxy.config.http.origin_max_connections=100 plugin /usr/lib64/trafficserver/plugins/libmediaslice_pad.so.1 } map / http://vodcdn.video.inner/ { config records proxy.config.http.origin_max_connections=100 } }
除了remap
• 使用DNS SRV管理回源(已包含在稳定版本中)
• 更细致的连接超时管理(大部分进主干)
• ts-lua,ATS的Lua语音插件(github开源)
• 支持Linux Native AIO的尝试(已进主干)
• 集群管理系统优化(部分提交社区)
• tsar多种ATS数据统计模块(开源在tsar项目中)
我们还做了
• 日志系统与状态系统(已包含在稳定版本中)
• 支持删除、预加载的高效内容管理系统
• 内核协议栈优化
• 精准的IP库+全网细粒度调度系统
• 全网SLA检测系统(阿里度)
甚至协议测试
• HTTP/1.1协议兼容性
• 跟进ATS功能测试
• 也支持Varnish Nginx
Squid等
https://github.com/alibaba/Macaroon
效果
• Cache系统运维2人,支撑阿里CDN平稳运行
• CDN基础框架稳定,周边系统大跨步跟进
• TS团队前后5人被吸收为官方Committer(总34人)
• 社区的出色工作甚至重新赢回了雅虎的芳心
国内国外
• Yahoo:老东家
• Apple:代码主力,业界良心
• Comcast:视频存储大户,ISP视频加速
• LinkedIn:业务插件之王,C++API
• ypyun又拍云:提供CDN服务
• 4399小游戏:专用CDN
• VeryCloud云端网络:提供CDN服务
后续计划
• Lua进核心,支持配置Lua化
• http v2,SPDY
• C++ API(已进主干)
• Cluster协议拓展,增强上下游网络处理效率
回顾
• 介绍ATS
• 介绍阿里如何使用ATS
• 分级存储
• 集群
• 运维优化
• 社区发展
欢迎加入扎堆
来往扫一下吧!
Thanks!
特别感谢 QCon上海合作伙伴