10月20日Live video Stackcon2017音视频大会在京举行,音视频行业技术精英齐聚一堂,探讨2017年这一年里音视频的技术演进发展以及未来的趋势。CDN作为音视频内容分发的重要一环,自然不能缺席,Akamai、网宿、云帆加速等均出席了此次盛会。云帆加速联合创始人&CTO扶凯在此次大会受邀作了题为《大视频时代的CDN》的技术分享。
2017音视频大会——云帆加速扶凯演讲现场
CDN初心还在?
众所周知,90年代互联网发展之初,CDN便伴随着互联网的发展应运而生,解决了“世界在等待”的局面,这即是CDN最初存在的意义,也是CDN行业诞生的初心——服务于互联网企业,做互联网背后的强大支撑。如今视频行业在直播、VR、4k等技术的更新迭代中出现了爆炸式增长,CDN作为视频领域的刚需在这个大环境下进入了火拼状态,蓝海市场渐入红海,各家拼尽全力突围,CDN价格一降再降,但这背后初心是否还在?视频企业理想的CDN服务究竟是怎样的?
云帆加速联合创始人&CTO扶凯
扶凯,作为一个拥有15年从业经验的资深CDN专家,并有着在土豆、音悦台等多家甲方企业担任架构师、CTO的履历。此次分享,结合了他甲方公司和云帆加速的创业经历从甲乙两方介绍CDN企业该如何做好视频企业的技术服务,回归初心。
视频企业爆发式增长之烦恼:文件存储和用户体验
视频企业在爆炸式增长过程中也是不断经历曲折,虽然中国视频技术水平整体已经提升了很多,但根据广泛的市场调研所知,仍有两个行业的最重要的“老大难”问题:文件存储和用户体验,而这两个问题也是关乎视频企业生死的大事。
首先,文件存储是视频网站系统容量最基本也是最关键的模块。随着UGC的发展,对于大型视频网站而言,每天都会有海量的文件数据从用户端上传至网站上后,转码成不同清晰程度, 这时一个视频会变成多份, 像高清,标清,流畅。这对网站服务器的存储空间而言,形成了极为严峻的挑战,视频所需要的存储空间在快速的上升。
一般而言,文件处理过程涉及层次较多,对文件的分类及定义尤其重要。如下大型视频网站的文件处理过程:
在存储方面,扶凯表示用户上传的文件会经过转码和审核后本身就会生成不同的清晰程度,然后***种转码后不同清晰程度的视频文件, 会存储在至少3个机房内如A/B/C,这无疑更加大了存储器的负担和空间占用,但为了可用性考虑这又是必须的,当任何 A or B or C 的机房异常时都可以有另外的二个机房正常工作, 当存储三份可以最少保证有二个机房异常时能正常的工作。
扶凯提到在用户体验方面,上传而来的文件, 在后期用户访问几次以后,大数据分析系统会根据这些访问记录,将文件定义为冷门文件和热点文件,然后热门文件会被推送至边缘节点以供就近调用,而冷门文件依然存储在上层服务器中,调用的时候从上层直接调取,另外网站编辑本身也会根据需要给某个文件标记为热门。
以上提到的存储体验一体化解决方案看似***,其实存在着一些问题:边缘存储空间可能存在的浪费,有的文件并不一定能访问到,小运营商或特定地区访问的性能问题。例如,所有网站新上传的文件列表中,究竟推多少文件到边缘?而且对文件访问而言,本身又具有地域特性,北京网友与上海网友在观看习惯上绝对会有差异。小运营商也是完全不同,而冷热文件的定义是算法算出来的,具有普遍性,如同平均值并不能展示地域性的个性化特点,所以会引起大量的上层节点的访问。
商业CDN回归初心:专注细节,***限度的提升分发效率
扶凯详细介绍了商业CDN 加速在这方面的处理方式:首先商业CDN的存在是对超大型视频网站内容分发上的补充和支持,运行原理则是“用空间换流量,用回源换空间”。所以较之视频网站,在架构上具有更加分明的层级。
CDN架构中,用户在就近访问最边缘的节点,节点中的存储空间内的文件服务用户,过程是用空间换流量,但由于边缘服务器存储空间有限,会让部分冷点文件用回源方式进行重新获取。商业CDN作为超大型视频企业内容分发的补充,做为这点,可以补充具有地域特征文件访问,另外上一层依然使用自己的,更加保证了源站的安全。
定制交换机,EdgeControl用来逻辑处理,Cache软件用来管理存储
而CDN单个节点主要是解决存储和速度的问题,云帆加速定制了ospf交换机用来批量管理、批量配置机房,可以随时屏蔽宕机机器。
在实际用户访问过程中,每个客户的特性都不一样,逻辑(需求)也是千奇百怪。所以边缘节点分成二个部分,EdgeControl用来做逻辑的处理,Cache用来存储,通过7层 hash将每个文件在节点上只存储一份。因为只存储一份, 这时有大量并发的热点时很容易异常, 所以当热的请求发过来时, 云帆会使用热点迁移,云帆加速在技术使用的是队列,即将URL做成队列,当URL的 队列值达到一定的数量会立刻存储到所有边缘,提高处理效率。
在Cache处理文件存储时,并不是整个文件来存储,而是将文件分割成1M的存储块,然后存储到我们的文件系统。所以整个硬盘的块存储都是物理上真实按一块块存储到硬盘上的分块, 但当用户的 HTTP 来请求时响应所发出来是一个逻辑的完整的文件。所以这些物理分块都是安排平均分布在硬盘里进行,带来的好处分为以下几方面;
1、当有大量的IO在一个文件上的时候,能保证所有的IO都是一致的;
2、当其中一个硬盘出现故障,只需要去上层重新取这一个硬盘上的文件过来,放在其它盘上,能有效避免宕机,有效提升硬盘数据处理效率,就算“归国四子”同时公布恋情都能扛得住。
3、即便是某个硬盘宕机了,也不会影响文件的传输,云帆加速可以通过回源调取分布在宕机硬盘里存储模块,平均分布在其他硬盘里。
4、按需存储,按需回源,拖动效率高。比如用户在看战狼2,按照观看习惯,片头和片尾被跳过的几率是很高的,所以存储的时候片头和片尾都会存储在上层并取下来, 因为没有访问,而正片部分存储在边缘。
5、进行文件删除时,因为是将文件分成若干模块遍布在各个硬盘之中,删除时也不会占用IO只对文件在内存的记录中去掉。
另外,扶凯重点提到了云帆加速在文件存储的一个细节——目录刷新,也做了一个质的突破。基本上,文件路径在存储上一经修改,可立即全网生效,这个在行业内是领先的。而且云帆加速在业务语言上有根据本身接触的业务做了进一步的优化,客户可以按照自己的习惯定制业务语言,而这直接大幅度缩减了程序上来回反复的步骤,运维不需要提交工单,直接根据业务语言代码定位问题所在。
CDN怎样帮助视频企业提升用户体验?
CDN存在之初就是为了解决“世界在等待”的问题,所以行业需要解决的就是分发效率,尽可能的缩短内容抵达观众那一头所需的时间。
这里就要提到智能调度,而云帆加速调度系统分为:流量调度和边缘化调度两个部分。
一般来讲,调度都是全局调度,拥有一个调度中心来协调所有的调度请求,但是在实际处理问题的时候发现,这种调度在接收请求很大时,很容易因为动态的请求,需要查询很多相关系统,所以处理能力低下,而导致调度失败,用户请求文件也将无法顺利抵达用户端,用户将进入持久的等待。所以云帆加速在调度上做了一个新的尝试,也将调度边缘化,采取无中心的调度。所有的cache都是调度服务器,有多少cache服务器就有多少调度器。当访问到调度器上时,调度器会区分出来这是调度请求还是用户最终访问请求,然后再根据这个结果来处理,不但302可以这样调,甚至连DNS都是如此。“为了防止DNS被打死,每一台机器也都是DNS的服务器。”
同样在在动态回源的过程中有一个经典的场景,在这个结构里面,边缘的用户请求就近的节点,就近的节点回就近的上层源。但有时遇到边缘节点没办法访问上层的问题。在这种结构内部,任何一个点或者边缘的点都可以立即切换其它边缘做为代理上层, 在云帆的架构中所有节点都可以同时作为上层或者下层,不用担心谁是上层谁是下层,让文件传输路径畅通无阻,一触即达。
CDN的未来趋势
扶凯作为从业15年的业内资深CDN专家,见证过CDN的从无到有的成长。在他眼里,未来CDN的发展势必会朝向差异化路线发展,比如CDN+P2P的方式。云帆加速与国内外多家知名公司的合作中都有P2P的合作,另一方面云帆在大力推行自己的安全服务比如抗DDOS服务、流量清洗服务、WAF服务,还可以做很多AI的事情,比如自己数据中心机器的连接数,IO占用等信息送到大数据里面学习,自动校验, 用于自动发现故障和异常等。
扶凯提出,以前大部分人都把CDN当一个静态的服务,但是其实它是最前端通用的网关接口呢?它离用户最近,能做的事非常多。相信在未来, 企业会需要更多类似云帆加速针对网络传输所做的细小创新,“精致而美丽”才是CDN企业与客户长久陪伴的“初心”与追求。