中国专业CDN行业近年来呈现了迅猛增长的态势。根据国内咨询机构艾瑞的统计,从2006年至2012年,中国第三方CDN市场营收规模增长率均保持在30%以上。艾瑞预测,未来几年CDN市场将继续保持40%以上的高增长。

 

今天将会给大家揭秘阿里CDN核心技术!图片来自阿里云-核心系统部 朱照远。

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_阿里

构建高效、安全的CDN,阿里CDN核心技术揭秘

阿里云-核心系统部 朱照远(叔度)


cdn 技术 架构 cdn技术架构阿里巴巴 pdf_cdn 技术 架构_02


大纲:总览,性能优化,安全防御,展望

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_cdn_03


阿里自身面对的技术挑战

2012年淘宝、天猫的交易额为11600亿元人民币,超过Amazon与eBay之和

三个网站流量在全球排名前100(Alexa统计)

2013年双11大促活动的一些数据:6分钟成交10亿;当天总销售额350.19亿,其中手机淘宝支付53.5亿;成交总笔数1.71亿;全天独立访客4.02亿。

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_nginx_04


阿里CDN概况:

全球20几个国家200多个节点

6Tbps服务能力储备

1机柜单节点40Gbps服务能力,20万QPS

2013年双11峰值流量3.4Tbps

处于业界技术前沿的开源技术研究及开发

从淘宝CDN到阿里云CDN

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_阿里_05


阿里云CDN特点:

稳定快速

安全防护

简单易用

节约成本

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_阿里_06


阿里CDN大图

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_cdn_07


阿里云CDN组件分层:

服务层(基础服务-静态文件分发,大文件分发,流媒体分发,应用加速;辅助服务-文件上传,内容刷新,日志分析)

应用层(全局负载均衡-Pharos,CMOS;本地负载均衡-LVS,Tengine;缓存-Swift,监控-Alimonitor,Tsar,Alibench,Kunlunjing;配置管理-Salt,Puppet)

系统层(RHEL,CentOS)

设备层(服务器,路由器,交换机,防火墙,其他专用设备)

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_nginx_08


性能优化

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_cdn 技术 架构_09


阿里CDN大脑:全局流量调度

LDNS,GSLB,CMOS,策略

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_阿里_10


DNS服务器:Pharos

自主研发的调度系统,可控性,协议扩展性都更好,节省采购商用设备成本

单机高性能,支持百万级别的域名

支持多级的策略调度,节点故障不会造成用户的不可用

支持EDNS扩展协议

多系统联动,与安全防御系统,刷新系统,内容管理系统联动

Portal,API,tcheck等多动管理方式

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_ssd_11


实时调度系统CMOS

数据化的调度:流量完全可控,降低抖动造成的带宽成本;LDNS级别、节点级别的流量预测,流量峰值到来前提前应对

精确、准实时的流量调度:平均误差小于15%,精度可到5M级别;单个Local DNS级别的调度;5分钟级的准实时

调度质量、准确度的提升,直接影响着用户体验

自动化的调度:只要描述高度场景,设定约束条件,自动计算,生成适应的策略,更新Pharos

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_ssd_12


Pharos+CMOS架构

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_ssd_13


调度准确性的重要基出:IP地址库

数据采集,多个数据源

数据运算与评估(加权投票、评估体系):对各个数据源的数据质量,设置不同的权重,进行投票;权重的设置,是根据数据源质量的评估结果进行设置,质量高,权重高,否则相反;根据淘宝包裹地址和IP做数据校验;根据上次的结果进行迭代


 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_阿里_14


阿里CDN节点系统:内部架构图


关键组件:

LVS做四层负载均衡

Tengine做七层负载均衡(安全、业务逻辑处理)

Swift做HTTP缓存(高性能CACHE,磁盘-SSD/SATA)

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_阿里_15


四层负载均衡:LVS

