阿里云cdn seo CDN是如何实现各种“加速”发挥“功用”呢?

0 195
一、CDN的用途 目前,CDN主要是分几个方向发展,比如静态内容的分发、视频流媒体的分发、动态资源的加速、源站保护等,其中最基本的是用来做静态内容分发。阿里CD...

一、CDN的用途

目前,CDN主要是分几个方向发展,比如静态内容的分发、视频流媒体的分发、动态资源的加速、源站保护等,其中最基本的是用来做静态内容分发。阿里CDN现在最大的用途是用作淘宝所有图片的分发。视频流媒体的分发功能使用,发展速度也非常之快。CDN一些特色功能的应用,如动态资源的加速,还有SSL的接入、SPDY的接入等。CDN还有一个功能是源站保护,它可以通过各种安全防御,实现源站流量的减少。

二、CDN的加速原理

CDN最大的特色在于加速。那么,CDN是如何实现各种“加速”,发挥“加速”功用呢?如下图所示,CDN有很多节点,通过域名实现就近接入。当用户发起一个请求后,CDN会回源取,然后把文件就近缓存在那个节点的服务器上。假设北京的用户到北京节点只需4毫秒,后面写了一个90%的请求其实都直接命中到了服务器,那么还有10%的流量回到了二级cache节点。而二级cache节点也是同样的缓存服务器,假设它的命中率也是90%,那么最终只有1%的流量到源站。如果纯粹回到源站可能需88毫秒,而通过访问CDN就会大大缩短时间,甚至4毫秒就可以让用户拿到一个文件。这是CDN实现加速的基本原理。

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

三、阿里CDN分布

CDN加速的载体在于节点,阿里CDN节点分布可谓星罗棋布,如下图所示。阿里CDN服务器原先主要用于淘宝图片的分发,在全国32省(市、区)均有服务器,有200多个节点,在一线城市运营商均有机房,甚至在外国也有30余个节点分布,以提供国外用户的加速服务。

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

四、阿里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节点不会挂掉,能够继续提供比较可靠的服务。这对于软件的可靠性方面,压力也是非常大的。

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

从去年开始,阿里云整个团队的开发方向就转向做对外服务。从2013年开始,阿里云CDN的服务能力已经远超阿里云自用的能力。就像阿里云一些PE所说,阿里云CDN团队基本上可以坐在那里喝着茶看着双十一的流量就可以了。

现在阿里CDN的目标是:做到能够快速、安全、易用,能帮用户减少成本。

下面是CDN的一些关键组件:

l IP库

l 调度系统

l 缓存系统

l 刷新系统

l 日志系统

CDN需要知道用户从哪里来,才能调度, IP数据库阿里云已经做了好几年。如果你们想去查一下某个IP是从哪里来的,ip.taobao.com这个外部的接口可以用。为了提高准确性,阿里云还会拿淘宝的收货IP做对比,查是否这个IP是属于这个地区的。现在在市一级的准确率能做到96%左右。ECS用户应该可以免费调用阿里云IP库的接口。

360云加速 百度云加速 阿里云cdn_wordpress cdn 阿里云_阿里云cdn seo

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

现在CDN有两个维度可以进行调度。一是地域的概念,比如说你去浏览器里面输一个,域名查询请求会提交到运营商本地的DNS服务器,DNS服务器有一个迭代查询的过程,最后到了调度中心。调度服务器会根据源IP。比如你是北京电信的DNS的IP,就将你调度到北京电信的机房去。二是CDN是有高可用性的,调度中心在不停的监控所有节点的健康状况,一旦发现这个节点有问题阿里云cdn seo,会将用户切换到另外一个节点。

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

上图是CDN节点的缓存系统,LVS是4层的代理,Tengine主要进行并进行负载均衡,swift是一个高效的缓存服务器,作静态文件的缓存用。Tengine和Swift进行一致性hash,可以提高命中率。其他还有一些控制机器,做刷新和配置这些功能。

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

上图是Swift的缓存架构淘汰逻辑。现在阿里云能做到内存、SSD、SATA三级缓存、可以适应各种尺寸的文件。阿里云的服务器既能做图片的缓存,也能做视频大文件缓存,热对象会自动上升到内存,冷对象会被淘汰到SATA。为了提高IO性能,阿里云没有使用文件系统,直接使用整个裸磁盘。在裸盘上,阿里云实现了Squid的COSS文件系统。COSS文件系统中都是一个Stripe进行IO写操作。阿里云使用8M一个Stripe,新来的文件就append在Stripe里面,每次都是8M的写,这样就可以提高IOPS。当Stripe满以后,写SSD时,看原有的内容是否热的,如果是热点,就放到内存。如果是冷的,就淘汰到内存。

