中国专业CDN行业近年来呈现了迅猛增长的态势。根据国内咨询机构艾瑞的统计,从2006年至2012年,中国第三方CDN市场营收规模增长率均保持在30...

<iframe id="cproIframe_u944267_2" width="250" height="250" src="http://pos.baidu.com/acom?adn=3&amp;at=231&amp;aurl=&amp;cad=1&amp;ccd=24&amp;cec=UTF-8&amp;cfv=17&amp;ch=0&amp;col=zh-CN&amp;conBW=0&amp;conOP=1&amp;cpa=1&amp;dai=2&amp;dis=0&amp;ltr=http%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3De_Wj0AICUfxbdxoFhjMYUGkFGY3Okd8UzPqlEZYIySwoZ-5OkL0Yyk3WS5AaeM-UezwmRd4k6JgjLxXAaZOBE_%26wd%3Djava%2520cdn%2520%25E5%258E%259F%25E7%2590%2586%26issp%3D1%26f%3D8%26ie%3Dutf-8%26tn%3Dbaiduhome_pg%26oq%3Dcdn%2520%26inputT%3D1351&amp;ltu=http%3A%2F%2Fwww.5iops.com%2Fhtml%2F2014%2Fcdn_0824%2F312.html&amp;lu_161=6&amp;lunum=6&amp;n=qudao123_cpr&amp;pcs=1349x667&amp;pis=10000x10000&amp;ps=591x215&amp;psr=1366x768&amp;pss=1349x873&amp;qn=28273d685195acfd&amp;rad=&amp;rsi0=250&amp;rsi1=250&amp;rsi5=2&amp;rss0=%23FFFFFF&amp;rss1=%23FFFFFF&amp;rss2=%230000ff&amp;rss3=%23444444&amp;rss4=%23008000&amp;rss5=&amp;rss6=%23e10900&amp;rss7=&amp;scale=&amp;skin=tabcloud_skin_3&amp;stid=5&amp;td_id=944267&amp;titFF=%E5%AE%8B%E4%BD%93&amp;titFS=12&amp;titTA=left&amp;tn=text_default_250_250&amp;tpr=1426731140174&amp;ts=1&amp;version=2.0&amp;xuanting=0&amp;dtm=BAIDU_DUP2_SETJSONADSLOT&amp;dc=2&amp;di=u944267&amp;tt=1426731140134.434.725.726" align="center,center" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true"></iframe>

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

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

构建高效、安全的CDN,阿里CDN核心技术揭秘
阿里云-核心系统部 朱照远(叔度)


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


阿里自身面对的技术挑战
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亿。


阿里CDN概况:
全球20几个国家200多个节点
6Tbps服务能力储备
1机柜单节点40Gbps服务能力,20万QPS
2013年双11峰值流量3.4Tbps
处于业界技术前沿的开源技术研究及开发
从淘宝CDN到阿里云CDN


阿里云CDN特点:
稳定快速
安全防护
简单易用
节约成本


阿里CDN大图


阿里云CDN组件分层:
服务层(基础服务-静态文件分发,大文件分发,流媒体分发,应用加速;辅助服务-文件上传,内容刷新,日志分析)
应用层(全局负载均衡-Pharos,CMOS;本地负载均衡-LVS,Tengine;缓存-Swift,监控-Alimonitor,Tsar,Alibench,Kunlunjing;配置管理-Salt,Puppet)
系统层(RHEL,CentOS)
设备层(服务器,路由器,交换机,防火墙,其他专用设备)


性能优化


阿里CDN大脑:全局流量调度
LDNS,GSLB,CMOS,策略


DNS服务器:Pharos
自主研发的调度系统,可控性,协议扩展性都更好,节省采购商用设备成本
单机高性能,支持百万级别的域名
支持多级的策略调度,节点故障不会造成用户的不可用
支持EDNS扩展协议
多系统联动,与安全防御系统,刷新系统,内容管理系统联动
Portal,API,tcheck等多动管理方式


实时调度系统CMOS
数据化的调度:流量完全可控,降低抖动造成的带宽成本;LDNS级别、节点级别的流量预测,流量峰值到来前提前应对
精确、准实时的流量调度:平均误差小于15%,精度可到5M级别;单个Local DNS级别的调度;5分钟级的准实时
调度质量、准确度的提升,直接影响着用户体验
自动化的调度:只要描述高度场景,设定约束条件,自动计算,生成适应的策略,更新Pharos


Pharos+CMOS架构


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


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

关键组件:
LVS做四层负载均衡
Tengine做七层负载均衡(安全、业务逻辑处理)
Swift做HTTP缓存(高性能CACHE,磁盘-SSD/SATA)


