阿里云发展战略

阿里云发展战略,第1张

剖析阿里云CDN技术的优化之路

一、CDN的主要用途
目前CDN主要分为静态数据内容分发、rtmp新闻媒体分发、动态资源加速、源站维护等几个方向。,其中最基本的一个就是分发静态数据内容。CDN的主要目的是分发淘宝所有图片。rtmp协议在新闻媒体的分发和应用正以非常快的速度发展。CDN的一些特性的应用,比如动态资源的加速,SSL连接,SPDY连接等。CDN的另一个功能是对源站的维护,可以根据各种安全防御降低源站的总流量。


二、CDN加速的基本原理
CDN更大的特性取决于加速。那么,CDN是如何完成各种“加速”,充分发挥其“加速”功能的呢?如下图所示,CDN有很多节点,根据网站域名通过邻近原则连接。当客户提出请求时,CDN会从源头检索文档,然后根据就近原则将文档缓存在哪个节点的网络服务器上。假设北京的客户到达北京节点只需要4ms,90%的请求实际上是立即命中网络服务器的,那么总流量的10%返回到二级缓存节点。二级缓存节点也是同样的cdn加速。假设其准确率为90%,最终只有总流量的1%到达源站。如果纯碎片返回源站很可能需要88ms,那么根据浏览CDN,时间会大大缩短,甚至4ms就可以让客户获得一个文档。是加速CDN完成的基本概念。

三。阿里CDN遍地都是
CDN加速的媒介依赖于节点,阿里CDN节点星罗棋布,如下图所示。CDN网络服务器本来是用来分发淘宝图片的。网络服务器遍布全国32个省(市、区),200个节点。一线城市的运营商都有主机房,国外甚至超过30个节点,以此展示海外客户的加速服务项目。

四。阿里CDN的应用
这几天见了一些客户。他们将阿里云CDN与业内其他知名商业服务CDN进行对比,得到的结果是阿里云CDN的平均延迟时间可以降低10%到20%左右。

阿里从2008年开始建设CDN。不经意间,阿里云已经成为全球最大的图片CDN。这大概和中国的网购习惯有关——一件商品必须用几十张图片详细说明。这使得阿里云图片CDN有可能与部分视频CDN的总流量相匹配。2014年3月起,阿里CDN宣布开启商业化商业模式。商业运营对阿里云CDN的要求和图片CDN有很大不同,这对阿里云有很多挑战。原图CDN,对于阿里云来说,主要是每年推广期产生的工作压力。至少在2012年之前,阿里云CDN唯一的日常任务就是更好的“双十一”。届时,阿里云会做很多应急预案,解决疯狂的总流量。下面这张是CDN的总流程图,可以看到从2009年到2012年,阿里云的所有水位都很满。对于阿里云CDN来说,关键的挑战在于:保证卓越的效率。比如这个节点需要把总流量的量化分析切到另一个节点,阿里云做了很多工作。此外,阿里云在节点中对手机软件的可靠性和功能做了很多改进。举个例子,现在一个节点可以服务40G的项目,但是有时候节点响应流量突然激增,你甚至赶不上进度。这就规定了你的手机软件至少要经得起40G以上的工作容量。每年阿里云都会做5次以上的压力测试。在运行满40G的情况下,连续运行一周,检查确保阿里云CDN节点不易挂机,并能再次显示更可靠的服务项目。鉴于手机软件的可信度,工作压力也很大。

逐渐从去年开始,阿里云所有精英团队的开发设计导向转向开放服务项目。逐渐从2013年开始,阿里云CDN的服务能力已经远远超过了阿里云的自购工作能力。就像阿里云的一些PE常说的,阿里云CDN精英团队大多可以坐在那里喝茶,看双十一的总流量。


