博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

看上去很美 国内CDN现状与美国对比

Posted on 2015-10-28 17:44  BradyChen  阅读(3151)  评论(0编辑  收藏  举报

CDN的理想与现实  

    多年以前,当《Kingdom of Heaven》这部史诗电影发行的时候,中国的影迷使用电驴和BT来寻找种子,而那个时候,高清也才刚刚进入电影领域,我的同事不惜用自家的电脑花费一个星期的时间去下载高清的版本。而现在,中国的影迷在使用迅雷去下载《越狱》,而每一集越狱播出以后,在20小时之内,迅雷上面就可以下载到有中文字幕的完整版本,而影迷只要半个小时就可以下载完成,他们使用的是以“CDN”为基础的所谓P2SP服务。我们在这里不需要讨论盗版的问题,我们在这里想谈论的只是互联网和CDN的改变……  

    我们要谈论CDN么?  

    互联网的改变让CDN变得不那么神秘与高深  

    CDN是个古老的东西,在互联网发展之初就已经出现了。一群MIT的精英份子发现如果要让任何地方的人都可以很快的打开自己的网站的话,就需要象在世界各地盖教堂一样,把自己的网页发布到离信众最近的地方去。所以,他们用一种简单的缓存镜像的办法实现了这种发布。最早的入主这个教堂网络的是Yahoo!那是在1998年。就像天做良缘,Yahoo!使用了当时世界上最大的CDN网络,当然现在他还是最大的。啊,忘了解释:CDN是内容投递网络(Content Delivery Network)的简称。我们可以在Wiki上面轻易找到这个单词的解释,但并不是所有人都能轻易理解CDN和它的意义,因为它是一个架接在互联网与传统电信运营商之间的看不见的桥梁。  

    让我们继续回顾互联网与CDN在那耀眼的一瞬之后的日子,互联网经历了泡沫的破裂,新模式的创新,但CDN却好像渐渐的被人遗忘了。我们熟悉的portal,垂直portal,鼠标加水泥,B2B,C2C,B2C,P2P,Web2.0,搜索,竞价排名,Page Ranking, RSS,Wiki,Meshup,podcasting,网络游戏,Social Network……那么多我们耳熟能详的名词,或者其实并不明白其中的真正意思,但在炫耀自己的互联网阅历的时候随口说出的几个里面,唯独没有CDN……直到短视频的出现。  

    当YouTube出现在世人面前的时候,人们为互联网的又一次革命而叫好,而与此同时,人们看到了在YouTube后面的一个强大的CDN支持,是这个CDN网络把YouTube的无数视频展现在人们面前,在这个时候,人们发现CDN是不可或缺的,CDN在经历了那么长时间的默默无闻以后,突然一夜间闻达于诸侯,就象君士坦丁大帝把天主教定为国教一样,大家突然认识到了一个不为人熟知的领域。但我们看到的是什么呢?君士坦丁介绍给罗马的天主教是耶稣创立时的教义么?我们所看到的CDN是MIT创立时的CDN么?  

    人们开始搜索CDN,研究CDN,发现CDN是那么的简单,可以用一页PPT就把原理讲的清清楚楚,而网络硬件的厂商也会这样和互联网的客户说,我们可以提供完整的CDN解决方案,你不需要做什么,买我们的硬件,它已经能够解决你所有的CDN问题。  

    从此,CDN变成了一个流行词汇,尤其是在高盛领投LimeLight(全球第二大CDN公司) 1.2亿美金之后,突然之间,世界各地都出现了大大小小的CDN公司,无数的投资蜂拥而至,就像那时的罗马,人人都开始信仰天主教,也许是真的信仰,也许是为了圣餐,也许是为了研究,总之,“我们都爱CDN”。  

    也许有人问:我们谈论的是同一个CDN么,或者我们谈论的不是CDN?  

    当我们在说CDN的时候,所有的公司都是谈到两个偶像,就像谈耶稣和圣母一样,一个是Akamai(世界第一大CDN公司),一个就是LimeLight。所以,阵营就分开来了,要么介绍自己是师从Akamai,要不就说自己是LimeLight的真传弟子,尽管大部分这么说的人几乎没有见过Akamai和LimeLight的网络和服务,但并不影响大家对自己的夸耀和标榜。而CDN是什么却越来越没有人关注,哪怕是LimeLight和Akamai的区别也被人忽略了。我们每一个谈论CDN的人谈论的是同一个概念么?  

    CDN是有专利的,这一点与天主教的圣经不同,CDN的解释是可以通过查询这些文件发现的。CDN在利用DNS的转授权来引导最终访问者找到最理想的缓存或者镜像站点,它是基于域名的一种服务。在不同的实现方式下,最终的定位到哪个缓存和镜像站点的策略有很大的不同。Akamai使用的是传统的基于地理位置的定位策略,在世界各地的ISP里面,都会有自己的节点,而通过智能DNS的判断,可以为用户找到离自己地理位置“最近”的节点。而LimeLight则用的是完全不同的策略,LimeLight有自己的骨干网,给访问者的节点并不是地理位置“最近”的节点,而是路由层面“最近”的节点,这一点有点像我们访问网站不通过域名而直接通过IP访问一样,它会寻找对于访问者的ISP最近的路由是哪里,用那里的节点服务于这个访问。LimeLight的策略已经在很大程度上改变了CDN的工作方式,所以,当LimeLight准备上市的时候,谁都会认为他们已经绕过了Akamai的专利壁垒,但不幸的是,之后他们还是遇到了诉讼的麻烦,或许因为DNS转授权是无法改变的……  

    在这样的壁垒下面,任何做CDN的公司都好像要面对宗教法庭一样,要么被烧死,要么就皈依。所以,有好事者想我们如果使用其他的方式做CDN该有多好?我们既然可以把驴弄进贵州,为什么不能把P2P融进CDN?我记得一位Akamai的高管对我说过,那不是CDN,CDN是透明的……,所以,让我们忘了P2PCDN吧……。也许还没有人搞清楚P2P和CDN的关系,那么Cloud呢?也许是个好主意。但实际上客户已经在自己发展他们认为的CDN了,其中也包括所谓的P2P CDN。  

    那么CDN真的象我们想象的那么美好么?就像天国王朝里面的圣地?  

    当年的《天国王朝》,无数的十字军涌向耶路撒冷,那里是天国,是一个可以让灵魂升华与遍地黄金的地方,但生活在圣城的人们却发现事实与理想相去甚远……,现在人们涌向CDN,是因为它是一个看起来很美的行业,但实际上如何呢?  

    自从CDN成为一个业内的大众词汇,CDN服务就像卖白菜一样了,几乎没有人关心你的CDN和别人的CDN有什么差别,只是问多少钱1M,多少钱1G,好用么?回答的也是那么的合乎情理:你可以试试,不好不要钱。  

    另一方面,CDN客户的流失率从来没有下过10%,高的公司可以达到20%-30%,测试客户更是今天测,明天走。正是因为这样,客户基本上找不到满足要求的CDN公司,从而让很多人开始质疑CDN本身有问题,甚至突然觉得CDN应该是一个夕阳产业。  

    好在中国但凡叫得出名字的CDN公司,这几年的收入都是翻翻的,虽然利润少的可怜,而且那些利润也不是从CDN业务中获得的……  

    但我们同时发现在美国的Akamai却有着不同的表现,2007年6亿美金的销售额,1亿美金的纯利润,毛利更是超过40%,2008年至少有30%的成长。难道美国是CDN的天国,而中国就是被异教践踏的土地?还是我们并没有看到CDN真正的一面?就像柏拉图所描绘的山洞,我们看到只是火光照耀的影子?  

    事实上,互联网出现以来,只有CDN是没有海外公司进入中国市场的互联网业务,而正是这样的安排或者壁垒,让中国的CDN与海外的CDN有着巨大的差别。  

    差别?差距,还是用差别吧。  

    (美国的CDN与中国CDN的对比)  

    在美国,CDN领域里面会有这样一些分类:静态内容的加速,动态内容的加速,大文件下载加速;对不同的客户类型,还会有不同的系统与之对应,比如SSL加速,Long Tail加速,Streaming加速;而对不同行业客户也会有不同的加速系统,比如媒体类客户加速,电子商务类客户加速,软件与IT行业客户的加速等等。甚至于对不同的客户规模也会有不同的系统与之对应:大流量客户的加速,中小客户的加速,甚至个人客户的加速;CDN的系统是一个庞杂而专业性非常强的领域。在这些领域与系统中,所有的功能甚至网络都是不一样的,配置的系统也是不一样的。  

    但在中国,这些系统的差别大部分是在售前的嘴里和不知所云的白皮书里面。而网络都是一个,功能都是一个,实现方式也是一个,所以就会出现如果一家CDN公司做不了一个功能,几乎所有的CDN公司都做不到,因为大家都是用最“通用的方式构建自己的通用CDN”,从而使中国CDN成为一个从电信转卖带宽的代理商。  

    我们发现了几个有趣的小例子:  

    中国的网站很注意防盗链(虽然并不注意防盗版),但是居然没有哪家CDN公司可以提供一个让客户满意的防盗链的系统,虽然各家都在说自己提供防盗链。就象我的一个做远程教育的朋友和我说的一样,“测试了能够叫得出名字的所有的CDN公司,但却没有一家CDN公司可以做好防盗链。”但在Akamai,这是一个很久就标准化的服务了。  

    中国是一个游戏和软件下载的大国,互联网上的主要流量是下载,而直到最近,国内的CDN公司才开始可以提供基于HTTP下载成功数的统计功能,而且还不是全自动的,是需要客户配合设置才可以使用。同样,在Akamai,这也是基本服务项目。  

    再有一个例子与视频有关了,短视频网站使用的Flash视频,在用户端是和文件下载没有区别的,用户会尽可能快的去下载完视频文件,而通常播放一个视频只需要300K码流就可以流畅播放,这样会有两种情况导致资源的浪费,第一、用户看视频并没有看完,但下载已经下载完了;第二、用户如果是宽带接入的话,虽然只需要300K带宽,可实际上却使用了1M。对于最终用户来说,这两点几乎不会有什么实际影响,但对视频网站来说,这意味着浪费了宝贵的带宽资源,在同等条件下支付了更多的成本。这与上面谈到的HTTP下载成功数计费是一个道理。而在美国,CDN公司是可以控制每个HTTP链接的速度,比如在开始播放的前30秒,1分钟不进行限速,而超过这个时间,就可以把速度控制在需要的范围内,以节省带宽资源。  

    至于SLA(服务等级协议),就更加的有趣,通常在中国的SLA是不会作为依据的,而评估好坏的标准是“你自己上网看看就知道了么”,这是中国现在一家发展很快的CDN公司的老总的看法。奇怪的是,使用CDN之后,没有哪家客户有能力在去进行所有地区的测试,看一下自己的网站是否比原来快。在这样的情况下,有些做论坛的客户就会发动自己在各地的版主进行测试,收集意见,然后再告诉CDN公司,你们哪里哪里不好,能否调一下?我们的CDN服务商然后说,“噢,你先给我们解释你是怎么测试的?给我一个你们测试的IP,我看看是不是不是中国的IP啊,千万不要给我你自己机器的IP,要给我Local DNS的IP……,不知道Local DNS?怎么连这个都不知道呢?……那是……”(其实我个人觉得还应该问问版主是不是中国人,也许这样更容易发现问题),我只能说,这是多好的客户啊……,在美国的CDN服务商会感动的掉泪的。  

    在美国,用户会每天得到一份SLA报告,会标出在什么时间段SLA没有达到标准,如果用户需要,还会给用户具体哪个区域没有达到SLA标准,而所有的这些,都只需要用户登录到BOSS的portal上面。  

    类似的例子还有很多,比如流的点播加速,长尾市场,小图片的加速等等。这些服务功能的差别也许还不是最主要的,而成本的控制与自动化的运营却是CDN公司能否盈利的关键,Akamai部署一个客户只需要10分钟,而国内部署需要客户在填写复杂的表格后,耐心的等待1天时间;Akamai管理上万台服务器只需要4个人,任何时间10%的服务器宕机都无需处理,因为系统会自动保证服务的可靠运行并自主恢复,而国内最小的CDN公司运维人员也有几十个,并且疲于应付各种“突发”事件。  

    现在,也许我们应该提一个建议,开放中国的CDN市场,让大部分中国的网站都可以看到真正的CDN服务是什么样子。  

    再有一个例子与视频有关了,短视频网站使用的Flash视频,在用户端是和文件下载没有区别的,用户会尽可能快的去下载完视频文件,而通常播放一个视频只需要300K码流就可以流畅播放,这样会有两种情况导致资源的浪费,第一、用户看视频并没有看完,但下载已经下载完了;第二、用户如果是宽带接入的话,虽然只需要300K带宽,可实际上却使用了1M。对于最终用户来说,这两点几乎不会有什么实际影响,但对视频网站来说,这意味着浪费了宝贵的带宽资源,在同等条件下支付了更多的成本。这与上面谈到的HTTP下载成功数计费是一个道理。而在美国,CDN公司是可以控制每个HTTP链接的速度,比如在开始播放的前30秒,1分钟不进行限速,而超过这个时间,就可以把速度控制在需要的范围内,以节省带宽资源。  

    至于SLA(服务等级协议),就更加的有趣,通常在中国的SLA是不会作为依据的,而评估好坏的标准是“你自己上网看看就知道了么”,这是中国现在一家发展很快的CDN公司的老总的看法。奇怪的是,使用CDN之后,没有哪家客户有能力在去进行所有地区的测试,看一下自己的网站是否比原来快。在这样的情况下,有些做论坛的客户就会发动自己在各地的版主进行测试,收集意见,然后再告诉CDN公司,你们哪里哪里不好,能否调一下?我们的CDN服务商然后说,“噢,你先给我们解释你是怎么测试的?给我一个你们测试的IP,我看看是不是不是中国的IP啊,千万不要给我你自己机器的IP,要给我Local DNS的IP……,不知道Local DNS?怎么连这个都不知道呢?……那是……”(其实我个人觉得还应该问问版主是不是中国人,也许这样更容易发现问题),我只能说,这是多好的客户啊……,在美国的CDN服务商会感动的掉泪的。  

    在美国,用户会每天得到一份SLA报告,会标出在什么时间段SLA没有达到标准,如果用户需要,还会给用户具体哪个区域没有达到SLA标准,而所有的这些,都只需要用户登录到BOSS的portal上面。  

    类似的例子还有很多,比如流的点播加速,长尾市场,小图片的加速等等。这些服务功能的差别也许还不是最主要的,而成本的控制与自动化的运营却是CDN公司能否盈利的关键,Akamai部署一个客户只需要10分钟,而国内部署需要客户在填写复杂的表格后,耐心的等待1天时间;Akamai管理上万台服务器只需要4个人,任何时间10%的服务器宕机都无需处理,因为系统会自动保证服务的可靠运行并自主恢复,而国内最小的CDN公司运维人员也有几十个,并且疲于应付各种“突发”事件。  

    现在,也许我们应该提一个建议,开放中国的CDN市场,让大部分中国的网站都可以看到真正的CDN服务是什么样子。  

    到这里,其实我们忽略了一个重要的问题,需求!中国的客户使用CDN很多时候是希望以此解决南北互通的问题,而美国客户没有这个问题,他们使用CDN首要考虑的是off load和降低成本。在有人发现有其他更加经济实惠的方案之后,CDN在米国的日子好像也不好过了。 

    CDN被逐出了圣地? 

    BT的出现对媒体行业来说是打开了一个盒子(也许是潘多拉,也许是宝盒),盗版的发行比以往任何时候都要快,成本也更低;而同时,视频直播也达到了前所未有的低成本,我们也许还记得在P2P客户端上看欧洲杯,看NBA,看奥运,如果是换成CDN,任何公司都会无法负担。 

    在看看客户情况,伟大的Google是一个什么事情都要in source的公司,它从来不使用CDN,但它的服务遍及全球,Amazon的EC2,SaleForce的CRM系统,Second Life的虚拟世界,他们都没有在CDN上,但他们同样出色,而且看起来更有效率,成本更低。 

    现在,已经没有人会考虑使用CDN做大规模的直播服务了,充其量是作为一个备份手段;而自从YouTube离开LimeLight以后,CDN的光环也开始慢慢退去,VC和投机者开始又一股脑的质疑这个奇怪的生意,CDN有价值么?为什么盈利这么困难呢?就像勇猛的萨拉丁赶走了十字军一样,难道CDN会被P2P和不断升级的光纤所取代?还是象经过改革的宗教一样,即使历经文艺复兴与科技的反复冲击,而今依然影响着无数的人们。 

    CDN的宗教革命? 

    我们之所以把CDN比作宗教,是因为CDN到现在也有很多“流派”,LimeLight的大节点,大带宽的做法被许多IDC与运营商背景的公司所推崇,而传统的Akamai模式则是独立于运营商之外的CDN公司所首选的道路;而各种新奇理念的出现更是让CDN行业象是一个万花筒,从而也使其拥有更多的互联网气息。Amazon的Cloud Front,EC2;Level 3的ITM;Prime的CDN Aggregation,CDTM;Simple CDN的S3+等等,如此众多的演变,任何一种都是对传统CDN,甚至是对LimeLight模式的革命。感谢LimeLight与Akamai的成功,让很多优秀的工程师与天才的梦想家投入到CDN这个被Akamai一家统治多年的领域,并不断给我们与CDN客户以惊喜。但当我们把目光从美国看回中国的时候(上述所有的公司都是美国企业),我们要面对的是什么样的现实? 

    中国的CDN是CDN的佛教还是道教?还是象柏阳说得被中国这个大染缸去其精华留其糟粕的垃圾?  

    说道中国的CDN,我们可能要问:什么时候CDN开始没人关注SLA?什么时候CDN开始不提供标准的95/5计费?什么时候,全网配置的服务被悄悄替换成了“部分”节点配置?什么时候,CDN变成了一个黑匣子,客户无从了解自己的服务与问题,也无法控制自己的内容的发布与刷新(美国的CDN客户是可以直接自己设置3段TTL时间的)。这些我们无从而知,因为可能从我们开始认识中国CDN的时候就已经是这个样子了。  

    所以这些后来的中国的CDN厂商第一件要做的事情就是鼓吹自己的节点数量,而不管是否这些节点都为所有客户提供服务(客户甚至不知道有几个节点在为自己服务。PS:一般情况下,中国CDN公司为每个客户配置的节点不会超过20个)  

    所以,当海外的CDN公司在网站上介绍其服务的时候,中国客户通常很难找到他们全球有多少节点的信息,而中国CDN公司则乐此不疲的修改自己的节点地图,也不管地图画得就像一张地雷分布图。而销售人员更是信口开河的讲自己的公司有几百个节点,可笑的是,几乎所有的CDN公司都有“几百”个节点,全中国的IDC恐怕都不够这些CDN公司瓜分的了。  

    中国CDN已经把CDN本土化了,经常挂在嘴边的是外国公司不了解中国的网络,也许是吧,但到现在为止,没有一家本土CDN公司可以解决教育网的服务质量问题。而大部分的客户到CDN节点机房看到的情况是:“哦,怎么你们在使用和我们自己一样的系统?!”这是为什么呢?因为中国的CDN公司认为CDN是运营业务,就像中国移动,中国电信一样,最主要的是运营;  

    而象Akamai这样的美国CDN公司首先认为自己是技术公司,然后才是运营公司,Akamai的系统从底层到应用是自己开发的,所有的服务是自己开发的,所有的控制与监管是自己开发的,甚至在早期,连硬件都要自己开发。我记得一位VC界的著名人物这样评价在中国很出名的CDN企业:“他们没有技术”。这就是中国CDN与美国CDN公司的最大差距。那我们要问,难道十几年中国CDN的发展就白费了么?当然不是的,中国的CDN在花费了大量的时间在处理用户的客户化需求,可惜这些需求主要表现在计费领域,有的CDN公司居然有上百种计费方式。  

    而对于CDN的黑盒子问题(即用户看不到及时全面的数据),就像佛教的禅宗一样,一句“不可说”,客户也没有任何办法。而对于道教的无为则通常会用在对付客户的投诉上面。当然,这是不能责怪CDN的运营人员的,即使在CDN如火如荼的年代,能够说清楚CDN的具体情况与细节的人也还是少之又少。记得上面提到的发展很快的那家CDN公司的老总说到视频:“我们觉得视频是一个很简单的服务,根本没有难度”,但当客户测试他们视频服务,却选择了其他运营商之后,已经很少听到这种气壮山河的言论了。  

    中国的CDN虽然经历了很长的时间,但却没有真正的积累下来,而本土化,或者异化的CDN使本来就难于理解的CDN服务被断章取义的成为一个Cache和带宽的替代词汇。  

    而事实上,真正的CDN服务或者CDN的本来面目我们也许就从没有见到,就像中国的网站编程,在IE下看的好好的,但是换了浏览器就全乱了,这才发现原来没有按照W3C标准编写,而问题是很多的编程人员根本就没看过这些标准,所以也就不知道原来IE并不是严格遵照W3C解析与渲染的。  

    To be, or not to be: that is the question!  

    当莎士比亚的这句名言作为出现在这里的时候,我们应该考虑的是CDN的未来,还是中国CDN的未来?  

    让我们在更高的层面来看待如今的年代,越来越多的闪光点出现在这个领域,就像在Google出现之前,没有人关注搜索一样,CDN有可能成为第二个孕育奇迹的行业。CDN伴随着互联网的成长起起落落,现在的服务已经不仅仅局限在内容的分发,越来越多的CDN公司开始提供以复杂分布式存储为核心的存储网络服务,Amazon的S3是一个典型的代表,而Prime的FileGrid则是另一个值得关注的方向。Amazon在这个领域已经耕耘多年,虽然不是一个CDN公司,但实际上的服务内容已经涵盖了CDN服务,而其基于运计算的EC2服务更是现在可以使用的唯一的“云”了。有人说云计算就是CDN的未来,这也许还很远,Bill Gate的话也许更有道理:“云存储离我们更近一些”。无论是云计算还是云存储,对于CDN公司来说,都要比其他任何行业的公司都要靠近云端,而CDN的路线图也一定会是这样的发展,从内容网络到存储网络再到计算网络,而未来的CDN也会象使用电灯一样容易。  

    对于CDN的未来憧憬,另外的方向就是CDN云,尽管只是一个概念,但确实是一个很宏伟的想法,虽然现在可以看到的服务只有Prime的CDTM,或许这是CDN云的初级阶段──一个利用众多的CDN网络构建一个更高效成本控制更好与更智能的网络,但谁能够忽视这令人兴奋的进步与想象力?  

    在中国,各家CDN公司都开始大力开发自己的产品,也从没有象现在这样重视研发。而Akamai,CDNetwork已经开始进入中国;Prime也开始在中国展开一些试探。中国的客户已经开始体验到不同的服务,有的CDN公司提出的SLA至少看起来已经是一份有价值或者是可以度量的标准文件了。虽然路还是有些漫长,但相信中国的客户将会很快体验到世界水准的CDN服务,以及天才工程师们所创造的更多令人兴奋的网络产品。  

    中国乃至世界CDN领域的大变革正发生在我们身边,也许明天你就会看到一个不同的CDN来到你的眼前。