四层负载均衡:LVS
DR模式(IN的流量经过LVS,OUT的不经过
负载均衡算法采用wrr
双LVS做Active-Active互备,中间有心跳监测


七层负载均衡:Tengine
阿里基于Nginx开发的高性能HTTP服务器(已经开源于:http://tengine.taobao.org)
一致性Hash(提高命中率、降低抖动)
主动健康检查
SPDY V3支持
SO_REUSEPORT支持(提高worker进程之间的均衡性、降低CPU使用)
热点对象发现


阿里HTTP缓存服务器:Swift
基础功能(Http/1.1协议、proxy功能;内存缓存、磁盘存储;HTTPS协议关键特性支持)
业务功能(精确purge/dir purge/正则purge;鉴权X-Referer-Acl;ESI+gzip)
运维和配置相关功能(按照域名配置的功能;if、变量支持;磁盘容错:磁盘为只读不再进行写操作及磁盘不可读将磁盘摘掉;丰富的统计信息)


Swift总体架构图
核心组件(HTTP处理引擎;回源;存储;索引;内容管理子系统)


Swift性能优化点
多线程事件驱动网络模型
减小线程间上下文切换
内存命中,一个请求只需要一个线程来处理
消除在万兆网卡上网络处理的瓶颈
304的请求没有DISK I/O
使用trie树实现快速匹配,减少ACL字符串匹配
使用完美hash计算head id,实现批量拷贝、删除响应头
使用libaio(Linux内核AIO)优化IO操作
大文件分片不同片可以分到所有的磁盘上,可以按片做热点
七层负载均衡、热点cache
分级存储和热点迁移


Swift的文件存储系统
TCOSS(taobao Cyclic Object Storage System)
基于Squid的COSS系统做的定制开发
支持裸盘热拔插
COSS对象访问导致平均2.13次IO访问
TCOSS对象访问导致平均1次IO访问


TCOSS存储系统
没有open和close,尽量少的读写IO


Swift热点迁移算法
三层存储(内存、SSD、SATA)
根据对象热度决定到哪一层


Tengine+Swift性能优化
集群的大文件分片缓存功能
基于HTTP分段压缩算法
利用SPDY的多路复用技术(减少三路握手和慢启动的影响、减少对本地端口的占用)


TCP协议栈优化
改进措施
*基于时间序的丢包发现机制
*主动的丢包发现机制
*自适应的初始窗口
*更激进的拥塞避免算法
*更小的连接超时时间


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


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


页面优化:
*Trim:去除页面的空格、回车换行、TAB、注释等,减少页面的大小
*智能Gzip:某些用户的浏览器实际支持gzip但是却被防火墙或者proxy给改掉。智能gzip功能会对这个过程进行测试,从而允许gzip,减少用户传输内容的大小
*SDCH:压缩算法优化,降低传输大小
*Combo:联合多个JavaScript/CSS文件成一个请求,从而减少请求数目


安全防御


阿里四层防攻击系统:AliGuard
基于DPDK之上的网络框架
支持集群部署
流量牵引
四层DDOS攻击防护
DNS攻击防护


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


TMD一些关键技术
模块化,如防CC模块、hotpatch模块等
socketpair实现多进程间配置更新知
共享内存hash表实现黑白名单
漏桶,令牌桶算法实现QPS限流
LRU、红黑树实现CC统计算法
多线程,libev实现网络通信框架


TMD防CC攻击的一个例子
原页面60KB
攻击9万QPS
计算带宽41Gbps
实际节省200倍


七层防攻击:Web应用防火墙
基于Tengine的模块(WAF),高效的规模匹配引擎
防止攻击(SQL注入、XSS、web shell、...)


可运维性改进
海量域名管理
*Tengine不再依赖配置文件
*HTTP接口去configserver拿域名对应的配置
*lazy更新,只记录访问过的
*有cache时间
*失效接口
*不需要reload


展望


阿里CDN持续优化
核心应用软件开发
节点架构优化
调度系统的精细化调度
运维工具平台化、系统化
总目标(给阿里云用户提供稳定、安全、易用、低成本的CDN服务)

原文出处:http://www.5iops.com/html/2014/cdn_0824/312.html

相关视频课程推荐《站长必修课:网站是怎样做出来的?》https://edu.51cto.com/sd/3be5b

【学习笔记】揭秘阿里CDN核心技术相关推荐

  1. 【学习笔记】阿里云天池龙珠计划SQL训练营-Task06:综合练习题-10道经典题目

    本笔记为阿里云天池龙珠计划SQL训练营的学习内容 链接为:https://tianchi.aliyun.com/specials/promotion/aicampsql 练习题1: 请使用A股上市公司 ...

  2. 【学习笔记】阿里天猫浏览型应用的CDN静态化架构演变

    天猫浏览型应用的CDN静态化架构演变 在天猫双11活动中,商品详情.店铺等浏览型系统,通常会承受超出日常数倍甚至数十倍的流量冲击.随着历年来双11流量的大幅增加,每年这些浏览型系统都要面临容量评估.硬 ...

  3. Datawhale学习笔记【阿里云天池 金融风控-贷款违约预测】Task2 数据分析

    阿里云天池学习赛[金融风控-贷款违约预测] 赛题数据及背景 python库的导入 国内镜像源网址及使用方法 镜像使用方法 文件读取 数据的总体了解 查看数据集中特征缺失值,唯一值等 检查缺失值 缺失值 ...

  4. 学习笔记(07):JavaWeb基础核心技术-11. 佟刚_JavaWEB_GenericServlet

    立即学习:https://edu.csdn.net/course/play/1060/15792?utm_source=blogtoedu 1.genericservlet是一个servlet接口和s ...

  5. 学习笔记(03):JavaWeb基础核心技术-4. 佟刚_JavaWEB_第一个 Servlet 程序

    立即学习:https://edu.csdn.net/course/play/1060/15785?utm_source=blogtoedu 1.创建一个java类 2.  写一个实现其中的方法 3.配 ...

  6. 阿里云CDN(内容分发网络)学习笔记day01

    阿里云CDN(内容分发网络)学习笔记day01 标签(空格分隔): linux Content Delivery Network 基于阿里云 文章目录 阿里云CDN(内容分发网络)学习笔记day01 ...

  7. 阿里云天池 Python训练营Task4: Python数据分析:从0完成一个数据分析实战 学习笔记

    本学习笔记为阿里云天池龙珠计划Python训练营的学习内容,学习链接为:https://tianchi.aliyun.com/specials/promotion/aicamppython?spm=5 ...

  8. 阿里云天池 Python训练营Task3: Python基础进阶:从函数到高级魔法方法 学习笔记

    本学习笔记为阿里云天池龙珠计划Python训练营的学习内容,学习链接为:https://tianchi.aliyun.com/specials/promotion/aicamppython?spm=5 ...

  9. 阿里云天池 Python训练营Task2: Python基础练习:数据结构大汇总 学习笔记

    本学习笔记为阿里云天池龙珠计划Python训练营的学习内容,学习链接为:https://tianchi.aliyun.com/specials/promotion/aicamppython?spm=5 ...

  10. 天池龙珠训练营广东工业-林莉子学习笔记-Task1

    本学习笔记为阿里云天池龙珠计划Docker训练营的学习内容,学习链接为:https://tianchi.aliyun.com/notebook-ai/home#notebookLabId=192992 ...

最新文章

  1. 工作发狂:Mybatis 中$和#千万不要乱用!
  2. vue build text html,Vue中v-text / v-HTML使用实例代码详解_放手_前端开发者
  3. 解决逆向工程mapper映射文件不发布问题
  4. figma下载_我关于Figma文件封面的故事
  5. 如何利用NLog输出结构化日志,并在Kibana优雅分析日志?
  6. 【上海】关于云计算,你想学习哪些知识,快让我来满足你
  7. Nicescroll滚动条插件手机端问题总结
  8. 再分享一个零成本做文库代下载赚钱项目
  9. Java Icon图标的使用
  10. 关于华为AR/HUAWEI AR Engine
  11. esp8266智能开关灯制作教程
  12. Gateway原理及实例
  13. 小黄的刷题之路(十六)——五行魔法(枚举/蛮力法)
  14. 企小码会话存档使用教程——删人提醒
  15. 更新vim8.0后,MacVim中YouCompleteMe出错
  16. Learning to Write Stylized Chinese Charactersby Reading a Handful of Examples
  17. 大数据与SQL周末读书微信群,等你来
  18. Elasticsearch:跨集群复制 Cross-cluster replication(CCR)
  19. 高性能数据库引擎 CoolHash 产品宣言 Fourinone4.0版新特性(转)
  20. springboot整合阿里云对象存储oss

热门文章

  1. OpenSSL-SNI
  2. 2022吴恩达机器学习课程——第一课
  3. python中as是什么意思_python中“as”语句的含义是什么?
  4. Linu基本知识(二)——Linux系统以及相关命令
  5. 2.2、项目管理知识体系构成
  6. cocos creator 背包bag制作
  7. 我的世界服务器怎么制作头颅,我的世界怎么刷生物头颅 生物头颅制作方法
  8. 美国四大科技巨头:苹果、微软、Facebook、谷歌的爱恨情仇
  9. 操作系统——大题——空闲分区表问题
  10. [原] Python 根据设备编号获取设备名称