一张能同时满足「分发」与「计算」需求的网。
阿里云直播产品架构图中,主要分为端和云两个部分:在端侧,主要包含推流端和播放端;在云侧,一是基于分布式节点构建的传输网,二是在阿里云中心构建的不同Region之间的直播中心,提供计算服务,包括直播所涉及的转码、AI、导播、截图、录制等等。
直播技术的发展带来分发和计算的巨大需求。
从分发角度看,直播产生的流量带宽越来越高,用户对直播延迟等播放体验的要求也越来越高,主播连麦PK、云游戏、4K/8K、AR/VR/XR等超大流量应用的交互性要求越来越高。
从计算角度看,越来越多重计算的应用在诞生,比如:需要高码率或巨大算力做视频转码处理和AI分析。
综合来看,想要把直播做得更好,除了端,还有云,而云的优化核心是「分发」和「计算」两大部分。
首先,在分发层面,阿里云基于中心和边缘,以及其他的异构节点,构建了一张超低延迟、分布式下沉,能支持通信级别的传输网络,也就是阿里云全球实时传输网GRTN。
GRTN核心关键点就是分发体系的升级,将原先树状网络中的一级网络、二级网络汇聚,基于汇聚资源做分层,相当于从原来的层级网络变为对等网络。基于对等网络,阿里云再构建了全局异常发现,包括实时的路径计算、基于流维度的路径再编排,最后再生成当前流或任务的最优传输路径。
传统的传输网络,无论对流做怎样的处理,都要经过固定层级的链路,而GRTN可以根据主播和观众的实时状态、位置做路径选优,比如主播与观众都在上海区域,同一个节点就可以完成分发,节省了多次中转的步骤,直播延迟自然降低很多。根据阿里云的数据统计,整体路径从原来平均4跳降低到2级跳。传统网络分发的延迟大约是5-6秒,基于GRTN整个网络和全链路RTC传输,可以将延时降低至少95%,实现秒级延迟。
目前,GRTN网络已经充分应用于阿里生态,如手淘的全链路RTC电商直播等。原先手淘电商直播是基于层级,现在无论是同运营商、跨运营商,还是远距离,链路都是一个多变的全分布式下沉结构;无论是跨国还是跨洲,都是动态化编排。
去年,GRTN的相关研究成果,即提供音视频传输技术的优化和服务保障,也被SIGCOMM收录并发表了论文。
GRTN网络带来的第二个核心变化是,原来需要做额外的连麦或旁路的MCU集群以及合流,将其改造成全链路RTC之后,不再需要额外的旁路RTC系统,实现在传输网通道进行直播推流、拉流播放、连麦,同时在端和流、云和流之间做动态调度,摒弃了一个业务用两套系统维。
通过一张网,一个内部传输协议,实现了业务的RTC、连麦、合流、播放一体化。
GRTN是基于全分布式下沉的,既有中心也有本地和边缘节点,再加上现场计算(MEC)或一些融合的资源,阿里云把这些资源都纳入GRTN管理起来,并按需调用。
不同类型资源按照不同的特性可以划分为中心云资源、边缘云资源和多云融合资源。中心云资源可靠性很高,但分布不是很广;边缘云的资源等级次之,但性价比更高。将不同的异构资源融合,适配不同的业务和场景,从而达到用整个分布式的所有资源构建起一张网,提供传输、计算服务。
借助阿里云分布式容器平台,能在平台上面管理并且实时、弹性地使用各种资源。该平台最大的特性是弹性可扩展的多资源纳管,不管是中心资源,还是边缘云分布式节点、多云融合资源,都可以在平台上通过一套接入注册机制进行纳管。阿里云容器管理平台为GRTN网络的计算提供支撑,当需要使用这些资源的时候,通过该平台就能获取异构资源。
核心优势
1 提升效率:为终端提供距离更近、时延更低的资源,实现快速资源纳管交付
2 降低成本:降低内部跨区域的级联传输成本
3 易运维:采用云原生交付方式,提升边缘应用可运维性,降低客户运维投入
4 低时延、提升用户体验:基于海量低延时的边缘集群资源覆盖,为客户提供时延更低的体验
GRTN网络可以实现网的对等传输,但如转码、AI处理等计算,大部分还是在中心。
既然流已经在GRTN网络里,且能够实现就近传输,能否把计算也在网里解决?
基于这一想法,阿里云提出了算网融合的实践。
下图是原有的传输和计算的形态,可以看到整体是分离的,数据都需要远距离传输到集中的中心区域做计算。基于GRTN的传输能力和分布式异构的计算资源,我们发现,GRTN 实际也能够承载计算的能力。
有了异构资源的快速纳管和弹性伸缩,同时配合算子的托管和触发条件自定义控制,GRTN 实现了Serverless 标准的集算子发布、托管、触发、升级一体的用户自定义的一个分布式计算平台。
当然,该计算平台跟当下的中心云 Serverless 计算平台相比还是有很多局限性,我们的定位就是基于 GRTN 传输的前提下的一个实时流媒体的垂直场景计算平台。
未来,关于音视频计算比例会越来越高,算力需求也会越来越大。我们的目标是基于 GRTN 这种网,实现传输和计算的融合,让传输和计算能够最有效的适配资源。
算子的注册和触发流程是什么?首先,用户基于算法做业务打包,比如做转码或者超分,打包好后上传到镜像中心,发布到GRTN 分布式资源上,当GRTN有一个流需要做计算的时候(上图左侧),计算和传输在一个节点发生;
当这个流需要计算,就按照用户定义的触发条件,当流被推上来之后或播放的时候,就从流媒体大脑查询整个流的信息,知道这个流现在在什么节点,节点附近的容器纳管的资源平台有没有资源?如果有资源,就可以做匹配计算,如果没有可以动态扩展和纳管。
当把这个任务从节点启动,节点内可以认为是内网环境,处理之后再推回到本节点完成接下来的分发。整个过程中没有在公网做额外的交互,就完成了计算的任务。
边缘转码场景下,原有的方案需要先到中心的GRTN节点,然后再到转码集群,转码完成之后再回推到 GRTN 节点,然后再分发到需要播放的节点播放。
新的方案中,用户推流不需要再往中心推,当有用户播放时就启动边缘推流地方的转码算子,在同一个节点完成转码和处理,同时可以分发到其他地方。
因为分发的链路是原有GRTN网络构建好的,只是额外增加了算力能力,转码完成之后可以认为原来推流的原始流节点有了两个能力,一个是原始流,一个是转码流。
该平台不一定适合所有的处理,但至少在实时流媒体的后处理和预处理上有优势,是提高效率和降低成本的主要动力和适配高效的方法,既节省了成本,又降低了延迟。
云游戏是典型的云渲染应用场景,整个边缘的GRTN网络除了做直播以外,还是一个具有通信能力的分发网络,对于低延迟场景都适用,比如直播相关的连麦、RTC通信、云游戏通过GRTN网络也可以用串流来做。
云游戏的渲染大概分为以下几个基本业务接入步骤:用户接入,根据用户所在的区域分配,比如根据IP信息就近分配,用户接入后,在这个区域里启动渲染引擎,该引擎是用户自己定义的引擎,可以是某种游戏,也可以是元宇宙数字虚拟人,同时整个流信息管理得到整个信息之后,就可以和客户端进行交互,客户端就把流拉下来。
过程中除了串流,还有云游戏的操控,以及通过网关和背后的引擎做交互,整个过程跟转码或者其他类似的流媒体处理有一些相关性。
GRTN平台未来一定是异构资源的,资源一定是融合的,无论是中心的、边缘的、其它融合厂商的,只要资源适合场景,都可以通过阿里云容器云的异构纳管平台接入,做为临时资源或长期的弹性扩容。
在平台未来平台的形式上,第一是分布式,边缘天生就是分布式的;第二是小型化,边缘有零碎或者是小型的节点。
第三是自治性,每个区域的资源或节点自治的能力要有体现,纳管体系虽然统一纳管,但每个节点之间不应该有太大的关联性,不应该相关影响。
第四是协同性,分配资源时,从中心管控或者平台的角度是需要协同的,某个区域因为资源不足或者数据的流转是需要通过全局的协同调度,才能实现最优。
最后就是云原生,要做到任何一个资源在短时间内都能纳管入平台,在闲置的时候又能迅速被别的平台使用,这一定是云原生的。
GRTN致力于提供流媒体云原生的服务,方便客户能够构建自己的流媒体云原生应用,让流媒体服务无处不在。
阿里云将打造普惠的流媒体云原生生态,为用户提供更实时、更流畅以及更高清的视听体验。