去年阿里CDN开始对外应用以后,用户增加非常迅速。原来以配制文件的形式管理的配置系统,已经不能满足业务需求。于是,阿里云开发了一个加载配制模块,它是lazy的。它的局部性效果非常明显,虽然阿里云线上有几万个域名,但在一个节点上,阿里云发现也就一两千个域名在服务,所以按需加载的方式较好。另外阿里云也做了很多优化,10万域名只占500兆内存,非常高效。同时,阿里云也能做到全网分钟级别配置分发,总体来说,阿里云的配制可以做到高可靠、可运维。

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

有时,CDN上的缓存文件更新了,我要把它删掉。刷新需要全网分发,而全网的每一台机器,每一个cache节点全部要刷,因为我不知道文件存在哪里,都是广播的,而现在,阿里云按调度频道来刷,就能减少一定量的刷新。另外,阿里云增加了合并功能。比如,现在有100个URL过来刷新,可以合并为一次提交到Cache服务器,从而减少刷新的QPS。此外,Swift支持正则和目录刷新,只需提交一个请求就可以刷很多内容。现在从统计数据上看,全球节点99%以上能做到1分钟的刷新。

目前,阿里云阿里内部已经实现了海量日志搜集与分析系统。原来阿里云也是用syslog来搜集日志,在40G跑满时,syslog丢包非常严重。特别是在对外商用以后,日志需要计费,对可靠性要求非常高,所以后来就开发了一个传输日志和实时分析系统。同时,内部也做了一些优化,比如合并功能阿里云cdn seo,多条日志合并后再发到日志服务器上,使用LZO进行流式压缩,最终收集到中心。现在阿里云可以做到产生的日志10分钟传到OSS上以供下载。这个速度在业界来说是非常快的。现在,阿里云整个CDN的量级大概每天有几百T的访问日志,最终都会导入到阿里云ODPS上进行大数据分析,比如用户行为分析。

阿里CDN针对TCP协议栈的做了优化,比如说阿里云做了基于时间序的丢包发现机制,TCP的包是有序号的,阿里云按照序号来查看,如果发现高序号的TCP的ACK,但是低的没有发过来。阿里云会以更快的一个重传机制来确保阿里云低序丢失的包能够快速发过来。结合自适应的初始窗口等单边优化措施,最终阿里云将小对象的平均RT降低20%以上。

这个功能是页面内容优化,就是按照前端优化准则进行自动化的内容调整。比如说减少页面中请求的数量。阿里云会做一些静态资源文件合并。还有就是尽可能减少页面大小,阿里云会主动删除页面空白符,还有一个智能Gzip,通过主动发起JS异步请求,进行探测,即使没有Accept-Encoding头也会主动做压缩。CDN这边也在跟前端的同学一起来做,比如做一个UA的数据库,去保存每一个User Agent对应的分辨率,不同的分辨率选择不同尺寸的图片。

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

CDN其实不仅仅是静态内容的HTTP加速,还可以做TCP协议的加速。如上图所示案例显示,阿里云最近发现台湾用户访问淘宝页面非常慢,特别是从国内到国外这个链路是比较差的。阿里云在台湾有节点,香港有节点,上海有节点,台湾到上海延时有200毫秒,台湾到香港是20毫秒,香港到上海60毫秒。阿里云发现,从台湾、香港再回来反倒更短,所以做了CDN之间的路由优化,对TCP连接进行加速。这个图最终会有很多节点,就是一个有向图,阿里云在每一个CDN节点上做相互节点之间的网络探测,检测整个网络的丢包率和延时,构建出一个有权值的表格,然后阿里云去计算最短路径。

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

流媒体这个业务跟图片有很大的区别。图片的文件大小只有30到50K,但是视频的平均文件大小可能会到500K到2M。首先,流媒体对于CDN节点的流量冲击会非常大,基于传统的DNS调度有缓存时间,一般有5到10分钟的延时,甚至有一些节点都调不走。阿里云这边就设计了一个中心式的,基于HTTP协议的调度方法。当请求某个URL的时候,CDN根据节点的负载会直接返回资源或者302重定向,作精确调度。几乎就没有延时时间,甚至可以在每个节点的机器间相互调度。

