一说到CDN,就感觉心情很复杂,曾经从一个完全不入门的小白,短短的2年内,将运营商的CDN业务从零开始做起,搞得风风火火,在公司云业务发展的初期,CDN业务占据了很大一部分的收入。可不曾想到,短短几年内,国内以网宿为代表的传统CDN厂商(包括运营商CDN业务),被阿里云为代表的互联网公司以低价疯狂掠夺CDN市场,将流媒体业务CDN加速的价格从20多元/M/月,一直打压到现在的几块钱!然而,市场风云变幻,以5G+AR/VR+边缘计算的新兴业务,将会给流媒体CDN加速的业务带来怎样的市场规模?未来又是谁家独领风骚?我们拭目以待!
今天我们开启缓存篇章的有关CDN系列内容,大概也会分几个部分来阐述。
我们先从CDN的基础开始讲起。
· 01 ·
什么是CDN
CDN,全称Content Delivery Network,即内容分发网络,CDN是构建在网络上的内容分发网络,依靠部署在各地边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率,核心技术是内容存储和分发技术。
如果是CDN小白,估计看了上面的一段CDN的定义,一头雾水,没关系,我们举一个关于制造厂与仓库的例子:
有一家生产电子产品的制造厂总部在北京,制造厂在全国各地都建有仓库,这样各地营业网点可以直接从最近的仓库拿货,保证销售网点的库存。试想如果没有仓库情况下,在同等运力情况下,全国营业网点都需要往北京取货,仅仅考虑取货时间,如营业网点在天津,取货往返大概需要2个小时;如营业网点在深圳,及时发顺丰也要两天。对于每个营业网点来说,都希望能最短时间拿到货,来补给网点的库存。仓库作用是啥呢,虽然电子产品制造厂在北京,但因为有了各地仓库,让各个营业网点取货时间大致相同。现在我们类比一下CDN,假设业务服务器在北京,服务器上有一些视频文件,服务器会把热点的视频分发到分布在全国各地的CDN节点(相当于各地仓库),这样各地的用户访问热点视频的时候,就能直接就近从CDN节点访问,让全国各地用户观看视频的访问时间大致相同,不会因为地域性的不同,看到视频的时间差距较大。从仓库选址到最后建成,考虑因素非常多,例如当地土地价格,人力成本,运输成本,道路交通等等。这里仅仅单纯考虑如何让各个营业网点取货时间大致相同。最简单方法是各个地市都建立一个仓库,这个问题就解决了。但是这个方案好不好呢,我们目的是让营业网点取货时间大致相同,由于地市仓库到北京总部距离远近各异,如果翻山越岭,长途跋涉,路上抛锚,修车,延误地市仓库补给,最终导致营业网点取货延迟。为了降低这类风险,公司计划继续增加仓库建设,新增大区仓库,例如华北,东北,西北,华南,西南,华东五大大区,这样就形成了多级仓库系统。营业网点->>>地市仓库->>>大区仓库->>>总部北京改进后的方案,保证各个运输线路缺货时间大致相同,进而保证全国各地营业网点取货时间。类比CDN系统,大概也是这么个建设仓库架构演进,层层收敛汇聚,保证全国用户看到热点视频的时间大致相同,如下图是常规的CDN系统架构图:
· 02 ·
CDN属于云计算吗?
CDN业务最早的定位是作为IDC的增值业务,是基于IDC的机架和带宽基础上,通过CDN平台的复用技术,在不同的时间段进行带宽资源的分配,让闲置的带宽资源能够充分利用起来,实现资源的复用。后来随着云计算兴起,发现CDN的特性其实是完美的覆盖了云计算的五个关键特性:CDN服务规模可快速伸缩,可以自动适应业务负载的动态变化。对于客户来说,可以认为CDN服务提供商能够提供的带宽是没有上限的,能够满足突发流量的需求。CDN全网的节点通过中心节点对全网的带宽资源统一调度,全网的带宽资源以共享资源池的方式统一管理。大型的CDN服务商全网的带宽资源能够达到TB级,强调规模和资源的动态调度和复用。CDN是标准的按需服务的模式,并可根据用户需求,自动分配资源,而不需要系统管理员干预。客户可以通过控制台监控自己的资源使用量,并根据资源的使用情况对服务计费。用户无论使用何种终端设备(如PC电脑、笔记本电脑、智能手机等)都能随时随地通过互联网访问CDN提供的服务。总结一下:云计算是强调对CPU计算资源的复用,而CDN强调的是对带宽资源的复用。
· 03 ·
CDN的作用:不仅仅是提升访问性能
互联不互通、区域ISP地域局限、出口带宽受限制等种种因素都造成了网站的区域性无法访问。CDN加速可以覆盖全球的线路,通过和运营商合作,部署IDC资源,在全国骨干节点上,合理部署CDN边缘分发存储节点,充分利用带宽资源,平衡源站流量。CDN的负载均衡和分布式存储技术,可以加强网站的可靠性,相当无无形中给你的网站添加了一把保护伞,应对绝大部分的互联网攻击事件。防攻击系统也能避免网站遭到恶意攻击。当某个服务器发生意外故障时,系统将会调用其他临近的健康服务器节点进行服务,进而提供接近100%的可靠性,这就让你的网站可以做到永不宕机。使用CDN加速可以实现网站的全国铺设,你根据不用考虑购买服务器与后续的托管运维,服务器之间镜像同步,也不用为了管理维护技术人员而烦恼,节省了人力、精力和财力。CDN加速厂商一般都会提供一站式服务,业务不仅限于CDN,还有配套的云存储、大数据服务、视频云服务等,而且一般会提供7x24运维监控支持,保证网络随时畅通,你可以放心使用。并且将更多的精力投入到发展自身的核心业务之上。
· 04 ·
看透CDN的本质
CDN本质其实是一种大规模分布式多级缓存系统,为啥这样说呢?我们知道CPU有三级缓存,L1\L2\L3,越是靠近CPU,缓存的性能越快,受制于成本,容量越小。我们在给客户的业务系统设计云端的存储架构的时候,也会考虑多级存储,比如热点数据我们会放在性能较好的SSD块存储上,冷数据我们会放在云存储上,归档数据我们会放在归档存储上,存储的访问性能逐级下降。对于CDN节点的存储来说,一般也是采用分级存储,比如淘宝的CDN,采用了SSD + SAS + SATA混合存储,图片随着热点变化而迁移,最热的图片存储在SSD上,中等热度的存储到SAS,轻热度的存储到SATA。通过此种方式,能够很好的结合几种存储介质的成本与优势。对于CDN系统来说,整体的架构,我们知道一般是三级架构:中心节点缓存了最多的业务数据,会分发到区域节点,再由区域节点分发到边缘节点,属于三级缓存系统。其次,我们要了解分布式系统的特性,以及CDN是否符合分布式的特性。
- 分布性:分布式系统中的计算机可以在空间上任意分布。CDN节点不仅仅在空间上分布在全国各个城市,还要覆盖三大运营商,外加教育网、广电网等网络,甚至还需要满足海外CDN的需求。
- 并发性:在一个分布式系统中,会经常涉及到并发操作一些共享的资源。在CDN系统中,可能会涉及到大量用户并发访问边缘节点的热点资源;
- 容错性:对于组成分布式的计算机,随时都有可能发生任何形式的故障。在CDN系统中,各个节点都会考虑冗余的服务器和存储空间来防止热点数据的丢失;
- 透明性:对于应用的访问是透明的。CDN系统中,用户不用关心我要访问哪些CDN节点,所有的访问都是由后台的调度系统来统一管理。
最后,我们说CDN是大规模的缓存系统,是因为国内的主流的CDN厂商,他们的边缘节点、骨干节点都是分布在全国各地,拥有几百个节点、TB级的带宽资源,对于缓存系统来说,真的可以算是大规模系统了!
*原创文章,禁止转载,如需引用,需征求作者同意,并注明出处。
作者:老刘论道
标签:二十年IT从业经验,资深培训师/项目管理师/云计算架构师/数据库达人
作者微信号 公众号:云计算那点事儿
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
评论(0)