一、背景
云桌面主要是指PC端的桌面系统(如windows)运行在云端,用户在本地通过软终端或者瘦终端作为入口,外接显示器,连接到远程的桌面系统,体验就如同本地电脑一样,整个使用过程中,所有的计算工作在云端完成。除了云桌面,现在基于安卓系统的云手游、云手机、云应用等业务场景,发展也是非常火热,像阿里、腾讯、字节等都在推进布局自己的云化业务。
2022年6月13日,IDC发布的《虚拟客户端计算软件市场半年跟踪报告》显示:2021年虚拟客户端计算软件市场的市场规模达到了3.2亿美元(21.6亿人民币),同比增长25.2%。
IDC定义的虚拟客户端计算软件市场主要指的是与桌面云/桌面虚拟化技术相关的软件市场,包括了虚拟桌面,应用虚拟化以及其他种类的桌面云/桌面虚拟化技术。这个市场并不是一个新兴市场,但是随着这几年企业工作方式的转型,疫情的影响以及云上DaaS(Desktop as a Service)模式的高速发展,整体市场迸发出了新的活力。
Citrix和VMware作为云桌面市场的全球领导者,在中国同样具有很大的影响力,但是随着近几年国内厂商的崛起,也遇到了较大的挑战。他们通过积极拓展合作伙伴来发展更广阔的商业市场。
在5G以及家用带宽日益提速的背景下,网络大带宽传输已经日趋成熟,对于运营商来说,可以充分利用自身网络通道+IDC机房的双重优势,将用户的终端设备计算能力全量上云,一方面可以终端瘦身,减少用户的投入,一方面发挥运营商的资源优势,提升云端的算力密度和资源利用率,也是为国家的双碳政策贡献力量。
二、发展历史
纵观云桌面的技术演进路线,从两大巨头Citrix和VMware的发展历程(如下图所示)中可看出,它们分别聚焦于一项技术侧重点:Citrix公司是以推流协议起家,在桌面虚拟化的关键核心技术上已经研发储备超过30年之久,推流协议的性能业界第一;而VMware公司则是以虚拟化技术起家,在服务器虚拟化方面的研发储备也超过30年之久,虚拟化解决方案整体市场占比超过90%。
国内云桌面企业从2010年开始陆续发力,多以企业私有云场景入手点。但近些年,国内多家厂商也陆续进入到公有云市场。主流云桌面厂商主要有阿里云、中兴、锐捷、深信服、华为等,其云桌面产品涉及的关键技术有自研、合作、基于开源改造等,但是核心关键技术都包括计算资源云化(虚拟化)、端到端推流(远程显示协议)、网络传输(抗抖动、低时延)、外设适配(USB设备远程接入)。
三、技术架构
经过多年的技术演进,各大厂商的云化整体方案如下图所示:
用户层:用户通过软件终端或者硬件终端连接远程桌面系统;
网络层:在公有云或者私有云网络环境传输数据;
接入层:负责用户信息校验、桌面分配控制、连接、安全控制等;
虚拟桌面/应用池:给用户分配虚拟的桌面系统/应用并关联虚拟资源;
资源池:将硬件层的资源进行虚拟池化管理。
将上述整体方案转换为技术方案,如下图所示:
从左侧的端、网、云三个层次的厚度即可看出,大部分核心关键技术点都集中在云端,云魔百盒、云游戏、云桌面三个典型应用场景基本可以覆盖当前整体云化能力的各个技术领域,归纳总结其整体流程,如下图所示:
整个端到端的流程可以总结为流化的过程,主要分为云、端、网三大部分,从技术领域的角度,可总结为计算机资源云化、端到端推流、网络传输、外设适配四大基础能力。
下面分别从云、端、网结合四大基础能力展开详细说明。
(一)云:虚拟化、抓屏、编码(计算资源云化、端到端推流)
1. 虚拟化
主要包括基于ARM架构的虚拟化和X86架构的虚拟化;
虚拟化技术采用KVM+QEMU的技术栈,实现系统级虚拟化;
在应用级虚拟化方面,主要以安卓场景为主,开源的有Anbox,Anbox是一种基于容器的方法,可以在常规的GNU/Linux系统(如Ubuntu)上启动完整的Android系统。换句话说,Anbox可以让你在Linux系统上运行Android,而不用像虚拟化那样缓慢;当然也有厂商自研安卓应用容器化方案,如华为的Kbox;在桌面场景下,其实也是系统虚拟化,只需在串流方面采用窗口串流,对用户屏蔽窗口以外的信息;
当然也有厂商采用硬件的 方式云化,相当于是真机在云端运行,安卓场景下如海马云的ARM阵列,桌面场景下如PC农场(虚拟化高密度主机);
系统/应用虚拟化后,云端如何对这些虚机进行管理呢,还需要一套晚上的虚拟化管理平台,负责对计算资源、虚机等进行调度管理,日常运维;
在时延敏感的游戏场景下,需要考虑GPU虚拟化或者GPU直通,来加速视频编码。
2. 抓屏
桌面场景包括windows和Linux;
windows抓屏技术主要有GDI、BitBlt、DXGI等;
Linux抓屏技术主要有X11、GLX、DRM等;
安卓抓屏技术主要是MediaProjection+VirtualDiaplay;
针对不同的业务场景需要根据具体情况针对性的综合运用以及性能优化。
3. 编码
抓屏后的原始图像编码标准、编码算法、码率控制等这些都是涉及到端到端时延的关键因素;
图像编码标准有YUV、RGB,可以根据具体业务场景和要求选择;
编码算法有MJPEG、H264、H265等;
整个视频编码传输涉及码率、帧率、分辨率三个关键数据,需要根据实际的网络质量动态跳帧这些数据以满足用户的基本使用,实现传输质量自适应。
(二)端:解码、指令收集上传、USB外设接入(端到端推流、外设适配)
1. 解码
对应云端的编码算法,需要匹配相应的解码流程,在低时延、高画质的场景下,需要考虑硬件解码,会提高用户终端设备的成本。
2. 指令收集上传
终端设备上会采集键鼠、手柄等外接设备的按键控制指令并组装成对应的数据协议格式上传云端,由云端系统解析并进行事件响应。
3. USB外设接入
在桌面场景下,为了符合用户对PC端电脑的所有使用场景需求,USB的外设接入适配是必不可少的工作,常见的有U盘、摄像头、麦克风等。不同厂家的云桌面技术栈会存在差异,相应的USB外设能力也层次不齐,与桌面协议强耦合,导致云 桌面的整体能力替换成本巨大。所以外设方面可以采用USB/IP协议来实现,USB/IP在2009年已经合并到Linux Kernel,而且该方案完全跨平台(云电脑平台),与桌面协议完全解耦,灵活可插拔;
在安卓场景下,外设需求相对弱化,外设的类型也会相对单一;
在公有云场景,为了减少前置入口网关设备的投入,可采用NAT内网穿透方案,覆盖私有云和公有云的网络场景。
(三)网:抗弱网环境、低时延传输(网络)
1. 抗抖动
可以采用QUIC UDP的方案,,基于 UDP 实现,握手过程简单,改进了拥塞控制,可以多路复用,同时还具备FEC前向纠错特性,在网络抖动丢包时可以一定程度上保证数据的完整性。
2. 低时延
云化场景的整个链路RTT包括如下步骤:
其中比较耗时的关键步骤为抓屏、编码、网络传输、解码,所以整体的RTT时延控制不仅仅在网络侧,云和端的图形图像编解码等方面也需要深度优化,降低对应节点的时延。
以上从云、网、端三个方面总结输出了四大基础能力,并对这些核心关键技术点进行了详细的说明,在技术点逐个实现之后,可向下沉淀基础能力,延展到更多其它的云化业务场景,发挥更大的技术价值。
四、总结展望
如上图所示,作为电信运营商之首的中国移动,以业务需求为导向,落实国家“东数西算”工程部署,优化“4+3+X”数据中心布局,面向京津冀、长三角、粤港澳为代表的东部节点及成渝国家枢纽节点,与呼和浩特、哈尔滨、贵州三大跨省节点,进行算力互补对接,在此背景下,可以充分发挥运营商的网络+计算的强大优势,为云化业务场景的深度演进提供有力支撑。
在资源云化能力、推流能力、网络能力、外设适配能力逐步建成的基础上,依托运营商的资源优势,通过网+云+IDC融合业务对外提供能力,形成连接+算力+能力+应用的一体化服务模式;云化业务场景从系统云化往应用云化逐步演进,提高云端算力密度,降本增效,同时在国产化方面支持硬件和软件的国产化,如以麒麟为代表的国产操作系统(Linux内核)和以鲲鹏为代表的国产硬件,最终实现全架构、全平台、全系统、全应用的云化目标,赋能各行各业。