最近阿里云这边在做无线加速的产品,阿里云现在使用了HTTP DNS。无线APP有自己的客户端,HTTP DNS集成在APP SDK中,当APP启动时会发起一个定期异步的请求,去中心请求域名解析,然后把IP保存下来。当下次发起真实请求时,可以直接去请求了。所以HTTP DNS可以节省域名解析的时延,也可以避免国内的一些运营商作的域名劫持。

另外一个就是做了SPDY的优化,多路优化有什么好处呢,一个是复用连接,减少连接数,提高页面打开的速度,就手机淘宝这边的经验来看,做SPDY链路复用最终是能有20%到30%加载页面时间的降低。

最后一个是安全功能,现在CDN提供了4、7层的DDoS安全防御和WAF,可以使用户免于攻击,并提供一站式解决方案。CDN可以提供源站保护功能,静态资源CDN可以缓存,最终落到源站的流量都会合并,流量是非常小的。现在安全服务是不额外收费的。

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

360云加速 百度云加速 阿里云cdn_wordpress cdn 阿里云_阿里云cdn seo

这是7层攻击的一个案例,经常有一些用户说,你们怎么防攻击的流量算我钱,实际上防攻击不是免费的。这是我昨天截的图,这是7层的攻击,突然间针对原来那个小站有15万QPS的攻击流量,它的响应大小是15KB。可以看到只要打开安全功能,CDN已经挡了99%以上的攻击,并保证它的正常服务,帮用户节省了17Gbps的流量费用。

如果你有一个小站,经过细心经营,流量慢慢变大,或者你想搞个活动,请求量会比平时多很多。你租的虚拟主机网络可能会被打 爆,导致整个网站打开变慢。想扩大带宽却发现独享带宽很贵,这个时候你可以使用CDN。

如果你有一个店铺,业务慢慢做大,客户遍布全国甚至全球,你时常收到客户的抱怨,你的网站在某个地区打开很慢。那么你可以使 用CDN。

互联网江湖险恶,你经营的网站时常遭到竞争对手的攻击或者其他不明身份人的入侵,仅仅凭借你的几台服务器,无力对抗邪恶势 力,你也没有足够的资金去雇佣安全人员。那么,你也可以使用CDN。

现代的CDN (Content delivery network),俗称内容分发网络,它提供充足的带宽、遍布全国的节点,让你的网站部署到了客户的家门口。此外,现代CDN一般都有提供全套的安全解决 方案,保护你的源站,将危险挡在墙外。

CDN是如何运行的?

一般来说,用户是这样通过CDN来访问网站的:

1. 用户是通过域名来访问网站的,然后各地用户的请求会被调配到当地的CDN节点。

2. CDN节点会从真实的源网站拿到内容,再吐给用户。如果该内容可以缓存,则会根据协议存在CDN一段时间。如果下次有其他用户再来访问CDN,就有可能拿 到缓存的内容,就直接返回了。

浅谈CDN技术的基本原理与阿里云CDN的使用1

现在互联网的攻击一般分为两种:

1. 依靠蛮力的分布式攻击,用海量的“肉鸡”不停的访问你的网站,让你的出口带宽撑满,服务器过载,不能服务。

2. 依靠巧力的渗透攻击,流量可能不大,但是危害性非常高。比如利用网站的漏洞入侵你的数据库,破解你的服务器密码。

CDN是网站的前哨,根据上述攻击类型:

1. 针对蛮力攻击,一般会构建硬件或者软件的防御工具,利用CDN海量的带宽和数据分析能力,将洪水挡在外面。

2. 防御渗透攻击,依靠安全人员充足的经验,利用规则进行入侵检测,建立起应用层的防火墙。

浅谈CDN技术的基本原理与阿里云CDN的使用2

阿里云CDN

CDN的价值就在于遍布全国的节点,强大的带宽吞吐能力。阿里云现在单点最小服务能力是10G,全国超过40余个节点,大部 分省份和运营商均有覆盖,可以帮助客户提高网站的服务体验,灵活处理突发的流量。有充满经验的技术和运营人员,保障过淘宝双11,让客户 的体验达到最佳。

阿里云CDN提供了从4层到7层的安全解决方案,只要接入CDN,就会自动开启4层防DDoS攻击,可防御400G以上的攻 击,另外也可配置选择接入应用层防DDoS和渗透攻击。阿里云有顶尖的安全技术人员日夜监控网站的风险,为客户及时修补漏洞。

云解析负载均衡

360云加速 百度云加速 阿里云cdn_wordpress cdn 阿里云_阿里云cdn seo

