平台转直播将会带来什么样的技术挑战?
来源:牛股十点半 作者:佚名 2016-06-17 17:15:17
中金在线微博
关注
像DCP的通讯,一个包可能有1K多一点,这样有几十个MT包,怎么样让它最快发到用户手机里面这是一 个重要的东西,包括TCP层面做一些东西。正常是一个包里面发,我们可以在TCP在操纵系统内核里面可以做一些东西,初始值把这个发包的数量增大类似这样 的一些策略,保证这个手中的表开。低卡顿率,播放的时候不卡。首先了解为什么会卡,随便我们下载一 个安装包我们只关心这个安装包停下来的下载速度,对于视频不一样了视频保证每时每刻速度达到我码率才能卡,这样已经卡了。为什么下载速度低,我签了宽待够 了,最终的服务器没有什么平静,互联网来表现讲的话可能就是丢包。我们判断这个用户网络不好可以发一些软报,丢包要快速冲出来,不用这个包丢了几秒钟才冲 出来。我们可以搞成几十毫秒做沉船。还有和视频有关,你的客户端里面可以做一些缓存,如果说你的缓存有一秒钟你就可以抗到到一秒,如果下载速度在一秒内的 话如果是有波动的话其实我是不会卡,如果有缓存意味着什么,可能我的延时会变大,这是一个博弈的东西。这其实是难做到曲折的。正常来讲,假设我们都是中国 互联网直播的用户,如果说我们在看一个网红的美女直播,你能容忍的延尺是多少?因为我们之前做过一个市场大致的一个调查。如果说正常的一个延时,我们现在 这种工作方式我们通过文字送花,交流,如果说有五秒以内的延时不是太敏感的,这种基础上可以做一些一定的包袱,但是这个不够。随着丢包的增加,这个延时肯 定是会持续下来的,因为你延时会越来越大,这种策略下怎么做,可以做跳桢,你已经离我最新的时候,你已经慢了超过一定数,你已经20表了这是不可接受的, 可以在策略上做跳桢,来保证这个低延时。视频现状还有什么格式都有,包括直播也是一样的。并且每个人的宽待也是不一样的。
多终端苹果里 面还好一点,但是安卓里面很多了。安卓里面操作系统很多,机型厂商都很多,硬件完全不一样,这个时候对于我们解码和编码的逻辑这个要求会很高,这个时候要 求一些比较高的适配性。如果说对于苹果来讲的话推介可以通过硬编,这样是OK的,因为它的硬件是 比较一致的。但是对于安卓里面来讲是稍微复杂一点,如果说全硬件和硬编的话可能有一些设备是支撑不好。软解的话,对CPO有一些消耗。所以这些做一些智能 的判断,根据这个硬件具体类型选择怎么样做,这是我们对于一些技术方面的要求。
这是我们传输的一个视频流的架构。用户不管是上传还有他 要下载,观看这个视频还是要推流这个食品,其实还是连到服务器。具体连到什么样的服务器上这是一个很关键的因素,决定他的踢跳好不好。第一,DNS的解 析,通过我们域名解析,域名对应一个IP。这种方式可能会有一点点的一个问题,因为这个问题在哪里,大家可能用电脑或者手机可能会有一个本地DS,相当于 一些代理很多人配制这个东西,配制这个东西其实通过域名解析就不准了,比如说配到八点八,这个很多地方不知道,他不知道你八点八点八属于那里。针对这种情 况我们后面做了两种,一个是基于IP的调度,真实通过连接我们服务器,我就知道你真实的来源,IP抵制就知道的,知道你的物理信息,是河北还是海淀区一个 小IP,这样明确知道了,这样可以调度到最新附近最近的服务器。
里面的架构就是这样,用户推流,然后推流了之后比如说电线用户来讲如果 一个连通用户来观看一个电信推流的话很伤,跨运营商的网络丢包率是很高的,这个时候怎么搞?其实我们基本上见一些三通点。这个点的出口是有电信联动移动的 出口。还有一些小运营商,长款,北京一些歌华有友我们可以通过一些BGP广播的路游,让用户可以通过这个做结束,做全网的这个分配和调度。保证到一些用户 的网络质量。
我们UCloud总部在上海,我是从上海来到北京。我来北京应该怎么过来?其实我有很多方式。我可以坐飞机,可以坐高铁, 可以坐火车也可以自驾过来,这些方式都有什么特点?飞机会快一点,高铁可能稍微慢一点,但是火车差不多,自驾是单纯一点。直接从家里开车直接来到会场最单 纯的方式。如果说最快的方式达到这个会场应该怎么做从我建立直接打个车然后去到上海浦东机场坐飞机来到我们首都机场,然后再来到会场这是最快的方式了。
其实我们现在这个调度系统类似于我们现在要做的导航,然后我们其实是让用户最快获取到这个信息。折合现在一个真实的环境现在用的电信和连通这个陆游,比 如说我们在北京一个主播是在成都,我们去北京成都获取这个视频,走的是什么?便宜的路由方式了。就是从北京去成都用户上场点获取视频。这是最便宜,但是不 一定是最好的。最好的方式,说白的这个调度系统接了私有路由北京的机房就近接入,北京和成都之间建立了一些私有的网络,这个网络可能怎么样,可能会通过济 南然后到西南到重庆让用户最快获取到这个内容。
我们怎么样知道用户的数据是怎么样,所有服务器端都做了这样一个外挂式的测试体系,只要 任何一个用户连接到我们服务器我们都可以知道他的速度怎么样,他的丢包率多少,这是我们通过具体TCP的程序。通过这个ACK之间的东西我们认为它一个连 接的耗时。这个东西的话,类似类似于ICP这是非常准,我们可以知道根据这个ICT所有用用户到我们网络哪些速度是好的,哪些速度是慢的,那些丢包率是慢 的,我们可以到我们服务器一个网状的一个数据信息。这样的话我们做一些更好的一些调度方式。
首先我们把这个慢启动门限提高了,当它一丢 包又重新开始了,但是我们现在就是说初始根据用户真实的网络做判断。这个用户历史丢包率怎么样。当他出现丢包的情况,会重新慢起动,这样这个重新起动的这 个阀值我也是可以预的。这次数据和历史数据做评判,他要发多大的的数值做这样的一个东西,不仅仅这样,包括像一些我们的落网络,还有一些用户历史数据可以 做多个包,降低她的兑包率。视频加速这些方面会有很多个机房,很多服务器,其实我们现在就做了一些自动故障处理的逻辑,用户在一些服务器和机方出现一些问 题或者进程出现问题的时候会做自动的鼓掌处理。
我们之前做过一些视频的管理,食品的管理会做视频的录制,包括视频录成点播,点播会存到 我们的一些的对方存储,和存储系统的打通,包括像直播的封面以及直播的回看。会有一些直播鉴黄的服务也是互相学习做一些视频的这个鉴黄的识别。我们现在做 的一些数据分析,这个视频的数据和数据分析系统做对接,可以让用户自助化做数据的分析,这是刚才讲我们现在可以做到一些直播实时的转码,尤其推流的一般都 是ITMP。像HR和H5会有一些HR的一些要求这是比较好的。所以选择都是HPPTV,以及转成什么格式都是可以做一些支持的。
像视 频的刚才讲过了,一些采集端和播放端,包括一些像录制,包括像一些安卓、苹果这些东西可能会涉及到很多的东西,包括之前所说的一些视频的滤镜以及美颜多信 息度的支持,如果去一个地方播放不了怎么办,可以去另外一个地方地址播放,可以做一些食贫的容错。还有可以把所有用户播放的流水统计出来有没有卡过,加载 时间多长,他的次数多少,他的延时多少。还有一些可以集成到一个IM,现在所有的直播可能都有聊天室,聊天室和IM的一个结合。
最后一 个讲我们对于海量,怎么样用户突发的时候我们可以保证我们的机器不荡机,怎么样可以支撑那么多的东西。这是我们可以做一些我们海量服务的一些东西。做机械 的同学都知道任何一个系统和服务其实都是系统瓶颈,CPO是平面,包括视频的转码还有一些内存的瓶颈,还有一些是大并发包括IO,还有可能是带宽。其实我 们系统的瓶颈很难毕竟,买的设备这个东西就是这样,物理条件就是这样,你的瓶颈很难避免,怎么样保证系统瓶颈的保证这个服务不垮掉,这是我们海量运行的一 些道理。
首先过载的时候把这个系统根据重量级和轻量级的东西做分开。比如说做直播可以把这个视频APPCGR服务和视频流的东西分开。 还有量力而为,要知道我现在的容量多少,我们要做直播的云,支持在线并发的用户数多少,比如说现在支持的是800万,我们要有这个容量,当用户达到,当大 的容量已经达到60%的时候,我必须要做扩容了,60%是我的指标我就要做扩容这是我的容量管理。还有一个,及早拒绝。我的容量是800万,但是一些用户 是不按照我的套路出牌可能瞬间随便一个很好的活动可能直接把我打爆了。如果把这个东西打爆意味着什么?我的系统雪崩了,雪崩所有用户都瘫,这种东西做互联 网是不允许,极早拒绝。如果说系统八百万的连接当我达到799万的时候怎么办,新来的连接不能让他进来了,要拒绝,我要保证现有用户的体验,这是对新的东 西就拒绝了,如果他进来整个系统崩盘,这是不行的。对于拒绝也有策略,谁不按照套路出派我们就想怎么样拒绝他的策略。动态调节,比如说这个直播可能会有区 域性,比如说北京的活动,大部分都是北京用户来看,这个时候把我们的机房打满了,可以动态调度,可以把这个东西调度到河北区,这些用户虽然去河北可能他的 卡单率上升,但是不能打死。要做柔性的服务。这是过载保护的理念。
容载,做技术和基础运维都有这样情况。我们机房掉电了怎么办?还有服 务器故障的怎么办,还有网络环境比较恶劣,用户的环境比较恶劣,这种情况下怎么办。黑客被攻击,我的程序荡了,这些东西怎么办,都是我们这些容载的东西。 我们现在所有机房的都是需要有一些跨机房的东西,所有存储都可以做到跨机房的东西。所有给到用户可以给到用户两个机房,一个机房出现问题可以切换到另外一 个。我们服务器做的一些VIP的机制,这个东西如果大家可以对一些交换机的协议了解的话,其实可以了解这些东西。TCP4层上做的附载均衡网络环境我们可 以做到究竟覆盖,根据用户一些测速,黑客攻击还有一些安全手段之类的东西我们也在机方里面做这些方面的东西,程序扣我们所有的程序做好监控。并且所有程序 都是有调度,所有的程序都是有分层次的。
附载均衡的方法我们也用了很多,轮询均衡,群众轮询均衡,随机均衡,权重随机均衡,相应速度的均衡,最小连接数均衡,处理能力均衡。
分享一些监控层面如果做一个大的系统肯定要有完善监控把这个监控分成四层,一个是用户层,一个是业务在线层,一个是应用层,一个是系从层,用户层包括一 些用户的真实请求的测试,还有包括一些模拟用户请求测试,模拟用户请求各个地方布一些节点可以跟听云做和睦,一些视频检测这是都是模拟视频的测试。还有一 些业务特性,业务逻辑有一些是要做转码,多码率,每个用户要求不一样,有的要求360P、720P,1080P,都不一样。还有应用程序,包括一些服务特 性像流量包括进程的存在,还有一些系统,包括你的CPO利用率是不是马拉,LO是不是被打死,3DG的网卡是不是满了?网络质量,刚才讲的延时这些方面的 监控。监控这个数子怎么用在系统优化运行上也是很重要的东西。这是我们大家一块讨论和关注的一些东西。
主持人:苏元朋总分享在产品层给用户以及品牌商家做保驾护航这个非常重要。下面提问的机会给到观众,大家可以举手示意一下。
提问:现阶段需要考虑的一些症结点在哪儿?表拍,延时的,那些是前期部署产品需要注意的?
苏元朋:从产品来讲,还能秒拍。我们也服务于电商的客户,也是可以看到就近的商家卖什么东西,商价可以送货上门,看每个产品的介绍他只是在浏览,秒拍可以快速让你了解介绍这个产品什么东西,对我有没有用。
提问:前一阵子花椒请到柳岩,大家感受到这个卡壳。直播云的角度来看是不是给初创企业的一些经验避免它?
苏元朋:相当于你做系统做功能是OK,但是服务大量的用户出现的问题,这是我刚才讲的,说白了,海量用户进来把它的系统打爆了,雪崩了。系统不可用。这 种情况下最简单的方式是两种策略,一个是过载保护,你能承载多少,承载30万的用户就承载30万的用户超过就可以干掉,走一个再进来一个,这是一个方法 论。一个是降级,比如说现在直播的是1080P的直播,那我降级是360P或者540P,对用户做有损服务,不是追求完美。其实做任何的产品和技术,有一 个很重要的方法,就是追求不完美。我们不是追求完美,我们是追求不完美。我们要根据我们架构和技术满足客户真实需求,有问题主动降级解决,要不然整个系统 都雪崩掉。
提问:很多企业如果想部署这个直播产品的时候是找传统CDN厂商。直播云跟网速这类的企业有什么样的区别,对于我们初创团队或者说电商企业来讲。有什么样的优势?
苏元朋:做云来讲,第一就是做云会对于一些中小客户的支持更好一点。还有一些东西是做云的东西,这是一个整体的基础服务。比如说可以做直播可以和你的主 机做打通,可以和数据分析做结合,可以把你的文件电波转到对方存储,这是整个云产品的这一个生态,其实这样是可以更多的帮助用户解决它的,不仅仅只是考虑 CDN,因为初创企业更关心系的是什么,我怎么样快速把我产品做起来,这是它最关心的事情,怎么样让我的时间,因为初创企业最多是时间成本和人力成本。
共 3 页 首页 上一页 [1] 2 [3] 下一页 末页
- 名博
-
指南针:七连阳又有何妨 少爷:首战告捷有重大启示
彬哥:六连阳后防止回调 李君壮:连续上攻高抛低吸
- 推荐
-
牛熊:周四的热点直播
指南针:周四操作参考