CC视频CTO栗伟:CDN系统架构及CC视频应用实践
2017 年 11 月9日,CC视频获2.08 亿元C轮融资。 EGO 北京分会会员、CC视频CTO栗伟获邀作为 EGO 线上分享第三季嘉宾,与大家交流了CDN系统架构及CC 视频的应用实践。
\\
技术出身的栗伟曾在中科院计算机技术研究所和蓝讯公司从事多年网络存储和CDN技术等工作,2014年加入CC视频,在CDN和视频编解码技术方向颇多建树。
\\
作为一站式场景化视频解决方案服务商,CC视频在经历12年企业级视频云服务的探索,已经拥有了视频云点播、云直播、云加速、云互动的完整产品线,为整个视频领域提供全方位服务。在线教育领域的大型企业大多都是CC视频的重度用户。凭借领先的云计算技术和专业的视频处理经验,CC视频已经积累了包括新东方、好未来华图、新东方、达内、尚德、清华大学、万国、学堂在线、宝宝树、好医生、海马玩、蚂蜂窝、SMG集团、36氪、财新网、凤凰网、上海通用、唱吧、广联达等18000+众多知名企事业单位的首选合作品牌。
\\
作为CDN架构的专家,栗伟首先向大家介绍了基于DNS解析的CDN工作原理。通过利用DNS的CNAME特性和CDN的回源原理,CDN厂商实现了用户流量的调度,同时也解决了内容缓存和源站保护的问题。
\\
CDN的系统架构
\\
栗伟认为,一个完整的CDN系统应包含几大系统:用户服务系统、运营支撑系统、流量调度系统、边缘服务系统、业务支撑系统、综合监控系统和基础服务支撑平台。
\\
基于DNS智能调度的流量调度系统相当于CDN的大脑。一个合格的流量调度系统需要达成几个目标:一个是保障服务质量,能够将用户请求调度到离用户最近最优的节点,第二个是合理调度,提高资源的利用率。栗伟强调,流量调度系统是衡量一个CDN企业好坏的重要标准。
\\
边缘服务系统真正响应用户的HTTP或HTTPS请求,它和服务质量密切相关。一个边缘服务系统应该分成以下几个层次:一个是在7层,或者是在4层做一个负载均衡系统;第二个是Cache的缓存模块。
\\
栗伟指出,目前业界比较成熟的边缘服务系统架构是使用LVS做4层负载均衡给用户提供服务,再通过Haproxy/Nginx做7层负载均衡,最终把用户请求定位到Cache缓存模块,在Cache缓存模块上提供服务。企业用户经常会有频繁的定制化需求,因此Cache的功能开发非常频繁,而其本身的代码复杂度较高,部署面积较大,导致整个系统的稳定性面临很大挑战。
\\
运营支撑系统跟整个运营相关,它包括运营资源、运营调度的管理,比如设备管理、DNS跟设备的对应关系、内容刷新、日志处理、以及文件的分发处理等。
\\
CDN会缓存部分用户内容,在缓存时间内出现变更,就需要回源校验和内容刷新。在这一过程中,刷新全网更新时间和刷系统处理能力都是整个刷新系统的重要指标。栗伟指出,每日刷新系统处理能力至少要在一千万条以上才能应对大客户的刷新要求。在日志处理和文件分发方面,日志的全网收集、压缩处理、同步分发、区域提供、日志分析等,也都要求CDN公司必须具备极强的处理能力。
\\
对于一个中型的CDN系统来说,监控系统也非常重要。如何在一个拥有上万台服务器的CDN上,及时发现设备级别或节点层面的服务器故障都和监控系统息息相关。栗伟指出,一个合格的监控系统应支持多层次的告警策略,包括设备层级告警、节点层级告警、业务层级告警乃至整个服务系统层级的告警。把这些告警通过图形化的形式显示出来,能够准确看到全网CDN的服务情况。
\\
为什么还需要基础支撑平台?栗伟介绍,基础支撑平台在底层进行基于CentOS优化裁剪、TCP协议栈优化,并在OS上安装一组应用软件,从而为应用软件提供管理接口和分发接口,支撑设备管理、日志管理和收集,从而方便统一部署和运维。
\\
CDN产品及作用
\\
使用CDN可以达到怎样的效果?栗总从三个方向表达了自己的观点。
\\
- 全业务加速,包括HTTP的访问加速,下载加速、点播加速和直播加速等。视频内容、下载内容均可通过CDN进行分发、承载和加速。\\t
- 降低成本。对于流量成本较高的企业,CDN可显著降低带宽成本,降低支撑运维建设成本和维护成本。\\t
- 安全运营。CDN使得整个运营更平稳,网络攻击和网络风险大幅降低,精准的分析、故障的恢复,也都是CDN产品所具备的价值。\
CC视频产品对CDN技术的应用
\\
CC视频的直播、点播产品使用的都是CC视频独立研发的CDN技术。
\\
直播方面,利用CDN自身的高承载能力的特性,CC视频将CDN作为直播系统的一个主要模块,所有直播流均推入CDN边缘服务系统,所有对于直播流的观看都通过CDN去做。同时,CC视频还提供第三方CDN接入服务,一旦CDN出现故障,可随时将直播流推送到第三方CDN,不会对直播产生影响。
\\
栗伟指出,CDN系统对整个直播承载能力的提升帮助非常大。CC视频曾测试,20万并发可平稳通过CDN,几乎不会对其直播产品造成压力。在这个架构中,关于数据库的同步也让CC视频引以为傲。CC提供了数据库内容的备份,一旦出现故障,可实时同步切换主节点和备节点的数据库,从而保证数据裤至少有两份数据,确保数据不丢失。
\\
点播架构同直播类似,也同时提供主、备节点,包含上传和转码两个子系统。CC视频对上传系统进行了诸多优化,在全国部署了三个BGP节点,包括北京、上海、深圳,基本覆盖全国,保证用户可就近上传。
\\
CC视频点播产品中的转码系统、存储系统、监控系统和统计系统也都在不同程度上运用了CDN技术,大容量存储设备与分布式文件系统架构结合搭建存储系统,基于open falcon二次开发实时监测磁盘级到应用层故障,大数据统计分析用户数据报表等。同时,点播的分发也采用了与第三方CDN相结合的方式。
\\
最后,栗伟还为大家分享了CDN的特殊用法,如使用HTTPS协议和CDN全站加速、动态内容穿透相结合来降低网络劫持、提高系统连通率等。目前CC视频的云直播、云点播、云互动产品都在使用CDN做动态内容穿透,效果明显。“CC视频将一如既往以匠心打造视频产品,欢迎各位朋友携手CC共赢美好未来。”他最后总结。
\\
关于 EGO
\\
联结杰出的技术领导者学习和成长,是 EGO 不变的使命。 EGO 目前已经汇聚了全国超过450 余位顶尖的技术领导者,包括喜马拉雅FM CTO陆栋栋、沪江 CTO唐小浙、易观CTO郭炜、货车帮CTO冯亮、爱范儿CTO何世友、TalkingData CTO 肖文峰、饿了么 CTO 张雪峰、GrowingIO CTO 叶玎玎、CC 视频 CTO 栗伟、启赟金融 CTO 马连浩、咿啦看书 CTO 褚亮等都是 EGO 的付费会员。
\\
EGO 会员招募季第三季正在进行,现在报名加入EGO 。
CC视频CTO栗伟:CDN系统架构及CC视频应用实践的更多相关文章
- 淘宝CDN系统架构
存储与架构分论坛上,淘宝网技术委员会主席,淘宝网核心工程师章文嵩向我们详细介绍了淘宝网图片处理与存储系统的架构.章文嵩博士的演 讲日程包括了 淘宝的整个系统架构.淘宝图片存储系统架构,淘宝网 ...
- TOP100summit2017:网易云通信与视频CTO赵加雨:外力推动下系统架构的4个变化趋势
壹佰案例:很荣幸邀请到您成为第六届壹佰案例峰会架构专场的联席主席,您曾深度参与Cisco Jabber,Webex Meeting, Cisco Spark等多项分布式实时通信类产品的架构与研发, ...
- [CDN]CDN的系统架构
---恢复内容开始--- 1.功能架构: CDN技术自1998年诞生以来,伴随着互联网的高速发展,其技术一直在持续演进和完善,但基本的CDN功能架构在2003年左右就已基本形成和稳定下来.从功能上划分 ...
- 从程序员到CTO的Java技术路线图 JAVA职业规划 JAVA职业发展路线图 系统后台框架图、前端工程师技能图 B2C电子商务基础系统架构解析
http://zz563143188.iteye.com/blog/1877266在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样 ...
- 大数据高并发系统架构实战方案(LVS负载均衡、Nginx、共享存储、海量数据、队列缓存)
课程简介: 随着互联网的发展,高并发.大数据量的网站要求越来越高.而这些高要求都是基础的技术和细节组合而成的.本课程就从实际案例出发给大家原景重现高并发架构常用技术点及详细演练. 通过该课程的学习,普 ...
- 汇总java生态圈常用技术框架、开源中间件,系统架构及经典案例等
转自:http://www.51testing.com/html/83/n-3718883.html 有人认为编程是一门技术活,要有一定的天赋,非天资聪慧者不能及也.非也,这是近几年,对于技术这碗饭有 ...
- EasyNVR H5流媒体服务器方案架构设计之视频能力平台
历经过程 阶段一:经历过传统安防开发过程的开发者都有一种感觉,就是各种业务交织,各个模块的开发扯皮,各种数据库连接冲突,这很让开发工作效率很低,而且会给整体的开发带来负面影响,更重要的是,耦合度太高, ...
- CDN技术之--流媒体CDN系统的组成
流媒体业务是一种对实时性.连续性.时序性要求非常高的业务,无论从带宽消耗上还是质量保障上来说,对best-effort的IP网络都是一个不小的冲击 –高带宽要求–高QoS要求–组播.广播要求(目前IP ...
- 第2-1-1章 FastDFS分布式文件服务背景及系统架构介绍
目录 1 背景 1.1 为什么需要分布式文件服务 1.1.1 单机时代 1.1.2 独立文件服务器 1.1.3 分布式文件系统 1.2 什么是FastDFS 2 系统架构 2.1 Tracker集群 ...
随机推荐
- Shell:Day02.笔记
重定向和管道符:1.重定向 程序 = 指令 + 数据 命令 变量 在程序中,数据如何输入?有如何输出? 数据输入:键盘 -- 标准输入,但是并不是唯一输入方式: --std ...
- ASP.NET Core中的Controller
ASP.NET CORE出现之前我们实现的Controller,MVC都继承自Controller基类,WebApi的话继承自ApiController.现在ASP.NET CORE把MVC跟WebA ...
- 典型的MVC架构图
通常,当使用MVC时,应用程序中的每个逻辑部分都有一个单一的控制器.在这些控制器的前面还有一个Router:这是一个看门人,用于确定用户请求的内容,以便应用程序满足用户需要.常用php的mvc框架:Y ...
- json文件操作
1.把字典或list转换成字符串方法 json.dumps() 2.把字符串转换成字典方法 json.loads() 3.indent 存储文件时每行加缩进数 4.ensere_asci 文件中有中文 ...
- 如何关闭php的所有错误提示
在调试PHP 应用程序时,应当知道两个配置变量.下面是这两个变量及其默认值:display_errors = Offerror_reporting = E_ALL E_ALL能从不良编码实践到无害提示 ...
- 练习,自定义TextView(1.1)
重新自定义TextView是非常有趣的事情,跟着Android4高级编程,通过自定义TextView,来敲一下代码: 这个是那么的简单,自定义TextView,新建CustomTextView继承Te ...
- 【Java】【设计模式 Design Pattern】单例模式 Singleton
什么是设计模式? 设计模式是在大量的实践中总结和理论化之后的最佳的类设计结构,编程风格,和解决问题的方式 设计模式已经帮助我们想好了所有可能的设计问题,总结在这些各种各样的设计模式当中,也成为GOF2 ...
- Atcoder E - Crested Ibis vs Monster、
一看到题目就觉得是一个背包问题,但是不知道怎么写. 题解:直接求背包容量为2*h时所需要的花费.然后h~2h都是满足条件的,去最小值即可. code: #include<bits/stdc++. ...
- D - Harmonious Graph
题目大意: n个点,m条边,两个数l和r,如果l和r相连接,那么对于l和r之间值任意一个数都要和l相连.问达到这一目的需要添加的边的最小数量. 题解: 我们首先要找到当前连通块中最大的那个点,也就是说 ...
- 【论文研读】强化学习入门之DQN
最近在学习斯坦福2017年秋季学期的<强化学习>课程,感兴趣的同学可以follow一下,Sergey大神的,有英文字幕,语速有点快,适合有一些基础的入门生. 今天主要总结上午看的有关DQN ...