2016 年 11 月 16 日,由 DVBCN&AsiaOTT 主办的 GFIC2016——亚太 CDN 年度盛典在上海盛大召开。本届盛典集结了来自视频网站、OTT 服务提供商、VR/AR 应用服务提供商、移动直播平台、视频电商平台、CDN 服务提供商、公有云服务平台等多个领域的行业菁英,总结一年来各行各业的成绩,共同分享 2016 年整年工作中的创新与瓶颈,迎接「互联网+」时代下的新型挑战。在盛典上,七牛云技术总监李瑞奇就整个七牛云融合 CDN 的发展境况以及目前 CDN 冗余资源的利用,如何降低 CDN 产品的成本提出了自己的看法以及见解。
全面、稳定、高性能成为竞争 CDN 市场中的衡量标准
七牛云与传统的 CDN 服务提供商以及新介入的公有云服务提供商都不尽相同,整个 CDN 产品的构成是自建+融合的方式提供给客户。李瑞奇解释道,有很多人会问为什么要做融合?其实融合,是因为七牛判断 CDN 这个行业已经从原先的蓝海市场进入到拼资源拼价格的红海,融合能够在稳定快速的创造出 CDN 产品的同时,也尽可能的达到降低流量成本。为用户做质量优化、成本优化而服务,是融合 CDN 的目的。
纵观 CDN 行业,网宿、蓝汛等传统 CDN 中的巨头跟运营商,已经在这个行业里深耕十多年。在资源方面有很大的优势,接踵而至的是新兴的云厂商,以自助化配置理念和全新的边缘缓存技术,切入 CDN 行业与传统厂商竞争。据统计目前的 CDN 行业,算下来比较有名的至少也有 20~30 家厂商,这就导致整个 CDN 行业中冗余了大量的闲置资源,如果七牛能够把这部分资源融合好,就能实现所谓的融合 CDN。
七牛云的目的就是要给用户提供一个全面、稳定、高性能的 CDN。这是互联网所有用户的基本诉求,也是七牛云所有 CDN 产品所追求的一条路。所谓的「全面」,就是覆盖更全面。七牛可以在国内自建一百多个点,然后把国内用户覆盖好,但是海外用户的需求呢?全球覆盖的问题呢?在每个国际地区,其实都很难把节点铺开到每一个角落,这个时候采用自建+融合的方式,就可以把整个全国或者全球的网络整合到一起,提供全网高质量 CDN 服务。
稳定——CDN 在融合时,带宽几十 G 以上的客户,他们并不只选用一家 CDN,原因可能会很多,比如互备、引入竞争、将服务质量做到更好,或者部分厂商的 CDN 在某些区域没有资源服务质量差等等。「融合」无疑优点很多,但如何整合这些资源在一起还能保证稳定?按比率、按权重、按区域分配,这些都是融合的方式。而七牛具有对 CDN 行业独立的理解,独特的融合方式足以做到更稳定更高质量。
在性能上,七牛会通过自己的融合技术以及评判标准,评估各家 CDN 厂商和我们自建节点以及每个区域的节点性能,就可以把从整体的网络上性能做到更优。
红海 CDN 环境下融合 CDN 的优劣势
七牛的融合,是将主流的 CDN 服务提供商的节点结合七牛云自建的 150+节点。即便未来七牛的自建 CDN 越来越铺开,七牛也不会把融合给抛弃,融合已经成为了「七牛」的一种品牌。融合 CDN 的优势很多,全面覆盖、无盲区(某些边缘区出现一些灰色地带。即是没有节点覆盖的区域),通过融合的思路就可以做到任何一个区域都有节点覆盖,即便七牛没有自建点,也有十几家厂商可以挑选,做到节点级互备。
或许客户真在使用一家 CDN 的时候,并没有一直监控它的 CDN 质量?在招标环节,一般厂商都会把***的资源拿出来。但一旦招标过了,或者使用一段时间之后,比如一个月,它的整体质量会有一些缓慢下降。最终当服务质量不断地下降,下降到一个不稳定的状态,就可能有很多客户反馈 CDN 质量不好,然后服务提供商再帮你调整。但这种方式不是七牛做 CDN 的态度,七牛坚持要做的就是提供高品质的 CDN,只有长期不间断优化才能保证CDN的高品质。
当然融合 CDN 会有一些劣势,有人说节点不是七牛的,七牛无法很好地控制这些节点。节点出现故障以后,怎么及时处理?恰恰是七牛无法去控制这些节点,反而让我们在增加了外围的监控体系,七牛提供了一整套监控体系来保证融合 CDN 稳定运作。如果现在用一家服务,出现了 520 错误,却不会自动切走,这家厂商就非常有问题了。七牛云监控系统足以做到及时地监控及时切换。
随着 CDN 行业十几年的发展,各家技术都已非常成熟,甚至冒出了很多新兴的小厂商,技术门槛也已经比较小了。这时候整个行业就进入了拼资源,拼价格的时代,这也是为什么很多券商和资本会认为 CDN 已经进入红海的原因。
融合智能调度为 CDN 的实时精准分发要求提供保障
当一个用户需要访问 CDN 的时候,当这个数据需要加速的时候,就会进入到融合 CDN 的加速环节,七牛会首先进行调度,按区域进行切换,如果在广东,整个七牛节点的表现不那么好,七牛就会尝试采用智能调度,将其他厂商的资源接入进来。除了按区域切换,七牛还有整套的质量体系保证,通过运营融合把整条线路质量做好。我们在融合的时候,发现很多的 CDN 厂商的技术实力其实是很一般的。
所谓智能调度,注重的是两个点,***点就是节点级的流量均衡互备,注重均衡,注重互备。在智能调度里还注重一点,就是精准。如何做到精准?三种不同的调度都不尽相同,99%的供应商都使用 DNS 调度。它的好处在于通用。缺点是不可控。因为 DNS 解析是以本地的 DNS 做缓存,Local DNS 不可控,该怎么决策哪个缓存的点给它?可惜的是,刚才说的这些 Local DNS 不会透传客户端 IP。如果出口 DNS 和用户的节点不匹配的时候,调度的节点就是错的。
第二个调度方式是业界炒得比较火爆的 HTTP DNS。HPPT DNS 就是说把用户的IP传递给调度器,每分钟做个心跳,把用户的 IP 传过去,说这个域名解析是哪个 IP,缓存在本地。假设我的心跳是 1 分钟一次,如果节点挂了,也就影响一分钟。缺点是需要 SDK,需要端的支持。
***一个是 IP 302,在请求发生之前,首先把请求直接指向调度器,在调度器产生了 302,告诉你去哪儿获取文件。这样就能做到精准,因为所有的请求都实时产生 302。如果一个节点宕机,就可以随时把这个点流量切走。这就是七牛融合调度方面对于精准性的考量,在七牛的融合平台上,这三种调度方式都是可以用的。
七牛通过实时监控、融合调度、质量运营保障用户体验,将表现不好的节点及时去除,把***质的资源挑选到融合在一起。
运营优化与 Spider 监控提供用户的体验保障
七牛在进行融合 CDN 服务时,时刻铭记,只有长期不间断的运营优化,才能保证高品质 CDN 服务。CDN 已进入红海,如果不优化,服务就会变差。业内的质量监控并没有满足 CDN 的需求,我们需要的是这样的系统,只要每天早上上班以后,打开系统,就可以知道昨天到底发生了哪些问题。
在监控上,七牛做融合 CDN,真正希望做出自己的技术范。七牛并不是把别人资源拿过来倒卖,这个根本不叫融合。真正的融合是要有自己的独特价值,CDN 如果做得足够强大,一般会宣传自己的边缘,包括智能的调度系统,其实智能调度只负责做快速决策,真正的决策依据是监控。所以如果想把 CDN 做好,把智能调度做好,首先要把监控做好。如果你不知道你的 CDN 出了什么问题,就无法进行调度。但是做融合 CDN,节点都不是你的,如何实现监控?连 IP 都不知道,怎么进行监控?这里就需要 Spider,厂商配置完毕后都会给你一个 CName,一个 CNmae 定义一组资源覆盖,七牛会用 Spider 抓到全国,乃至全球的覆盖节点分布。尽管现在整个互联网的 Local DNS 不能透传 IP,但依然可以用 Spider 去抓,在上海同样可以模拟出北京、深圳、美国各个区域的 IP,去请求权威服务器,然后就能知道这些物理地址有几个节点覆盖,有了这个数据就可以统计厂商给你的覆盖到底有多少真实性。
Spider 可以实时获取节点分布,每两分钟抓取全国乃至全球的 IP 分布,IP 就在库里,如何选择其中的节点都可以自主决定,这样就足以实现调度。第二,要有监控,不能随便调,理论上来讲说你的调度监控发现了宕机,才能做到一些决策。第三条很重要,就是 Follow 权重。如果厂商的节点拿过来随意调度,结果这个机房要修一下,或者临时要把流量接走,你还在朝上面调度,这是在自己挖坑。Follow 很重要,如果别人把节点下了,或者权重变了,我们都应该 Follow 实时的权重分布。***一点,调度解决节点性能,运营解决覆盖性能。
七牛在融合 CDN 上做了近两年时间,积累了很多的经验以及海量运营的管理能力,面对 CDN 红海,七牛认为:只有坚持自建+融合相互补充,才能提供全面、稳定、高质量的 CDN 服务。