为什么你会在你的数据中心中部署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的桌面模式),完成基本的办公工作。

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

    原文作者:in nek
    原文地址: https://zhuanlan.zhihu.com/p/31961016
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