如今,阿里CDN的总体目标是保证能够快速、安全、实用,并且能够帮助客户降低成本。
下面是CDN的一些重要部分:
lIP库
l调度系统软件
l缓存文件系统软件
l更新系统软件
l日志系统软件
CDN在调度之前一定要知道客户来自哪里,而阿里云这个IP库早就干了。如果你想知道一个IP来自哪里,可以使用ip.taobao.com的外部插座。为了提高准确率,阿里云会继续比对淘宝的皮卡IP,查看这个IP是否属于这个区域。目前市级的准确率能保证96%左右。ECS客户应该能够完全免费启用阿里云IP库的socket。

现在CDN有两个层次可以进行调度。这是一个地区的定义。比如在电脑浏览器中输入一个www.taobao.com,域名注册查询请求就会提交给运营商本地的DNS网络服务器。DNS网络服务器有一个迭代更新检查的全过程,最后到调度管理中心。网络服务器将根据源IP进行调度。比如你是北京电信DNS的IP,你会被调度到北京电信的主机房。第二,CDN是可扩展的,调度管理中心时刻监控着所有节点的物理状况。一旦它发现这个节点有任何问题,就会把客户转移到另一个节点。

图为cdn节点的缓存文件系统软件。LVS是4层代理,Tengine是开发3层交换机的关键,swift是高效的CDN加速,用于缓存静态数据文件。Tengine和Swift进行一致哈希,可以提高准确率。还有一些其他的 *** 作设备,也更新了,配备了这个功能。

图中显示的是Swift的缓存文件结构,而不是逻辑。如今,阿里云可以保证运行内存,SSD,SATAL3缓存,可以纳入各种规格的文档。阿里云的网络服务器既可以缓存图片,也可以缓存小视频和大文件。热目标会自动提升到运行内存,冷目标会被淘汰到SATA。为了更好的完善IO特性,阿里云在没有应用系统文件的情况下,立即应用所有裸硬盘。在裸盘里,阿里云完成了Squid的COSS系统文件。COSS系统文件都是一个条带来进行IO写的实际 *** 作。阿里云8M作为Stripe,新到的文档追加到Stripe中,每次都用8M写,可以提高IOPS。条带满的时候,写SSD的时候,看看原创内容是不是热的。如果是网络热点,放入运行内存。如果是冷的,就换成运行内存。


去年,阿里CDN逐步对外开放后,客户迅速增加。所配备的系统软件原有的配置文件管理方式已经不能考虑业务流程需求。所以阿里云开发设计了一个负载配置控制模块,是懒人的。其可逆性具有突出的实际效果。虽然阿里云上有几万个网站域名,但是在一个节点上,阿里云发现服务项目中只有一两千个网站域名,所以按需加载的方法是好的。此外,阿里云也做了很多改进。10万个网站的域名只占500兆运行内存,效率很高。此外,阿里云还可以保证各大网站的分钟分发。总体来说,阿里云的配置可以保证高可靠性和运营管理。

有时候CDN上的缓存升级了,想删除。更新必须由各大网站分发,各大网站的每一个设备、每一个缓存节点都要刷。因为不知道文件存放在哪里,都是广播节目。现在,阿里云可以根据调度频道一栏,刷卡减少一定量的更新。此外,阿里云增强了组合效果。比如现在有100个URL被更新,可以合并后一次性提交给缓存网络服务器,这样就减少了更新的QPS。另外,Swift应用了正则表达式和文件目录更新,你只要提交一个请求就可以刷很多内容。从统计学的角度来看,全球99%以上的节点都能保证一分钟更新。


现阶段,阿里云已经完成了大量的日志收集和数据分析系统。阿里云使用syslog收集日志。40G满的时候,syslog的丢包率非常严重。尤其是对外开放商业后,日志必须收费,对可信度的要求非常高。为此,开发设计了一种日志传输和实时数据分析系统。另外内部也做了一些改进,比如组合功能。将几个日志组合起来,然后发送到日志网络服务器。LZO用于减少分流,最后汇集到管理中心。现在,阿里云可以保证十分钟内将生成的日志传输到OSS免费下载。这个速度在行业内是非常快的。现在每天有几百吨的浏览日志在阿里云所有CDN的量级,最后会被引到阿里云ODPS进行数据分析,比如客户行为分析。


