⚠️本文为1.5W字超长篇⚠️
⚠️干货满满,请注意喝水⚠️
前天(2020-09-17)在阿里云的云栖大会上,阿里云发布了一个叫“无影”的云电脑,这东西在各大平台都引起了一些争议。目前我在V2EX、知乎、哔哩哔哩都有看到讨论它的,也有人私聊我问我怎么看,大多数人都是觉得吹概念大于实际,然而真的是这样吗?
造成大多数人持这种观点的原因我认为主要有三点:
大多数人对云电脑、云游戏这种「云端渲染」类应用的了解并不怎么多,所以不清楚实际能做到什么水平。
有些人体验过云电脑/云游戏,但由于体验的并非是正常水平的产品,用完觉得体验极差,所以就有了偏见,认为云电脑/云游戏只能做到这种程度。
绝大多数人对真实售价、成本和其他各方面企业会考虑的因素了解得并不怎么多,甚至可能完全没有了解,所以在只看到了个表面的情况下,认为企业用云电脑会血亏。
不过其实导致这三点的原因也挺好理解的:
1和2的话,毕竟这类应用做成服务的话太烧钱了,小厂做的体验不好,而大厂做的又晚,也还没怎么推广,导致大多数人都没有体验过正常的云游戏/云电脑;而自己家里有服务器或长期开机的电脑并且还有足够高上行带宽的人更是少之又少,就连做技术的都没有多少能满足这个条件的,更别说非技术人员了。
虽然有些人在局域网环境下体验过这种云端渲染应用的效果,但由于使用的串流工具与用途不匹配(比如用RDP玩游戏)、硬件配置不行(比如没有硬件加速,垃圾到编码延迟几十ms)、网络环境差(比如服务端都是连WIFI的,还有信号干扰问题,互ping都能上十几到上百ms不等的延迟)等因素,体验也是差强人意。
而3的话,有多少人能实际地接触到ToB应用和实体设备的销售、采购、折旧出售这整个流程,并且还接触并了解过各种ToB应用、了解一个企业一般来说会需要在哪些方面掏钱,甚至是思考过企业会对这些ToB应用进行的各种考量呢?少之又少吧…基本应该只有企业的创始人才能满足部分条件,但这种人哪会没事干上网扯淡啊,公司一大堆破事都忙不过来了,每天一睁眼就有一堆钱从眼前飘走,还扯这些有的没的?(不过很巧的是,这些条件我都满足…)
不扯多了,下面讲点实际的。
在看了我前面说的之后,你应该会有点疑惑,正常水平的云电脑、云游戏应当是什么样的呢?这种正常水平又有什么样的条件呢?在了解这两个问题之前,我先来带你快速过一遍云电脑、云游戏的细节和原理,避免因为理解偏差而对我说的实际情况产生疑惑或质疑。
首先你要知道,云电脑、云游戏这两个东西是一家人,它们的原理都差不多,只不过优化的侧重方向不同会导致在不同应用场景下有体验的差异而已。
云电脑、云游戏都相当于是你在看一个可以进行操作的直播,也就是所谓的视频流+操作转发。云电脑的直播内容是整个桌面,而云游戏的直播内容是具体的某个游戏,你可以直接像操作本地的电脑一样去操作这个直播视频另一端的那个设备。
那么它们两个的区别在哪呢?
如果你用过微软的远程桌面(RDP)的话,你应该会发现:在画面静止时,带宽的占用是微乎其微的(几KB到几十KB/s),只有部分画面变化时才会增高,但大多数情况下只要你不看视频,这个带宽占用也高不到哪去(几百KB/s)。
而如果你打开了一个窗口播放视频,你还会发现:播放的流畅度(延迟表现)和带宽占用会随着你视频所占用的屏幕空间大小的变化而变化。播放器的画面越小,观感就越流畅、带宽占用就越低;播放器的画面越大,观感就越迟滞、带宽占用就越高。
甚至,如果你还用过其他远程控制类工具的话,你可能还会发现:在使用有些工具时,鼠标指针会出现比实际操作慢半拍(也就是所谓的“不跟手”)的现象,但在使用RDP时,这种现象又不会出现。
上面说的这些,其实都是RDP针对云电脑这种场景的特殊优化。得益于当今出色的视频编码技术,在面对云电脑这种画面变化很少的应用场景时,视频流可以通过大量使用预测编码、按区域分割等操作压缩到极小的程度,也就是可以使带宽占用变得极低。
虽然这种高压缩率的处理方式会导致在部分场景下出现画面延迟上升的情况,但对于云电脑来说,其实延迟并没有那么重要。毕竟你在操作电脑时并不会像玩游戏那样,对操作的延迟极其敏感,你能感受到的延迟其实主要都是由鼠标指针这个图像(注意这很关键)带来的,而RDP针对这方面的优化能让你感受不到鼠标指针的延迟。
RDP的做法其实很简单,就是在客户端上弄了个虚拟的鼠标指针出来,并且只展示这一个虚拟的鼠标指针。经过这个处理之后,鼠标指针这个图像就已经变成了本地渲染的状态,感受上的实时性也就不再受到视频编码的延迟影响了,你就无法感受到这个延迟了。
那么肯定会有人会说了:“这不是掩耳盗铃吗?虽然鼠标指针看起来没有延迟,但实际那个延迟还是在啊?怎么可能会无法感受到延迟?”,其实这就涉及到操作转发的问题了。
事实上操作转发所耗费的时间极短,单纯转发操作的延迟可以说是「两个设备互ping的延迟是多少,操作转发的延迟就基本上是多少」,并没有像视频流的编码、解码这些操作带来的的高额延迟存在,所以你基本上可以把操作转发当作是感知不到延迟的实时操作。
而由于前面所强调的,鼠标指针的不跟手感实际上是图像带来的,那么一个本地渲染的图像加上一个实际感知不到延迟的操作转发,你自然是感受不到延迟的了。
刚刚说了云电脑,现在再来说说云游戏。云游戏和云电脑最大的差别就是:由于存在着延迟的问题,云游戏很难对视频流进行大量的压缩处理,并且由于各个游戏的操作方式不同,也不可能做到像“本地虚拟一个鼠标指针”这样的操作了。
所以,如果你有用过Nvidia的Shield串流,你应该会发现:即使你的画面处于静止状态,带宽也还是会占用得比较高(根据分辨率和码率的不同而不同,通常是1-2MB/s),相比于RDP的几KB到几十KB/s而言,根本不是一个级别的。
但是,云游戏就完全没法对视频流进行压缩了吗?并不是。虽然无法过多地使用预测编码之类的操作来使视频流变小,但我们还可以对不重要的区域降低清晰度啊!只要对主视觉区域的画面保留高清晰度、对那些不怎么重要的区域降低清晰度,那么视频流的大小也就还是能被压缩下来了。
于是你在体验或看别人体验一些云游戏服务(比如加拿大白嫖王Linus的这个视频https://www.bilibili.com/video/BV1c7411y7Kp)时可能会看到或听到这样一个现象:有些云游戏产品在暗部场景和高速运动时,会出现一些色块、色彩不均匀、部分模糊的情况。这其实就是这些云游戏厂商为了节省带宽消耗而做了太多的压缩导致的。压过头了,那体验自然就差了。
可能有的朋友在看了上面的部分后仍然感觉有点难以理解,这里我画了一张图来将视频流和操作转发两个部分的主要延迟给可视化地表现出来了,应该能够帮助你进行理解。
注意了,这两个部分的延迟是独立的,本质上并不会互相干扰,即使视频流部分的延迟再高,操作转发也还是可以做到极低的延迟。
现在网上有一个流传极广的说法:“服务器把画面发到你电脑上,你再看到画面,然后进行操作后操作又要发回给服务器,这个一来一回的延迟会让云游戏的延迟很高”,这个说法其实很不严谨,因为这个“一来一回”在大多数情况下其实并不会导致延迟高。
简单来说,在大多数情况下,你的操作并不是等待画面彻底出现后才进行,而是在那之前就已经开始操作了,画面和操作是同步且独立地进行的,又何来的“很高”的延迟呢?要知道你的大脑可没有那么弱鸡,它是会做预判、让你提前进行操作的。
当然了,在少数情况下(比如一些测反应速度的游戏),这一点延迟可能会让你反应速度慢了一些,导致错过合适的时机,也就是会让你感受到「按了按键但没生效」的效果。这种情况其实就是典型的场景还不合适,需要针对性地进行优化。
游戏行业其实很早就有类似的做法来解决这种问题,比如通过优化跳跃判定机制、延长响应区域的方式,让游戏人物即使到了悬崖最边缘甚至超出了悬崖边缘一点点也能够正常起跳(比如马里奥),从而达到大幅提升游戏体验的效果。云游戏的延迟问题也是同理。
顺带一提,这个“一来一回的延迟”换成专业术语应为“系统延迟”,“系统延迟”在Nvidia的这篇文章(https://www.nvidia.cn/geforce/news/reflex-low-latency-platform)中有提到,感兴趣的朋友可以看看。
防杠说明:Nvidia的那篇文章中有这么一张图,为了防止出现理解偏差,我在这里再提醒一下…这张图中中间的那三个部分在云游戏中就是网络传输的部分。相当于原本图里的是更微观的表现,而换成网络传输的部分是宏观的表现,仅此而已。
然后再来说说视频流和操作转发这两个部分的每一个步骤的情况吧。
视频流部分会造成延迟的主要步骤就是图中的图像采集、视频流编解码、网络传输(发送和接收),而图像展示这一步实际上是耗时最小的步骤。
操作转发部分会造成延迟的主要步骤其实就只有网络传输,读取操作输入和复现操作的耗时其实都是微乎其微的,这两个步骤加起来估计连1ms都到不了。
图像采集部分通常来说是几乎没有延迟的,毕竟显卡渲染出来画面之后就会直接把画面放到显存/内存中,所以产生的延迟极低。那么什么情况下会有延迟呢?其实像我之前折腾的那个Switch云游戏(https://mp.weixin.qq.com/s/UzZgb8O_9usOtz-Ih1VU9w)就是一个典型的例子。
由于我不可能直接以Switch作为服务端,也无法在电脑上直接渲染Switch的画面,所以只能通过采集卡的来将Switch输出的画面读到PC上来完成图像采集这一个步骤。
而采集卡这东西呢,有研究过的朋友应该都知道,有些采集卡是会有10ms左右甚至100ms以上的延迟的,这个延迟是怎么来的呢?一个是芯片和接口的性能差,导致图像转发效率低下,无法实时地将图像传输到PC,那么自然就会有延迟了;还有一个就是部分采集卡会自己对视频流进行一次编码,从而降低芯片和接口的成本,并使部分配置较低的用户不会因为视频码率过大而处理不过来导致出现卡顿现象。
所以,如果是这种从外部设备采集画面做云游戏的情况,一定要降低图像采集这一部分的延迟,采用高规格的采集卡是可以使这一步的延迟几乎没有的。
这一部分的话其实主要就看有没有硬件加速以及用于加速的芯片的性能水平了,像近几年出的CPU和显卡以及手机的SoC其实都有内置专门的ASIC视频编解码器(芯片),能让编解码操作耗费的时间变得极少,通常都是10ms内的水平。
下面这几张图是使用Moonlight串流游戏时的效果,左上角有个“decoding time”和“解码时间”就是解码产生的延迟,编码延迟与这是差不多的。
可以看到,1080P@60加上20Mbps码率的情况下,不管是手机还是电脑的解码延迟基本上是5ms以内,即使上到了4K@60加上80Mbps码率也并未超过10ms,而且小米10 Pro上的延迟提升明显极小。
注:虽然MBP的解码延迟看起来更高一些,但这可能是受到了我外接4K屏的影响,并不代表AMD芯片或苹果电脑的实际水平比高通芯片或小米手机要差。
网络传输方面,为了降低延迟,云电脑和云游戏基本都是采用UDP或基于UDP的通信协议来进行传输的。在经过了这么长时间的发展和优化后,这方面的延迟基本上可以说等同于两个设备互ping的延迟了。虽然在高码率的情况下会受到MTU之类的东西的影响而增加一些延迟,但都很微小(几ms),基本可以忽略掉。(前面图中的两个设备均为连接WIFI的状态,并非有线)
但“基本上可以说等同于两个设备互ping的延迟”并不代表这一块的延迟就一定低,在实际的网络环境中,无线网络质量、运营商的QoS策略、组网方式等各种因素都会增加网络传输这一块的延迟。不过这些因素,用户和服务商能优化的并不多,主要还是看网络基础建设,所以…只要某一方有钱,用户就能获得极致的体验。
不过现在中国的网络基础建设已经很好了,在有线环境下,同城的两个设备互ping延迟能做到4-5ms;同省的能做到不超过10ms;即使是深圳到北京、上海这种距离,也仅仅就30ms左右而已。也就是说,只要你自己的路由器、连接服务器的方式不出岔子,网络延迟可以说是很低的。
顺带再说说5G在这方面的提升吧。虽然很多人认为5G的延迟提升对于云电脑、云游戏而言没有啥用,但事实上这个提升是很大的,简单来说就是能让蜂窝网络环境下的体验直接提升到WIFI环境的水平。
要知道即使是深圳这种基站布得密密麻麻的城市,4G的空口延迟也会在12-30ms之间频繁波动,并且还会时不时地丢个包、跳一下100-200ms,虽然这对云电脑来说还好,但对云游戏来说是很致命的;
而5G在目前基站还没有完全部署好的情况下,就已经能做到室外5-10ms且极其稳定、基本不丢包的延迟了,这提升还不大吗?而且可以想像一下,如果是在那些部署了室内微基站的地方,用着1ms左右极其稳定的空口延迟,直接就能做到和近距离连WIFI一样了。
注:空口延迟和前面所说的两个设备互ping的延迟是需要加起来计算的,这两个延迟不是同一个东西。
虽然我知道肯定有人会说什么“都室内了为什么不直接用WIFI”之类的话,但我懒得解释了,毕竟这方面能抬杠的点多到说不完,我就只说一个事实吧:并不是所有商家都会有高性能的WIFI给你用的,而蜂窝网络的基站原本就需要部署。
看了前面两大部分的内容后,你应该会对云电脑、云游戏的细节和一些可能出现的问题及解决方案都有所了解了,心中的一些疑虑应该也被打消掉了,那么正常水平到底是什么样的呢?
作为一个家里有服务器和百兆上行带宽并且从大约15年左右就开始从学校和公司通过RDP、Moonlight、Steam等工具远程连回家跑运算、聊微信、看视频、玩游戏、修BUG的人,我可以很明确地告诉你:
只要是个近几年出的中等档次显卡或便携式设备的SoC,解码是肯定没有问题的,延迟能做到和我前面说的水平一致。
只要显卡能正常负载游戏本身的画面渲染+视频编码这两个任务,那么编码也是肯定没有问题的,延迟也能做到和我前面说的水平一致。
客户端能用有线网络当然最好,但WIFI和5G也不差。而服务端只要是在同城部署的,那么玩云游戏就几乎感受不到延迟,甚至同省也没啥问题,最多就是极其轻微的不跟手而已(实测)。云电脑就更不用说了,只要是在国内主要城市部署的,在骨干网正常的任意城市去连都基本不会让你感受到延迟,根本不用担心。
看到这里肯定会有人想说:“你前面说的都是延迟啊,有些云游戏平台画质差得要死你怎么不说?”。
其实吧…画质是跟视频流的分辨率和码率有直接关系的,分辨率高、码率高,那么你看到的画面清晰度也就越高。相对的,带宽占用也就越高。
另外,帧率也会导致带宽占用变高,因为越高的帧率就代表着画面变化越频繁,需要传输的数据当然也就越多。
所以正常来说云电脑、云游戏需要有多大的带宽呢?根据我用了这么长时间的经验,差不多是这样的:
如果不看视频的话,在4K分辨率的情况下,如果只是用用Office、看看网页、写写代码这种操作的话,基本上只会用个几十KB/s的带宽。即使频繁拖动图片晃来晃去也没关系,最多也就1-2MB/s而已。
如果看视频的话,就要看具体的客户端软件实现了,RDP是1080P下3-4MB/s左右,4K下10MB/s左右。
所以云电脑在实际日常使用时带宽占用并不高的,并不需要太过担心。这个带宽水平在客户端方面连3G、4G都能满足,在服务端也称不上成本高昂,所以问题并不大。
码率基本上是固定死的,主要看分辨率和帧率。
在1080P@60加上20Mbps码率的情况下,大多数游戏场景(比如GTA5开车)会需要1.5-2MB/s左右的带宽,极少数整个屏幕都高频变化的场景会需要3-4MB/s的带宽。
而在4K@60加上80Mbps码率的情况下,大多数游戏场景会需要6-7MB/s左右的带宽,极少数整个屏幕都高频变化的场景会需要8-10MB/s的带宽。
如果带宽不够的话,视频流就无法实时地传输到客户端,就会出现丢帧,也就是所谓的“卡顿”了,这是需要尽量避免的。所以很多小厂商搞的云游戏画面特别糊,其实就是因为他们没有钱搞更高的上行带宽,所以只能降低分辨率、码率、帧率,以此来降低带宽的成本。
顺带一提,得益于现在HEVC(H.265)算法高效的视频编码能力,即使码率不怎么高也能做到极其清晰的画面,目前实测4K@60加上150Mbps码率的画面基本上是和原始显示画面一致的,至少我并排放置时看不出什么差别。
简单来说,带宽方面其实我们并不需要担心,因为我们客户端的下行带宽是很充裕的,而即使服务端那边的带宽不够,我们也没有办法解决,所以只需要关心延迟就好了。
而延迟方面,如果我们把各个主要造成延迟的步骤都加起来算的话,可以得出一个结论:如果服务端与客户端都在同一个城市,在纯粹传输未高压的视频流的情况下,系统延迟(前面提到过的总体的延迟)是可以做到大约6ms(编码)+5ms(网络传输)+1ms(无线连接时的空口延迟)+6ms(解码)=18ms左右这个水平的,基本是无感知。
另外,越新、越高端的设备,在算力和网络连接上的提升也就越明显,延迟也就越低,这是毋庸置疑的。
不过让用户来升级客户端,显然不是云电脑、云游戏的正常选择,在服务端上来进行提升显然更直接、有效。比如说服务端可以采用专门设计的视频编码卡,像Xilinx有个FPGA卡在做视频编码时,1080P@60能做到<1ms的延迟,相比于普通显卡的3-5ms左右而言,又可以降低一些。未来如果大规模铺开了的话,这些东西应该也是会逐渐普及到各个服务器上的,安心用就好了,不需要我们操心。
前面我说了很多以ms(毫秒)为单位的延迟,但如果你没有实际体验过的话,可能还是会有点搞不懂具体什么样的延迟是高、什么样的延迟是低。所以,我在这里再说一个能比较直观地判断延迟的方法吧。
这个判断方法是这样的:我们都知道,视频是由一帧一帧的图片构成的,帧率(也就是每秒的帧数,FPS)越高,每一帧之间的间隔时间就越短,流畅度也就越高。也就是说,我们只需要拿系统延迟与帧间隔时间进行对比,就能很直观地看出我们的客户端与服务端之间差了多少帧了。
换句话来说就是:系统延迟要做到与帧间隔时间差不多甚至更低的程度,才不会出现与服务端差距过大导致丢帧(卡顿、不顺畅)的情况。
那么这个帧间隔时间怎么计算呢?很简单,拿1000毫秒去除以FPS就可以得出每一帧之间相差多少毫秒了。比如:
30FPS是1000 / 30 ≈ 33.33ms
60FPS是1000 / 60 ≈ 16.67ms
120FPS是1000 / 120 ≈ 8.33ms
240FPS是1000 / 240 ≈ 4.17ms
那么拿出我们前面得到的,服务端与客户端都在同一个城市,在纯粹传输未高压的视频流的情况下的系统延迟是大约18ms这个数值来进行对比。
很显然,30FPS肯定没问题,因为系统延迟远低于帧间隔时间;60FPS也没问题,相差1.33ms,不是特别大,连慢1帧(16.67ms)的差距都没到;但是再高的话,120帧的帧间隔时间是8.33ms,在系统延迟为18ms的情况下,这个差距就大了去了,服务端显示完两帧了,客户端才展示出一帧,不丢帧才怪了。
当然,还是前面说的,只是云游戏对这个延迟比较关心,云电脑是不用太在乎这个延迟的,因为FPS不高,你真的感知不到。
说了这么多,你应该已经明白技术上是没有问题的了,但你可能还是会想问这样一个问题:“虽然技术上没有问题,但为什么我要用云电脑、云游戏呢?从阿里云之类的云服务器价格来看,我直接买一台电脑比他便宜多了啊?为什么不直接用本地的机器?”。
其实并不是你想像的那样,下面我将拆分出多个部分来讲一讲这个问题。
首先要搞清楚一个事情,你看到的云服务器的价格并不是真实价格,也并不能与云电脑、云游戏的定价相提并论…
云服务器这种东西,本质上就是把一台电脑分给多个人用(说难听点叫超卖),利用每个人使用时长和实际性能使用情况的不同,通过算法合理地将资源分配给每个人,让每个人都能在自己使用时得到一台完整电脑的体验。所以,云服务器是用的人越多、人均占用资源越少,人均价格就越低。
换句话来说就是:云服务器毕竟还是服务器,独占性的考虑会更多一些,而云电脑、云游戏是不存在24*7地使用的,每个人的使用情况都不同,所以拿云服务器的价格来对比云电脑、云游戏未来的情况,是很不合理的。
更何况,云服务器的价格,也分为展示价和协议价(合同价),通常都是采购数量越多、使用时长越长,能得到的价格就越低,你在官网看到的价格压根就不是量大的时候的实际价格,又怎么可能能对比得了呢?。
举个例子,这是华为云之前一次活动的优惠策略(防杠说明:每个云服务商都差不多):
你可以很清楚地看到,光是这个活动的云服务器部分,都区分出了线上(展示价)和暗促(协议价)两种不同的情况,暗促部分的价格明显大幅低于线上部分的价格。还有最下方那个深圳区域的云服务器甚至直接写的价格单谈。
再举个例子,这是华为云的分销商后台(防杠说明:每个云服务商都差不多):
你可以很清楚地看到,这个后台是能直接给客户设置折扣比例的。而这个折扣比例,和前面的暗促还不是同一个东西,这个折扣比例是只要你挂在分销商名下,分销商就能给你设置的东西。
明白了吗?你所看到的价格,并不一定是真实的价格,量大之后的价格对于没接触过的人而言,根本想像不到有多低。
有些抬杠的人喜欢拿所谓的4K环绕屏、高刷新率、顶级画质、GB/s级文件传输之类的来批判云电脑、云游戏,但实际上这些追求极致体验的情况,本地的机器都是没个万把块就拿不下来的。
要知道这个世界上是普通人占多数,中低配机器一抓一大把,那些为了追求极致体验而弄的顶配机器真的只是小圈子的玩具而已。
就像很多人会选择使用游戏机玩游戏而非使用PC玩游戏一样,成本低廉,效果又挺好,那为什么还非要配一台高配的PC呢?
上面说的还只是ToC市场而已,还有ToB市场。ToB市场其实比ToC还要更加简单粗暴,而且只会考虑云电脑,不会考虑云游戏,毕竟主要还是办公用。
相比于ToC时普通用户大多考虑的性能和体验问题,企业考虑的更多是哪个方案成本更低、性价比更高(比如性能或其他功能)以及相对而言的安全性和管理的方便性。
相对而言的安全性主要指中病毒、文件丢失之类的情况,很显然,云服务的安全性会高很多。(防杠说明:在可信任的情况下)
管理的方便性就更不用说了,本地永远比不过云电脑,毕竟都是虚拟机。
而成本?企业日常办公大多数都是相对静态的页面吧?吃性能的应用也不怎么多吧?即使有也不会长时间吃性能吧?对于服务商而言,大多数企业都是这种情况,那么定价自然可以压到极低的程度。
于是,对于企业而言,一个专用终端的成本又极低(ARM板就行,一两百块),带宽上的开销又不高(一个租办公室送的百兆宽带就能轻松带起几十个人使用云电脑办公),使用起来的成本也不高(云电脑不存在折旧和不白菜价就卖不出去的情况),一合计下来比买个性能一般的电脑还划算,为什么不考虑?
然后性能也不用怎么说了吧?云端动态调节配置随随便便就能让某一个人获得极高的性能分配,在平时消耗不高的情况下又能把这部分性能收回去干其他事,对用户来说又能得到原本很难得到的高性能、又能以低廉的成本使用,为什么不考虑?(防杠说明:日常操作并不需要多高的性能,可以自己平时注意一下看看)
而且对于企业而言,团队协作工具总得买吧?对于做技术的企业而言,服务器啥的总得买吧?买了之后连云电脑一起打包送给你怎么样?香不香?香爆了好吧?
更何况,云电脑随时随地都能使用,更换地点还能保持原有的使用环境和体验,这对于出差、驻场之类的场景来说简直太香了。(防杠说明:并不是一定要专用终端,手机、平板甚至是华强北出品的折叠柔性屏啥的多了去了,网络在中国也完全不是问题)
除了前面说的这些以外,云服务还有着像存储数据可靠性极高之类的优势,因硬件意外损坏而无法使用甚至丢失数据的概率相比于本地的机器而言要低很多。这种优势简单来说就是:平时都不怎么在意,但碰到的时候又会后悔为什么没考虑到。
举几个例子:
一般的消费级机械硬盘在经过了大量、长期的读写之后是会出现坏道的,文件损坏地悄无声息,你压根就感知不到。
一般的消费级SSD在碰到断电的情况时,有概率出现掉盘的情况,整个硬盘会直接变成软件无法识别的状态,并且硬盘上的数据会全部丢失。
一般的消费级主板,在碰到电压不稳定、碰到雷击,甚至是就正常用着,都会有概率爆电容,导致出现各种奇奇怪怪的情况。
防杠说明:例子中指的都是中低端产品,越高端的产品用料越扎实、越不容易出问题。
防杠说明plus:永远不要忽略掉绝大多数人用的都是中低端产品这个事实。
所以,在价格能做到很低的情况下,对于不追求极致体验、不需要长时间高性能使用的大多数普通用户来说,云电脑、云游戏又便宜又体验好,为什么要用本地的机器?
在边缘计算逐渐铺开之后(防杠说明:铁塔和运营商都已经在搞了),云电脑、云游戏的服务器节点可以下沉到“边”,通过直接走城域网甚至是区域内基站的内网的方式,使网络传输的总延迟达到更低的程度,并且让带宽的限制更小,服务商和用户的带宽成本更低,体验会更接近于内网+WIFI环境下的使用,高分辨率、高帧率、高码率的串流也会越来越多。
同时,由于边缘计算的铺开,普通的云服务、手机流量费等可能也会降价,同时像电视的视频清晰度也有可能会提升。(防杠说明:广电已经在搞了)
在类似于阿里云的“无影”、Steam的串流盒之类的专用设备普及后,客户端的性能也会慢慢地不再受用户原有设备的影响,达到更好、更统一化的体验。并且,由于专用设备所使用的零部件都是固定的,量大会降低单个设备的成本,用户在设备上的投入会更加少,甚至会出现直接白送的情况。(防杠说明:腾讯云已经在和别人合作搞了,直接嵌入电视机内部)(防杠说明plus:商业模式多得很,使用成本想压低很简单,更何况使用成本高也没人用不是?)
而在使用云电脑、云游戏的用户越来越多之后,量变引起服务商的成本降低,再加上每个人的使用时长和性能要求都不同,在经过合理的分配之后,每个人的使用成本也将会逐渐降低。最终,云电脑、云游戏会像云服务器一样逐渐变为一个基础服务。当然了,高配的本地设备也还是会有人使用,但那都是需要长时间满载或追求极致体验的情况了,和有了云服务器之后依然自建机房是一个道理。
所以“无影”到底怎么样呢?这一部分我会分为「硬件」、「软件」、「生态、卖点和盈利模式」以及「疑虑和未来发展」四个部分来说,所有结论均基于目前网上可见的信息推测得出,并不保证均为实际情况。
先看图:
这个是“无影”的终端,阿里云的人叫它C-Key。
从图片上来看,这个C-Key只有卡片大小,只有一个应该是全功能的USB Type-C接口,通过一根Type-C线直接连接显示器即可实现供电+显示输出。
图1中,键盘鼠标没有看到接线,应该都是通过蓝牙连接的;网线也没有看到接,所以网络应该是走的WIFI。但实际上如果是全功能USB Type-C的话,接上转接器和USB-Hub,有线连接外设和网络自然也不是什么问题,不需要太过担心操作延迟问题。
除此之外,还有一个指纹识别模块,用来作为开机键和指纹登录用。
这个C-Key本身的性能方面,从最后那张图中可以看到是用的是Amlogic(晶晨半导体)的S905Y2这个SoC,是一个专门针对机顶盒之类的多媒体场景设计的SoC。注:内存和闪存没啥用可以忽略掉,重点关注SoC即可。
S905Y2这个SoC的单片售价是多少我不清楚,但成品的机顶盒设备淘宝上卖的是180RMB左右,所以这个终端造价应该还挺便宜的。
这个SoC用的是12nm制程工艺,有着四核ARM Cortex-A53架构CPU、Mali-G31 MP2 GPU,支持杜比音效、HDR10+、H.265、VP9等,视频输出支持HDMI2.1标准,无线方面支持蓝牙5.0,但不支持WIFI6。
不过最关键的还是,这个SoC内的视频解码芯片,解码性能可以做到4K@75的水平,并且这个SoC是针对7*24小时使用场景设计的,不用太担心容易损坏之类的。
可以说基于这个SoC做出来的“无影”终端,用个几年甚至十几年都没有问题,即使出新款应该也就只是升级个WIFI、蓝牙而已了。而且不想换终端本体也没关系,更换扩展坞一样可以获得提升(虽然不一定划算),毕竟有全功能USB Type-C。
有一定了解的人看到图的时候应该就知道了,这其实就是个极小的“瘦客户机”。但是它为什么能做到这么小,而以前的瘦客户机却那么大呢?其实这就是典型的时代的发展导致的变化。
以前ARM芯片的性能极低且价格没多大优势,ARM架构下能使用的接口也没有那么地丰富;而现在,就像前面说的我用小米10 Pro串流GTA5一样,ARM芯片的性能已经能做到随便解码4K视频且确保每帧的解码延迟极低的程度了。那么,为什么还要用功耗又高、发热又大的X86、AMD64甚至是性能也极差的ATOM架构芯片呢?
既然功耗低了、发热小了,那设备也就不再需要主动散热,而是依靠外壳做被动散热就行,设备当然可以做得更小、更薄。
以前的网络也没有现在这么高带宽、低延迟、低成本,即使是局域网环境下也得接网线才能做到比较好的体验;而现在,随着高规格的WIFI设备越来越普及以及5G的逐步发展,网线在不那么追求极低延迟的云电脑场景下,自然也不再是首选了。
省去了一个RJ45口之后,设备做得更薄也是理所当然的事情。
以前的SoC也没有像现在这样,什么乱七八糟的东西都集成进去,一块板子上要焊一堆的芯片,占地面积自然也就大了;而现在,SoC集成的东西越来越多,小到电源管理、蓝牙、NFC,大到声卡、网卡、GPU,各种东西都可以被集成到一个芯片上。
芯片少了、板子小了,设备做得更小也同样是理所当然的事情。
以前的电源和通信得分开、USB和显示得分开,电源还得要一个小砖头适配器,VGA、DVI、HDMI还占地方大得要死,甚至这些线缆本身还又粗又硬(不要打黄色问号),携带起来极其麻烦;而现在,只要设备支持全功能USB Type-C或是Thunderbolt,就能通过一根又细又软的线连上显示器,直接完成供电+显示输出+外部设备的接入这三个原本需要插一堆线的事情。
接口少了、占地小了,板子也自然而然地就小了,设备做得更轻、更小自然也毫无问题。
所以啊…不要说什么“云电脑是好久以前就有的东西”、“现在还吹云电脑非蠢即坏”,这尼玛光是硬件的差距都大了去了。
而且时代的发展可不仅仅是在硬件上的,各方面的发展会让应用更容易普及、适合更多人使用。现在的云电脑和以前的VDI可不是同样的体验,就像云服务器和VPS的差别一样,看似相似,实际差距却极大。
再来说说软件。还是先看图:
从图中可以看到,这个“无影”并不仅仅是云电脑,它还整合了阿里在办公领域生态里的各种东西,在本地通过应该是Web的方式来实现了大部分比较日常的功能,而不是所有东西都是云端渲染的。(貌似很多人都忽略了这一点)
然后它应该是通过云端渲染的方式,直接把各种主要的应用都做成了“云应用”,直接吞下了Windows、Linux、Android三大平台的应用。从图中可以看到,不管是Office全家桶、Adobe全家桶还是各类技术人员用得较多的编辑器、IDE,都被做成了云应用,虽然Linux和Android的没有体现出来, 但实际上这并不是啥问题,只要想实现就都可以实现。
所以其实很明显,阿里自己清楚,仅仅是云电脑而已的话并没有多大的竞争力,“无影”主要卖的还是一个生态,而不是简简单单的云电脑。
前面说了,“无影”卖的主要是阿里在办公领域的生态,那么生态为什么能是卖点或者说是特色呢?还是回到之前我说的那个企业的电脑成本问题,依然是之前那个例子。
在同样的使用时长、同样的总体使用成本下,“无影”在需要时能够直接获得原本难以获得的极高性能,而且还不需要考虑设备折旧的问题。如果在这个基础上,“无影”的云电脑部分本身还是送的呢…?
毕竟云电脑这部分,终端设备的成本并不高、大多数用户的资源占用量也不大,像中国电信甚至都是直接装宽带送云电脑+云盘的。所以,在基本性能对于大多数用户而言完全足够且不怎么花钱的情况下,为什么不直接送呢?不仅仅是送云电脑服务本身,还送“无影”的终端设备,换来的却是整个企业都用阿里的全套办公生态,这对于阿里来说赚爆了好吧?
而对于企业来说,团队原本可能就会搞个Teambition、钉钉、企业邮箱、域名啥的,阿里如果打包卖的话,算下来其实还省了一些买电脑的钱,这不也是赚爆?而且企业的员工,有些都是单纯的Web操作就能解决所有事情了把?是不是也就意味着这部分人不需要使用云电脑的部分,而是直接用这个终端来处理就够了呢?这成本不是又省下来了一些?
当然了,刚刚说的送云电脑,即使送也肯定只会送低配、仅够日常操作的云电脑,高配的肯定是不会也不能送的。那么高配的要怎么收费呢?很显然,通过按量计费的方式来就行了,毕竟会用到大量计算资源的人和他们使用时长都不多,需要时才提升性能并按使用时长来计费明显是最合适的选择。
但是肯定总会有些人需要较长的时间(但不是特别长)使用高配的云电脑,那这种情况怎么办呢?上套餐呗。比如说一个套餐内每个月有多少小时的多少核、多少内存的提速,需要时自动触发或者是手动点击提速,这种做法各大厂商都玩烂了,并且也很符合实际情况,阿里大概率会这么做。
所以,阿里接下来应该会推出这样的操作:买阿里办公生态全家桶套餐,送“无影”终端、普通配置云电脑、云盘、企业邮箱、x年域名(因为域名可能会涨价)、模板建站服务等,并且可以通过购买“性能包”或动态升配的方式获得更高的云电脑性能…这对于中小企业而言,这可太香了。
虽然“无影”是确实香,但大家其实都有一个共同的疑虑,那就是隐私性的问题。
可能是百度网盘的8秒教育片引起的吧,大家现在其实都对云服务有种恐惧感,生怕自己的东西被随意翻看、删除。毕竟大家都知道,在云服务器上的东西,只要没有加密处理,那么服务商只要想看就都能看到,根本不存在隐私可言。
虽然云服务厂商大多都提供了加密云盘、加密存储之类的基础功能或服务,但这些加密真的安全吗?虽然云服务厂商宣称自己对数据都默认进行了加密,但这个说法可以相信吗?这些加密的密码最终不还是在云服务厂商手中吗?这些问题对于比较注重隐私的用户(特别是企业),其实是非常关键的,用与不用,完全在于是否能够信任。
单靠嘴皮子说加密了固然能使部分人在厂商没有爆出丑闻前信任其隐私性,但不那么轻易信任的人肯定也不在少数。所以,未来这方面很有可能是需要结合数字证书(比如银行的U盾和电子身份证)和部分区块链领域的做法来让可信度提升的,坐看阿里的操作并且静待云服务行业发展吧。
很可能会有人不明白为什么这能跟区块链扯上关系,这里再解释一下。
区块链领域,比如说EOS的话是这样的:先本地生成公钥(账号)和私钥(密码),然后通过转账(认证)的方式激活并绑定一个公开的账号名(昵称),其他人只能知道你的公钥(账号)和账号名(昵称),不能知道你的私钥(密码)。
然后在需要确认身份时,只需要通过公钥来对你使用私钥加密出来的签名进行校验就行了,并不需要知道你的私钥。
也就是说,从你的账号创建到使用,除了你自己以外,没有任何其他人会知道你的密码,即使是服务商也不行。而现在账号体系,都是你在别人平台上注册,填写了你的账号密码之后就完事了,实际对方有没有加密存储、有没有把你的密码做Hash处理,你是并不知道的;数字证书方面,银行U盾和电子身份证这种实际上都是由中心化的机构签发的,私钥(密码)在给你之前,其实他们是能够得知的,所以其实你并不知道他们知不知道你的私钥。
这篇文章也没啥好总结的了,该总结的内容其实都在文中每一个部分集中地表述过了,再说一遍也没啥意思,说点别的吧:这篇文章是我看到各大平台上很多做技术的朋友发出的看低甚至是直接开喷的言论后的有感而发,一开始只是想随便写写,结果写着写着被自己的强迫症逼到写出了又一篇一万两千字的长文,再加上防杠的部分直接就一万五千字了…就当是做了个比较成体系的科普吧,不过我估计能看完的应该也没多少人就是了hhh。
最后再提醒一下能看到这里的读者,请永远不要在没有多少了解的情况下过于极端地看待一个事物。毕竟在你所了解的信息都不全面,甚至可能都不是真实信息的情况下,你又怎么可能能基于这些信息得出正确的结论呢?