中国专业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服务)

揭秘阿里CDN核心技术(http://wenku.baidu.com/view/ffc63474b4daa58da1114a45.html?re=view)相关推荐

  1. 阿里技术分享:深度揭秘阿里数据库技术方案的10年变迁史

    本文原题"阿里数据库十年变迁,那些你不知道的二三事",来自阿里巴巴官方技术公号的分享. 1.引言 第十个双11即将来临之际,阿里技术推出<十年牧码记>系列,邀请参与历年 ...

  2. 钉钉头像大小设置 阿里cdn尺寸截取参数设置

    默认api的接口返回的avatar字段,是原始图片大小字段,尺寸和空间都是原始大小,如果想节省流量或统一尺寸,可以用阿里cdn自带的尺寸截取功能, 比如钉钉头像 avatar字段 返回值为原始大小 h ...

  3. 分区文件http://wenku.baidu.com/view/d839d1868762caaedd33d4b7.html

    http://wenku.baidu.com/view/d839d1868762caaedd33d4b7.html

  4. http://wenku.baidu.com/view/63e7b8270066f5335a812142.html

    ---恢复内容开始--- http://wenku.baidu.com/view/63e7b8270066f5335a812142.html 迷宫最短路径问题解析 有一个二维数组,0表示路,-1表示墙 ...

  5. https://wenku.baidu.com/view/1f9138e903d8ce2f01662306.html

    https://wenku.baidu.com/view/1f9138e903d8ce2f01662306.html

  6. 免费下载 | 全景揭秘阿里文娱智能算法

    简介: 文娱大脑究竟能有多"智能"?答案是全生命周期的人工智能技术!从内容智能到增长营销,全景揭秘阿里文娱智能算法,就在这一本! 文娱大脑究竟能有多"智能"?答 ...

  7. 揭秘阿里秒级百万TPS平台架构实现

    转载自  揭秘阿里秒级百万TPS平台架构实现 导读:搜索离线数据处理是一个典型的海量数据批次/实时计算结合的场景,阿里搜索中台团队立足内部技术结合开源大数据存储和计算系统,针对自身业务和技术特点构建了 ...

  8. 揭秘阿里百亿级云客服实时分析架构是怎么炼成的?

    揭秘阿里百亿级云客服实时分析架构是怎么炼成的? 淘宝.天猫每天有上亿个不同的买卖家进行对话,产生百亿条聊天记录.对客服聊天记录的实时分析是实现智能客服的基础.本文主要分享云客服的整体架构,包括实时分析 ...

  9. 深度揭秘阿里云 Serverless Kubernetes

    作者 | 陈晓宇(阿里云技术专家) 策划 | 褚杏娟 伴随着云原生的发展,从早先的单机版 Docker 到 Kubernetes 的编排领域的一统江湖,再到云上托管 Kubernetes,技术风雨变化 ...

  10. https://wenku.baidu.com/view/35c88b375acfa1c7aa00ccca.html--swot

    https://wenku.baidu.com/view/35c88b375acfa1c7aa00ccca.html 转载于:https://www.cnblogs.com/anruy/p/97519 ...

最新文章

  1. 对于Python开发者,这本书绝对算得上此生必读之作
  2. python--函数
  3. Android模仿京东登录注册,Android:布局实例之模仿京东登录界面
  4. python下载word文件-python-docx操作word文件(*.docx)
  5. 中石油2018年秋季C语言 试卷答案,[石油华东]《数据采集系统》2018年秋季学期在线作业...
  6. MySQL - 践行索引优化
  7. [APIO2015]巴厘岛的雕塑[按位贪心+dp]
  8. 我又来学ElasticSearch了。。。
  9. mysql 索引过长1071-max key length is 767 byte
  10. 【动态规划 回文串11】LeetCode 516. Longest Palindromic Subsequence
  11. 在Kubernetes上使用Sateful Set部署RabbitMQ集群
  12. 虚拟机修改默认SSH端口号为10022
  13. springboot 当前无法使用此页面(无法打开页面)
  14. Intel Xeon Cooper Lake处理器CPU主频睿频性能详解
  15. 【转】浅谈程序猿的职业规划,看你如何决定自己的未来吧。
  16. gazebo添加末端六维力传感器
  17. 安卓桌面壁纸_火莹视频桌面:好玩的动态桌面壁纸软件,让你的桌面动起来
  18. 阅文集团内容中心id生成器的设计与实现
  19. substance的使用示例(转)
  20. 容器服kubernetes_10个Kubernetes发行版引领了容器革命

热门文章

  1. android pay和hce区别,一文带你看懂闪付和云闪付的区别
  2. IE 不兼容 justify-content:space-evenly 的解决办法
  3. Pytorch拟合心形函数
  4. 年薪200万是怎样的一种体验?
  5. pvs安装配置_配置警告下一代插件以与PVS-Studio集成
  6. 从高考到程序员,一生无悔的选择,码农的成长之路
  7. Windows 安装 Docker
  8. 多校9 HDU-6164 Dying Light 几何数学
  9. 敲开脑洞(一),如何摆脱痛苦,记自己的短期修行
  10. 计算机两个硬盘如何区分,双硬盘电脑怎么设置主从盘?