阿里CDN对TCP协议进行了改进。比如阿里云已经实现了基于时间序列的丢包率检测系统。TCP包是有编号的,阿里云根据编号进行查询。如果找到高编号TCP的ACK,则不会发送低编号的ACK。阿里云会使用快速重传系统,保证阿里云的低阶丢包可以快速发送。最终,阿里云通过整合响应式原始对话框等单边改进措施,将小目标的平均RT降低了20%以上。


该功能是优化网页内容,即根据前端开发和推广规则,调整自动化技术的内容。例如减少网页中的请求总数。阿里云会做一些静态的数据资源文件合并。还有一种方法可以最小化网页的页面大小。阿里云会主动删除页面的白字空,还有智能的Gzip。根据主动JS异步请求进行检测,即使没有Accept-Encoding头,也会主动减少。这里的CDN也是同学在一旁做的,比如做一个UA的数据库查询来存储各个用户代理的屏幕分辨率,针对不同的屏幕分辨率选择不同规格的不同图片。

实际上,CDN不仅加速了静态数据内容的HTTP,还加速了TCP协议。如图所示的例子,阿里云最近发现中国台湾省的客户浏览淘宝的网页非常慢,尤其是中国到海外的链接很差。阿里云在中国台湾省有一个节点,中国香港有一个节点,上海有一个节点。从台湾省到上海需要200ms,从台湾省到香港需要20ms,从香港到上海需要60ms。阿里云发现从中国台湾省到中国香港回家更短,于是做了CDN中间的路由器升级,加快TCP连接。在这个图的末端,会有很多节点,也就是一个有向图。阿里云在每个CDN节点上做彼此节点间的互联网检测,检查所有互联网的网络丢包和定时,用加权值构建报告。然后阿里云计算最短路径算法。

流媒体服务器的业务流程和图片有很大不同。视频的图像大小只有30到50K,但视频的平均图像大小很可能是500K到2M。首先,流媒体服务器对CDN节点的总流量影响会非常大。按照传统的DNS调度,缓存文件是有时间的,一般持续5到10分钟,甚至有些节点无法调整。在这里,阿里云设计了一种基于HTTP协议的集中式调度方式。当需要某个URL时,CDN会根据节点的负载情况,立即返回资源或者跳转到302进行精确调度。基本上没有等待时间,甚至各个节点的机器都可以互相调度。


最近阿里云这边在做无线网络加速的产品,现在用的是HTTPDNS。无线APP有自己的移动客户端,HTTPDNS集成在APPSDK中。APP启动时会按时发出多线程请求,到管理中心要求域名解析,然后存储IP。下次真正提出要求的时候,可以马上提出来。所以HTTPDNS可以节省域名解析的延迟,防止国内一些运营商的流量劫持。


另外,SPDY的推广做好了。多渠道推广有什么优势?一种是复用连接,减少线程数量,提高网页打开率。就手机淘宝的工作体验来说,做SPDY链接复用,加载网页的时间可以减少20%到30%。


最后一个是安全的作用。现在CDN展示了4、7层DDoS安全防御和WAF,可以保护客户免受攻击,展示了一站式解决方案。CDN可以展现源站的维护功能,静态数据资源CDN可以缓存文件。最后落入源站的总流量是收敛的,总流量很小。现在的保安都不收两次了。

这是一个7层攻击的例子。一些客户经常说,如何防止攻击的总流量是我的钱。事实上,攻击预防并不是完全免费的。这是我昨天拍的照片。这是一次7层楼的袭击。突然,对于总攻击流量为15万QPS的原华明镇,其响应大小为15KB。可以看到,如果开启安全功能,CDN已经阻挡了99%以上的攻击,并保证了其所有正常服务项目,帮助客户节省了17Gbps的总流量成本。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/785378.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-04
下一篇 2022-05-04

发表评论

登录后才能评论

评论列表(0条)

保存