揭秘阿里CDN核心技术(http://wenku.baidu.com/view/ffc63474b4daa58da1114a45.html?re=view)
中国专业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)相关推荐
- 阿里技术分享:深度揭秘阿里数据库技术方案的10年变迁史
本文原题"阿里数据库十年变迁,那些你不知道的二三事",来自阿里巴巴官方技术公号的分享. 1.引言 第十个双11即将来临之际,阿里技术推出<十年牧码记>系列,邀请参与历年 ...
- 钉钉头像大小设置 阿里cdn尺寸截取参数设置
默认api的接口返回的avatar字段,是原始图片大小字段,尺寸和空间都是原始大小,如果想节省流量或统一尺寸,可以用阿里cdn自带的尺寸截取功能, 比如钉钉头像 avatar字段 返回值为原始大小 h ...
- 分区文件http://wenku.baidu.com/view/d839d1868762caaedd33d4b7.html
http://wenku.baidu.com/view/d839d1868762caaedd33d4b7.html
- http://wenku.baidu.com/view/63e7b8270066f5335a812142.html
---恢复内容开始--- http://wenku.baidu.com/view/63e7b8270066f5335a812142.html 迷宫最短路径问题解析 有一个二维数组,0表示路,-1表示墙 ...
- https://wenku.baidu.com/view/1f9138e903d8ce2f01662306.html
https://wenku.baidu.com/view/1f9138e903d8ce2f01662306.html
- 免费下载 | 全景揭秘阿里文娱智能算法
简介: 文娱大脑究竟能有多"智能"?答案是全生命周期的人工智能技术!从内容智能到增长营销,全景揭秘阿里文娱智能算法,就在这一本! 文娱大脑究竟能有多"智能"?答 ...
- 揭秘阿里秒级百万TPS平台架构实现
转载自 揭秘阿里秒级百万TPS平台架构实现 导读:搜索离线数据处理是一个典型的海量数据批次/实时计算结合的场景,阿里搜索中台团队立足内部技术结合开源大数据存储和计算系统,针对自身业务和技术特点构建了 ...
- 揭秘阿里百亿级云客服实时分析架构是怎么炼成的?
揭秘阿里百亿级云客服实时分析架构是怎么炼成的? 淘宝.天猫每天有上亿个不同的买卖家进行对话,产生百亿条聊天记录.对客服聊天记录的实时分析是实现智能客服的基础.本文主要分享云客服的整体架构,包括实时分析 ...
- 深度揭秘阿里云 Serverless Kubernetes
作者 | 陈晓宇(阿里云技术专家) 策划 | 褚杏娟 伴随着云原生的发展,从早先的单机版 Docker 到 Kubernetes 的编排领域的一统江湖,再到云上托管 Kubernetes,技术风雨变化 ...
- https://wenku.baidu.com/view/35c88b375acfa1c7aa00ccca.html--swot
https://wenku.baidu.com/view/35c88b375acfa1c7aa00ccca.html 转载于:https://www.cnblogs.com/anruy/p/97519 ...
最新文章
- 对于Python开发者,这本书绝对算得上此生必读之作
- python--函数
- Android模仿京东登录注册,Android:布局实例之模仿京东登录界面
- python下载word文件-python-docx操作word文件(*.docx)
- 中石油2018年秋季C语言 试卷答案,[石油华东]《数据采集系统》2018年秋季学期在线作业...
- MySQL - 践行索引优化
- [APIO2015]巴厘岛的雕塑[按位贪心+dp]
- 我又来学ElasticSearch了。。。
- mysql 索引过长1071-max key length is 767 byte
- 【动态规划 回文串11】LeetCode 516. Longest Palindromic Subsequence
- 在Kubernetes上使用Sateful Set部署RabbitMQ集群
- 虚拟机修改默认SSH端口号为10022
- springboot 当前无法使用此页面(无法打开页面)
- Intel Xeon Cooper Lake处理器CPU主频睿频性能详解
- 【转】浅谈程序猿的职业规划,看你如何决定自己的未来吧。
- gazebo添加末端六维力传感器
- 安卓桌面壁纸_火莹视频桌面:好玩的动态桌面壁纸软件,让你的桌面动起来
- 阅文集团内容中心id生成器的设计与实现
- substance的使用示例(转)
- 容器服kubernetes_10个Kubernetes发行版引领了容器革命
热门文章
- android pay和hce区别,一文带你看懂闪付和云闪付的区别
- IE 不兼容 justify-content:space-evenly 的解决办法
- Pytorch拟合心形函数
- 年薪200万是怎样的一种体验?
- pvs安装配置_配置警告下一代插件以与PVS-Studio集成
- 从高考到程序员,一生无悔的选择,码农的成长之路
- Windows 安装 Docker
- 多校9 HDU-6164 Dying Light 几何数学
- 敲开脑洞(一),如何摆脱痛苦,记自己的短期修行
- 计算机两个硬盘如何区分,双硬盘电脑怎么设置主从盘?