HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

CC 视频 CTO 栗伟:CDN 系统架构及 CC 视频应用实践

  • 2017-12-21
  • 本文字数:2569 字

    阅读完需:约 8 分钟

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 可以达到怎样的效果?栗总从三个方向表达了自己的观点。

  1. 全业务加速,包括 HTTP 的访问加速,下载加速、点播加速和直播加速等。视频内容、下载内容均可通过 CDN 进行分发、承载和加速。
  2. 降低成本。对于流量成本较高的企业,CDN 可显著降低带宽成本,降低支撑运维建设成本和维护成本。
  3. 安全运营。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

2017-12-21 16:587209

评论

发布
暂无评论
发现更多内容

4层板到12层板叠层经典设计方案

不脱发的程序猿

28天写作 电路设计 3月日更 PCB PCB布局

阿里一战封神,百万人跪求的Java面试手册终于开源;

Java架构师迁哥

【LeetCode】扁平化嵌套列表迭代器Java题解

Albert

算法 LeetCode 3月日更

java deep vs shallow copies

shengjk1

Java deep copy shallow cop

Flink 提交作业运行的各种模式总结

shengjk1

flink flink 执行

硬件工程师必备,常用元器件封装速查表

不脱发的程序猿

28天写作 电路设计 3月日更 元器件封装速查表 电子设计

已拿到蚂蚁金服Offer!阿里内部二十三万字Java面试题总结

Java架构追梦

Java 阿里巴巴 架构 面试 金三银四

如何在3分钟内实现音频变声和趣味音效?

拍乐云Pano

音视频 RTC 出海社交 社交泛娱乐

超全Android中高级面试复习大纲,在线面试指南

欢喜学安卓

android 程序员 面试 移动开发

FlinkSQL 平台

shengjk1

flink flink sql flink sql 平台

Redis新版本开始引入多线程,谈谈你的看法?

Java架构师迁哥

一文搞懂 FlinkSQL 的 KafkaSource

shengjk1

flink flink源码 flink sql

一文搞懂 Flink 中的锁

shengjk1

flink flink 锁

Dubbo的设计理念原来就藏在这三张图中

中间件兴趣圈

dubbo RPC

快速使用Vue3最新的15个常用API(1W5+字详解,建议收藏)

零一

vue.js 大前端 Vue3

到底什么是Event Loop?那就来了解一下JavaScript分别在浏览器和Node环境下的运行机制吧

零一

JavaScript 大前端

想学IT的必看!漫谈MySQL权限安全,分享一点面试小经验

欢喜学安卓

android 程序员 面试 移动开发

一文搞懂Flink SQL执行过程

shengjk1

flink flink源码 flink sql flink sql 执行过程

一文搞懂 FlinkSQL函数 LAST_VALUE 的原理

shengjk1

flink flink sql flink 源码

寻找被遗忘的勇气(二十三)

Changing Lin

3月日更

图解TCP的通信机制

零一

TCP 网络

JVM G1GC的算法与实现

Yano

Java JVM GC G1GC

Flink 计算 PV UV

shengjk1

flink flink 实战

Python-计算机视觉-OpenCV-调色板

Aldeo

Python OpenCV

SQLServer性能调优方法小结

嘉为蓝鲸

数据库 sql 运维 SqlServer MAXDOP

万众瞩目的EGG Network,备受期待的New-DeFi自治共识论坛在海口闭幕

币圈那点事

区块链

Flink 计算 TopN

shengjk1

flink flink 实战 flink topN

使用Redis,你必须知道的21个注意要点

Java 数据库 redis 架构 面试

Python OpenCV 图像处理二值化,取经之旅第 7 天

梦想橡皮擦

3月日更

Swift 5创建和使用Framework, XCFramework 从入门到精通 John 易筋 ARTS 打卡 Week 42

John(易筋)

ARTS 打卡计划 Framework XCFramework

SDK介绍及相关功能测试

行者AI

测试 sdk

CC视频CTO栗伟:CDN系统架构及CC视频应用实践_架构_赵新龙_InfoQ精选文章