DR模式(IN的流量经过LVS,OUT的不经过

负载均衡算法采用wrr

双LVS做Active-Active互备,中间有心跳监测

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_ssd_16


七层负载均衡:Tengine

阿里基于Nginx开发的高性能HTTP服务器(已经开源于:http://tengine.taobao.org)

一致性Hash(提高命中率、降低抖动)

主动健康检查

SPDY V3支持

SO_REUSEPORT支持(提高worker进程之间的均衡性、降低CPU使用)

热点对象发现

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_cdn 技术 架构_17


阿里HTTP缓存服务器:Swift

基础功能(Http/1.1协议、proxy功能;内存缓存、磁盘存储;HTTPS协议关键特性支持)

业务功能(精确purge/dir purge/正则purge;鉴权X-Referer-Acl;ESI+gzip)

运维和配置相关功能(按照域名配置的功能;if、变量支持;磁盘容错:磁盘为只读不再进行写操作及磁盘不可读将磁盘摘掉;丰富的统计信息)


 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_ssd_18


Swift总体架构图

核心组件(HTTP处理引擎;回源;存储;索引;内容管理子系统)


 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_ssd_19


Swift性能优化点

多线程事件驱动网络模型

减小线程间上下文切换

内存命中,一个请求只需要一个线程来处理

消除在万兆网卡上网络处理的瓶颈

304的请求没有DISK I/O

使用trie树实现快速匹配,减少ACL字符串匹配

使用完美hash计算head id,实现批量拷贝、删除响应头

使用libaio(Linux内核AIO)优化IO操作

大文件分片不同片可以分到所有的磁盘上,可以按片做热点

七层负载均衡、热点cache

分级存储和热点迁移

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_ssd_20


Swift的文件存储系统

TCOSS(taobao Cyclic Object Storage System)

基于Squid的COSS系统做的定制开发

支持裸盘热拔插

COSS对象访问导致平均2.13次IO访问

TCOSS对象访问导致平均1次IO访问

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_cdn 技术 架构_21


TCOSS存储系统

没有open和close,尽量少的读写IO

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_cdn_22


Swift热点迁移算法

三层存储(内存、SSD、SATA)

根据对象热度决定到哪一层

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_nginx_23


Tengine+Swift性能优化

集群的大文件分片缓存功能

基于HTTP分段压缩算法

利用SPDY的多路复用技术(减少三路握手和慢启动的影响、减少对本地端口的占用)

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_nginx_24


TCP协议栈优化

改进措施

*基于时间序的丢包发现机制

*主动的丢包发现机制

*自适应的初始窗口

*更激进的拥塞避免算法

*更小的连接超时时间

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_ssd_25


TCP协议栈优化效果:抗抖动

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_阿里_26


TCP优化效果:减少连接时间

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_nginx_27


页面优化:

*Trim:去除页面的空格、回车换行、TAB、注释等,减少页面的大小

*智能Gzip:某些用户的浏览器实际支持gzip但是却被防火墙或者proxy给改掉。智能gzip功能会对这个过程进行测试,从而允许gzip,减少用户传输内容的大小

*SDCH:压缩算法优化,降低传输大小

*Combo:联合多个JavaScript/CSS文件成一个请求,从而减少请求数目

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_cdn_28


安全防御

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_cdn 技术 架构_29


阿里四层防攻击系统:AliGuard

基于DPDK之上的网络框架

支持集群部署

流量牵引

四层DDOS攻击防护

DNS攻击防护

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_ssd_30


阿里七层防攻击:TMD系统架构

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_cdn 技术 架构_31


TMD一些关键技术

模块化,如防CC模块、hotpatch模块等

socketpair实现多进程间配置更新知

共享内存hash表实现黑白名单

漏桶,令牌桶算法实现QPS限流

LRU、红黑树实现CC统计算法

多线程,libev实现网络通信框架

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_cdn 技术 架构_32


TMD防CC攻击的一个例子

原页面60KB

攻击9万QPS

计算带宽41Gbps

实际节省200倍

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_ssd_33


七层防攻击:Web应用防火墙

基于Tengine的模块(WAF),高效的规模匹配引擎

防止攻击(SQL注入、XSS、web shell、...)

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_ssd_34


可运维性改进

海量域名管理

*Tengine不再依赖配置文件

*HTTP接口去configserver拿域名对应的配置

*lazy更新,只记录访问过的

*有cache时间

*失效接口

*不需要reload

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_cdn 技术 架构_35


展望

 

cdn 技术 架构 cdn技术架构阿里巴巴 pdf_cdn_36


阿里CDN持续优化

核心应用软件开发

节点架构优化

调度系统的精细化调度

运维工具平台化、系统化