在大型的网络应用中,使用多台服务器提供同一个服务。平均分配每台服务器上的压力、将压力分散的方法就叫做负载均衡。 利用云解析来实现服务器流量的负载均衡,其原理就是“给网站访问者分配不同的IP地址”。

例如:有3台服务器,对应3个IP地址,分别是1.1.1.1、2.2.2.2、3.3.3.3,设置的3个A记录如下:

A www default 1.1.1.1 600

A www default 2.2.2.2 600

A www default 3.3.3.3 600

DNS负载均衡的优点是采用简单的轮循负载算法,据解析记录配置的权重轮询3个A记录(默认权重1:1:1),依次返回3个IP地址,

操作流程:

第1步:免费开启云解析,进入到域名控制台

第2步:将您要设置的负载均衡设置多个A记录解析

第3步:点击左侧负载均衡,选中域名,点开启确认即可,并根据自身需求修改权重即可

在首届阿里云分享日上,阿里云正式对外发布了企业级互联网架构解决方案,该服务由EDAS应用框架、ONS消息队列、DRDS分布式数据库组成,能有效解决企业上云后网站过载、性能瓶颈、重复开发等问题。

而由阿里巴巴集团经过6年的自主研发,基于高可用分布式集群技术的ONS云消息服务,是企业级互联网架构解决方案的典型代表。目前,ONS云消息服务每天可处理上千亿条消息,服务于阿里内部上千个应用,轻松通过天猫双十一等大促考验。外界对ONS的描述是“成熟、稳定、可靠,性能突出”,那么ONS究竟有多神?一起来探究一下。

解析阿里云的高性能消息服务ONS1

此前,一张流出的ONS产品视图证实了阿里将把自己6年来的看家武器提供给开发者。

多维度接入、轻松回溯、线性扩容

接入方面,阿里云ONS支持JAVA、C++、.NET、PHP四种语言的SDK接入,同时提供RESTful风格HTTP协议完成收发消息,另外还支持MQTT协议接入可以满足设备与设备、设备与应用间的可靠高效的通信。除了常规的延时消息,实现消息延迟投递,满足应用需要定时、延迟发送消息的需求外,依靠类XA的分布式事务架构,阿里云ONS还支持事务消息,能实现事务最终一致性。

订阅方可能常常会遇到这样的难题:当你下午2点半的时候发现12点的消息出现了错误,传统的模式下消息可能出现丢失,而人工回溯又特别费时费力,估计今晚跟女朋友的约会又要泡汤了。在阿里云ONS多维度的消息管理下,你大可放心赴约,ONS支持消息回溯消费,可以最多回溯到3天前的消息,并重新消费。此外,阿里云ONS还提供了图形化的基于WEB的管理控制台,能直观管理消息路径,随时进行回溯纠错和失败重试,精确实时反馈投递情况。最高可精确到topic维度,可以监控各topic消息堆积情况,提供报警机制。

在性能方面,阿里云ONS采用了多线程设计,提供亿级消息堆积能力,完美支持业务削峰场景。在高并发场景下能弹性扩容,1天内就能部署并验证上千个节点的大型企业专有云架构,保证消息投递的低延迟和及时性。

承诺可靠性99.99% 阿里云ONS与同类产品对比

其实对阿里云来说,再高的性能需求都不叫事,拥有6年来淘宝、天猫、双11交易链路大规模真实场景应用经验,阿里云ONS一天内完成上千亿条消息传递都成了家常便饭。虽然亚马逊AWS也有消息服务SNS,但SNS架设在国外,国内没有接入点,对国内的用户来说需要跨国网络,这就带来了稳定性和网络延迟的多重考验。商业化之后,阿里云ONS还将推出相应的机制来保证99.99%的可靠性和99.9%的可用性。

与目前流行的开源消息中间件Kafka相比,基于云服务的阿里云ONS的优势很明显,用户无需花高额的价钱购买服务器并维护,还能按量付费,适合多个场景。目前,阿里云ONS已经全方位覆盖了物联网、金融支付、电信、快递物流、广告营销、社交、手游、人力资源、视频以及互联网门户等十大领域,尤其是物联网的应用场景,每个传感器都是系统中的节点,节点之间依靠消息异步通信,天然形成了基于消息的分布式应用。

解析阿里云的高性能消息服务ONS2

本文内容来源于互联网,若引用不当或侵权,请联系我们修正或删除。

最后修改时间:
文章相关标签:
茶猫云
上一篇 2023年02月17日 15:13
下一篇 2023年02月17日 15:13

相关文章

评论已关闭