仓库源文

.. Kenneth Lee 版权所有 2018-2020

:Authors: Kenneth Lee :Version: 1.0

为什么你会在你的数据中心中部署ARM服务器


本文我们讨论ARM服务器的发展前景。

ARM服务器是按着x86服务的规格做的,你能想到的x86服务器的机制基本上它都提供。比如 RAS,UEFI,服务器Linux发行版,其他不可言说的OS发行版,Docker,KVM,Web Server, Memcache,SQL/NoSQL数据库,iSCSI,Java/Python/PHP,OpenStack等等等等,这些都有 人跑过,在验证环境和产品环境中都有人跑过。

当然,前提是你的软件得重新编译……

这就拦住很多人了。不过你得这样想,如果你能把ARM服务器在数据中心某些节点上用起来 ,特别是那些完全被你控制的节点上(比如说占据整个网络三分之一节点的块存储节点? 或者大量使用的Memcache节点?)用起来,比起你现在数据中心硬件上只有一个老大哥, 你没有任何议价能力,这个背后是不是有种邪恶的快感?

现代网络最大的好处在于它是建立在通用通讯协议的基础上的,微服务的存在给你灵活移 动业务提供了无数的可能。ARM服务器的引入,作为内置大部分外设能力的SoC(比如大部 分ARM服务器都是直接内置SAS, 高速网络和PCIE控制器),为这个网络的降成本和降功耗 ,提供了更多的可能性。

但你还是会犹豫,因为你没有用过,对它能给你什么样的反馈,这个东西会带来多少坑, 你是没有底的。这种情况下,为什么要给本来就缺乏维护人手的数据中心引入新的风险?

我觉得,我们可以从一个新的业务开始,这个新的业务是“云端手机”。

手机应用的开发者都知道,Android SDK通过qemu在x86上模拟ARM的指令,从而模拟一台手 机供开发者调试,这个对于一般的开发还是可以的,但要做大规模的测试,就有点难了。 但如果你的开发机器本来就是ARM的,这个就完全不同了,这种情况下,qemu可以直接运行 在KVM模式,相当于在本地运行,这可以获得10倍以上的性能提升。

有人可能会Argue说,现在其实也有x86仿真x86的Android虚拟机,但那种虚拟机能跑多少 应用你们都清楚,这个世界有种东西叫NDK的。

这种云端手机首先对回归测试是很有吸引力的,你用真机测试,你能准备多少种不同大小 的屏幕?你怎么模拟电源的不同状态?你怎么模拟GPS的不同位置?这些东西,对于虚拟机 来说,不过就是个脚本的事情。

至于很多人想到的什么“刷单”这种无耻的事情,你们不要跟我谈,我这种正经人是一句都 听不进去的。实际上我们不需要,用虚拟的手机集群可以做的正经事多了去了,最常见一 种情形,应用市场对大批应用的回归测试,就需要手机集群来完成。

这种应用对数据中心引入的代价不高,因为它完全可以作为libvirt的一个connection,或 者说,它自己就可以作为一个nova node,接受其他已有成熟的管理措施来管理,比如 openstack的一整套或者基于K8S。

其实这个都不是我想讨论的重点。我是在考虑未来的一个趋势:服务云化,这一点已经成 为现实了。但服务毕竟还是和最终客户关系不大的。但手机云化,就和每个个人息息相关 了。

我先解释一下什么叫手机云化。手机云化就是用云上的虚拟机运行一台手机。一般情形下 ,它和任何人没有关系,仅仅在云上运行,你可以连看都不看它,它的显示仅仅是个虚拟 的动作,所以它吃掉的计算资源仅仅是运算部分的。当你需要访问这台手机,你可以通过 一台真实的手机attach它,这样它的显示就到你的机器上了,它的传感器数据(比如你的 位置,手机的倾斜度,加速度之类)也从你的手机上获取。

在现实方面,它通常有两种技术,一种是屏幕压缩传输,就是所有的图层叠加在服务器上 完成,然后压缩成特定规格的视频流,复原到手机上。另一个种技术是服务器仅仅对手机 发送OpenGL原语,在手机上完成所有的绘图(使用手机的GPU能力),后者常用于高性能游 戏这种要求低时延的环境。

手机云化可以带来什么?我觉得包括这些:

第一,把大业务量的应用放到强大的服务器集群中,强化了手机的能力。手机放多少个核 ,和服务器比都是渣渣,功耗在那里限制着呢。而提高功耗是不靠谱的,因为每台大电池 容量的手机就是一个炸弹。你敢做出大容量的电池,航空公司就敢不让你上飞机。

所以,如果手机在云上,你随身的手机只需要完成交互,那些什么自动识别,自动归类啦 ,大部分都可以在云上完成了。也许你觉得直接按应用,用云存储也能接着这种问题。但 云存储和直接手机上就是所访问的数据的整个体验是不同的。云存储做不到的事情,一台 有100T存储空间,背后还有按需分配的4个1080Ti保驾护航的“云端手机”却是可以做到的。

能一辈子陪着你的是你云端的手机,你手中的,仅仅是你的手机灵魂的一个臭皮囊。

对于这个趋势,我猜很多人会担心私隐问题。私隐问题最后会怎么解决,我不知道,但现 实是,你现在已经有无数的东西在云上了。

第二,BYOD。员工进入企业的工作区域。企业的信息不希望被员工的手机访问,员工的私 人信息不希望被企业访问。很简单,进入企业网就直接连企业分配的云端手机,反正在企 业网内部,带宽都是可保证的,该怎么干活怎么干活。离开企业,回到自己的生活,两者 完全分离。

第三,沙箱测试。你对一个软件不放心吗?租台手机用3天来试用一下,用完就扔,不留痕 迹。怎么样?

第四,备份。克隆手机即可备份

第五,远程协助。类似PC的远程协助功能,你打游戏打了一半过不了关,把手机屏幕推给 男朋友给你过,过了又推送回来……

第六,辅助办公。用桌面连云手机,显示为桌面(类似华为Mate10的桌面模式),完成基 本的办公工作。

手机的数量远远大于服务器的数量,如果打开手机上推的这个渠道,会有无数的可能性。 各位拽着钱没地方花的云提供商们,不连几个机架来玩玩吗?