构建高效安全的 CDN

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 构建⾼高效、安全的 CDN ——阿⾥里 CDN 核⼼心技术揭秘 ! 阿⾥里云-核⼼心系统部 朱照远(叔度)
2. ⼤大纲 • • • • 总览! 性能优化! 安全防御! 展望
3. 总览 3
4. 关于阿⾥里巴巴 4
5. 阿⾥里巴巴⾃自⾝身⾯面对的技术挑战 • 2012年淘宝、天猫的交易额为11600亿元⼈人民币! • 超过Amazon与eBay之和! • 三个⺴⽹网站流量在全球排名前100(Alexa统计)! • taobao.com(#9) tmall.com(#18) alibaba.com(#68)! • 2013年双11⼤大促活动的⼀一些数据! • 6分钟成交10亿! • 当天总销售额350.19亿,其中⼿手机淘宝⽀支付53.5亿! • 成交总笔数1.71亿! • 全天独⽴立访客4.02亿⼈人 5
6. 阿⾥里CDN概况 • • • • • • 全球20⼏几个国家200多个节点! 6Tbps服务能⼒力储备! 1机柜单节点40Gbps服务能⼒力,20万QPS! 2013年双11峰值流量3.4Tbps! 处于业界技术前沿的开源技术研究及开发! 从淘宝CDN到阿⾥里云CDN 6
7. 阿⾥里云CDN • 特点! • 稳定快速! • 安全防护! • 简单易⽤用! • 节约成本 7
8. 阿⾥里CDN⼤大图 8
9. 阿⾥里CDN组件分层 9
10. 性能优化 10
11. 阿⾥里CDN的⼤大脑:全局流量调度 11
12. DNS服务器:Pharos • ⾃自主研发的调度系统,可控性,协议扩展性都更好,也省下 了采购商⽤用设备的成本! • 单机⾼高性能,⽀支持百万级别的域名! • ⽀支持多级的策略调度,节点故障不会造成⽤用户的不可⽤用! • ⽀支持EDNS扩展协议! • 多系统联动,与安全防御系统,刷新系统,内容管理系统联 动! • Portal,API,tcheck等多种管理⽅方式 12
13. 实时调度系统:CMOS • 数据化的调度! • 流量完全可控,降低了抖动造成的带宽成本! • LDNS级别、节点级别的流量预测,流量峰值到来前提前 应对! • 精确、准实时的流量调度! • 平均误差⼩小于15%,精度可以到5M级别! • 单个Local DNS级别的调度! • 5分钟级别的准实时! • 调度质量、准确度的提升,直接影响着⽤用户体验! • ⾃自动化的调度! • 只要描述调度的场景,设定约束条件,⾃自动计算,⽣生成适 应的策略,更新pharos 13
14. Pharos+CMOS架构 14
15. 调度准确性的重要基础:IP地址库 • 数据采集,多个数据源! • 数据运算与评估(加权投票、评估体系)! • 对各个数据源的数据质量,设置不同权重,进⾏行投票! • 权重的设置,是根据数据源质量的评估结果进⾏行设置,质 量⾼高,权重⾼高,否则相反! • 根据淘宝包裹地址和IP做数据校验! • 根据上次的结果进⾏行迭代 15
16. 阿⾥里CDN节点系统:内部架构图 • 关键组件! • LVS做四层负载均衡! • Tengine做七层负载均衡! • 安全! • 业务逻辑处理! • Swift做HTTP缓存! • ⾼高性能cache! • 磁盘(SSD/SATA) 16
17. 四层负载均衡:LVS • DR模式! • IN的流量经过LVS,OUT的不经过! • 负载均衡算法采⽤用wrr! • 双LVS做Active-Active互备,中间有⼼心跳监测 17
18. 七层负载均衡:Tengine • 阿⾥里基于Nginx开发的⾼高性能HTTP服务器! • 已经开源于:http://tengine.taobao.org! • ⼀一致性hash(consistent hashing)! • 提⾼高命中率! • 降低抖动! • 主动健康检查! • SPDY v3⽀支持! • SO_REUSEPORT⽀支持! • 提⾼高worker进程之间的均衡性! • 降低CPU使⽤用! • 热点对象发现 18
19. 阿⾥里HTTP缓存服务器:Swift • 基础功能! • HTTP/1.1协议、proxy功能! • 内存缓存、磁盘存储! • HTTPS协议关键特性的⽀支持! • 业务功能! • 精确purge/dir purge/正则purge! • 鉴权X-Referer-Acl! • ESI+gzip! • 运维和配置相关功能! • 按照域名配置的功能! • if、变量⽀支持! • 磁盘容错。磁盘为只读不再进⾏行写操作;磁盘不可读将磁盘摘掉! • 丰富的统计信息 19
20. Swift总体架构图 • 核⼼心组件! • HTTP处理引擎! • 回源! • 存储! • 索引! • 内容管理⼦子系统 20
21. Swift性能优化点 • • • • • • • • • • • 多线程事件驱动⺴⽹网络模型! 减⼩小线程间上下⽂文切换! 内存命中,⼀一个请求只需要⼀一个线程来处理! 消除在万兆⺴⽹网卡上⺴⽹网络处理的瓶颈! 304的请求没有Disk I/O! 使⽤用trie树实现快速匹配,减少ACL字符串匹配! 使⽤用完美hash计算header id,实现批量拷⻉贝、删除响应头! 使⽤用libaio(Linux内核AIO)优化IO操作! ⼤大⽂文件分⽚片不同⽚片可以分到所有的磁盘上,可以按⽚片做热点! 七层负载均衡、热点cache! 分级存储和热点迁移 21
22. Swift的⽂文件存储系统 • TCOSS(Taobao Cyclic Object Storage System)! • 基于Squid的COSS系统做的定制开发! • ⽀支持裸盘热拔插! • COSS对象访问导致平均2.13次I/O访问! • TCOSS对象访问导致平均1次IO访 22
23. TCOSS存储系统 • 没有open和close,尽量少的读写IO 图1  磁盘没满写数据 图2  磁盘写满之后写数据 图3    从磁盘读数据 23
24. Swift热点迁移算法 • 三层存储! • 内存! • SSD! • SATA! • 根据对象热度决定到哪层 24
25. Tengine+Swift性能优化 • 集群的⼤大⽂文件分⽚片缓存功能! • 基于HTTP分段压缩算法! • 利⽤用SPDY的多路复⽤用技术! • 减少三路握⼿手和慢启动的影响! • 减少对本地端⼝口的占⽤用 QPS User  CPU Sys  CPU Sirq  CPU Total  CPU HTTP 33.5K 15.00 16.20 10.04 41.25 SPDY 33.4K 12.83 12.77 8.48 34.10 对⽐比 基本相同 14.47%(优化降低) 21.17%(优化降低) 15.53%(优化降低) 17.33%(优化降低) 25
26. TCP协议栈优化 • 改进措施! • 基于时间序的丢包发现机制! • 主动的丢包发现机制! • ⾃自适应的初始窗⼝口! • 更激进的拥塞避免算法! • 更⼩小的连接超时时间 26
27. TCP协议栈优化效果:抗抖动 27
28. TCP优化效果:减少连接时间 28
29. ⻚页⾯面优化 • Trim:去除⻚页⾯面的空格、回⻋车换⾏行、TAB、注释等,以减少⻚页 ⾯面的⼤大⼩小! • 智能gzip:某些⽤用户的浏览器实际⽀支持gzip但是却被防⽕火墙或 者proxy给改掉。智能gzip功能会对这个过程进⾏行测试,从⽽而 允许gzip,减少⽤用户传输内容的⼤大⼩小! • SDCH:压缩算法优化,降低传输⼤大⼩小! • Combo:组合多个JavaScript/CSS⽂文件成⼀一个请求,从⽽而减 少请求数⺫⽬目 29
30. 安全防御 30
31. 阿⾥里四层防攻击系统:AliGuard • • • • • 基于DPDK之上的⺴⽹网络框架! ⽀支持集群部署! 流量牵引! 四层DDoS攻击防护! DNS攻击防护 31
32. 阿⾥里七层防攻击:TMD系统架构 32
33. TMD⼀一些关键技术 • • • • • • 模块化,如防CC模块、hotpatch模块等! socketpair 实现多进程间配置更新通知! 共享内存hash表实现⿊黑⽩白名单! 漏桶,令牌桶算法实现QPS限流! LRU,红⿊黑树实现CC统计算法! 多线程,libev实现⺴⽹网络通信框架 33
34. TMD防CC攻击的⼀一个例⼦子 • • • • 原⻚页⾯面60KB! 攻击9万QPS! 计算带宽41Gbps! 实际节省200倍 34
35. 七层防攻击:Web应⽤用防⽕火墙 • 基于Tengine的模块(WAF)! • ⾼高效的规则匹配引擎! • 防⽌止攻击! • SQL注⼊入! • XSS! • Web Shell! • … 35
36. 可运维性改进 • 海量域名管理! • Tengine不再依赖配置⽂文件! • HTTP接⼝口去configserver拿域名对应的配置! • lazy更新,只记录访问过的! • 有cache时间! • 失效接⼝口! • 不需要reload 36
37. 展望 37
38. 阿⾥里CDN持续优化 • • • • • 核⼼心应⽤用软件开发! 节点架构优化! 调度系统的精细化调度! 运维⼯工具平台化、系统化! 总⺫⽬目标! • 给阿⾥里云⽤用户提供稳定、安全、易⽤用、低成本的CDN服务 38
39. 我们在招聘! • ⼀一流的技术环境,⼀一流的技术挑战! • 招聘职位! • 资深CDN系统开发⼯工程师(C/C++)! • 资深Web服务器开发⼯工程师(C/C++)! • 资深Java开发⼯工程师! • 欢迎发送简历到! • 邮件:shudu@taobao.com! • 新浪微博:@淘叔度! • 来往:叔度 39
40.

Accueil - Wiki
Copyright © 2011-2024 iteam. Current version is 2.139.0. UTC+08:00, 2024-12-26 12:38
浙ICP备14020137号-1 $Carte des visiteurs$