CDN浅谈

   好久没有写过文章了,文笔总结都有点生疏了,工作这么长时间了,想想这一年好像没啥成果,简单写写我对CDN的一些了解吧,CDN大家可能都了解,有描述不当的地方大家多多包涵,多多提出批评意见,感谢理解。

   首先说说什么是CDN,当然百度百科上也有,我就大概简述一下而已,CDN(content delivery network)即内容分发式网络,其基本的思想无异于加快网站访问速度,规避网络传输瓶颈环节,解决南北互联互通问题和各isp之间的网络传输问题等。

   1、我们为什么使用CDN?

   我们为什么使用CDN呢?是钱多没地用吗?当然不是,前面也说过CDN的基本思想,这里展开赘述一下;

   (1)、首要的就是解决南北互联互通问题

    大家都知道中国的互联网现状是什么样的,联通、电信分庭抗礼,中间还有移动、铁通、长城宽带、教育网等小isp的掺和,这直接导致了几方诸侯的厮杀攻伐,譬如公网链路之间跨运营商延迟高、丢包、网络不通等问题,直接影响的是我们广大的终端网民以及网站的体验等;

   (2)、解决网站高流量、大并发时的部分问题

    我们都知道任何一台物理设备的处理能力都是有限的,当网站突发的流量增大,并发增多时,很可能现有的基础网络架构支撑不住突发式的上量,直接导致网站无法打开,访问速度变慢,影响用户体验。

    如果我们考虑增加过多的设备和带宽来应对突发情况时,往往冗余设备和带宽在闲时处于闲置状态造成资源的浪费,或者说突发流量过高,突发的带宽费用远远大于使用CDN的价格了,这个时候就体现出CDN的好处了,即使偶尔突发性的上量,我们也不必要过于担心,因为我们的静态文件等已经缓存到了CDN节点上,我们现有的架构能够相对轻松的来完成突发情况下的动态数据请求处理,而突发的带宽上涨也直接作用于了CDN上,我们网站出口带宽相对来说也基本处于能够支撑状态;

   (3)、提升访问速度

    使用CDN最重要的其中一点就是提升网站的访问速度,试想当你打开一个网站花费了10秒钟的时间时,你还想在次访问吗?可能10秒钟还在忍受范围内,假如说20秒呢?你等得及吗?在试想你的网站打开速度慢,访问速度慢,你的竞争对手网站无论打开速度还是访问速度来看都要比你的体验好,你认为这种情况下你的网站流量还会一直保持不下吗?

   CDN大家都知道会缓存内容,然后分发给终端网民,这样终端网民无论从物理距离上还是跨运营商情况上来看都有了一个很好的解决方案,排除一些因素的干扰,理论上来说加速之后一定会比源站直接服务效果要好。

   (4)、提高网站的可用性

    使用CDN之后可以提高网站的整体可用性以及访问效果,用户体验,静态到CDN,这个时候源站服务器就会更加的轻载,节省更多的资源来处理其它非缓存的动态情况,减少磁盘、数据库等I/O,当出现***时还可以阻挡一部分***产生的资源浪费,避免源站直接遭受影响,减小故障影响,这个相信大家都比较清楚,不需要多说,当然大量的ddos到来时CDN帮不帮你扛就是另一回事了,这个问题需要考虑的因素就更多了,不祥谈。

   (5)、降低整体运营成本

    我们都知道一线城市的机房资源相对二线城市来说是比较贵的,尤其是BGP资源,基本在400左右M/月,网站访问大的情况下,带宽成本也是很高的,而自建CDN的话成本投入更高,一般企业也是没有这个预算来做这事的,当然对于非互联网类型的公司来说就更难了,这也是为什么淘宝、京东等电商类公司在有自建CDN的情况下还使用第三方CDN提供商来服务了,总体来看有效减少了运营成本,不需要选点、买带宽、买服务器、请运维维护、招研发二次开发,总结来说就是省时省力省心。

   为什么使用CDN,基本上就是以上几点了,当然扛***我就不拿来单独说了,没什么意义,小量的***还好说,大量***比较严重的时候就不好说了...

   CDN适用的场合?

   直接说就是适用任何有需要的网站,不管互联网还是非互联网企业,只要有自己的网站,只要想加速,只要有需求,只要有预算,就都适用。

   CDN的组成部分?

   简单的说就是CDN由终端网民、DNS、缓存服务器、源站几部分组成,当然详细的这里就先不赘述了,以后有时间在分开来写吧。

   常见的加速手段?

   1、网络层面来看,构建自己的网络架构,好比构建出来一个高架桥,用来解决互联互通问题,譬如使用BGP、双通节点、***隧道、物理直连线路等

   2、系统层面,优化内核参数,开发自己独有的内核版本或者说定制化内核,修改tcp/ip算法,优化tcp/ip协议等

   3、应用层方面,二次开发DNS、squid、haproxy、nginx等,提高应用程序的性能,处理能力,缓存命中率,定制化需求,tcp的复用,连接池的使用等等。

   4、架构方面,这个就不多赘述了,架构上都是根据自身场景来设计的,常见的CDN架构简单的就是上下层结构了,squid自身的集群功能很少用,这种架构不用多说吧,想想就知道为啥了。

   国内CDN厂商?

   这个相比了解CDN的都知道,国内厂商也就那么几家,蓝汛、网宿、帝联、快网等,总体来说CDN市场被蓝汛和网宿各占40%(当然这个数据我是没有统计的,没有权威性,只不过是从侧面了解到的)吧,剩下的由其它CDN厂商瓜分了,隐隐感觉网宿有超过蓝汛的趋势...

   第三方即时监测?

   这个第三方监测的也不过就那么几家,大家可能多少也听过,基调、博瑞、gomez、ip-label等。

   暂时就想到这么多,等后面文章在谈谈其它的吧,我在想想写点什么,大家有啥问题想了解的也可以说出来,我尽量写写看。

   计划后面写写CDN的原理啦,squid和http相关的文章之类的,感觉没啥会的东西,一问三不知的,基本没什么好写的,CDN详细的内部架构我就不写了,东西很少,大家可以了解下SDN,未来的CDN发展趋势逐渐向移动终端开始转移了,PC端发展了这么多年基本技术都差不多了。

   先这样吧~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章