人类对于计算机未来的疯狂想象终与现实融汇。
刚刚结束的天猫双11创下了两项新记录:交易额2684亿,订单峰值54.4万笔/秒,阿里巴巴集团CTO张建锋在当晚宣布,双11核心系统100%上云,其中阿里云自研神龙服务器在这次史诗级技术大迁移中大放异彩。
阿里巴巴集团CTO张建锋
IT技术经历了最沸腾的七十年,大型机、小型机以及云计算先后迈进历史的车轮,但从未有一个时代像神龙一样,把芯片、软件以及硬件服务器完美融合在一起。从某种程度上讲,神龙已经写进计算机的历史长卷中。
一
时间轴拨回至1945年,世界第一台通用计算机ENIAC问世,这一庞然大物只能计算基于数字的加、减、乘、除任务。
不仅如此,受制于当时的科技水平,每一台计算机都有各自的任务,因此组件不一样使用的机器语言也不一样,就像是不同物种的生物一样难以交流。
现代计算机始祖ENIAC
十年后,晶体管开始在计算机中使用,同时还出现了打印机、存储磁盘、内存、操作系统等和我们现在使用的计算机相差无几的基础设备,编程语言也出现了并很快取代了复杂的机器语言成为生产力工具。这些已经与六十年后的今天的计算机结构非常接近。
与此同时,工程师们产生了一个大胆的想法,如何统一所有的硬件设备,让一套业务系统可以在瞬间完成扩容、运行和部署。
直到今天,硬件之辩仍然是电子设备圈子一个经久不衰的辩论话题,“AMD处理器不兼容应用”、“操作系统版本依赖”等问题还是困扰着使用者。不难想象,在现代通用计算机出生伊始,这个统一所有硬件和软件的想法是多么疯狂,从初始的计算机基础设备到统一所有软硬件体系,这其中的路途无异于一场长征。
一开始实现这个想法的方法很粗暴,既然硬件不一致,那么就完全用同样的机器使用有线网络连接起来通讯。1969年美国国防部按照这个思路搭建了ARPPANet,这就是最早的Internet雏形。
“当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍”。不难看出,粗暴统一硬件的的想法是和摩尔定律相悖的。硬件在不断发展,配套硬件的基础系统、中间件和编程语言也在更新,统一硬件互联意味着搭建完成就面临着软硬件全面落后。
就在计算机的长征计划第一阶段受挫的同期,又有了新的希望,虚拟化技术出现了。
二
互联网技术无法带领计算机完成“长征”,同期产生的虚拟化技术则更为务实,承认并借助了摩尔定律算力不断增长的规律。
1974年,加州大学洛杉矶分校(UCLA)的两位计功机科学家Gerald Popek和Robert Goldberg发表一篇题为"Formal Requirements for Virtualizable Third Generation Architectures"的开创性论文。虚拟化技术的故事就由此展开。
虚拟化技术承认了硬件直接存在巨大差异的客观事实,也承认并寄希望于硬件性能的不断爆发式增长,在硬件和操作系统之间创建了一个虚拟机监控器(Virtual Machine Monitor,简称VMM)作为中间层。
VMM作为中间层接管了传统操作系统的绝大部分功能或者作为主机操作系统(Host OS)的一部分运行在最高特权级,而原有设备的操作系统成为了客户操作系统(Guest OS),运行在VMM隔离出的区块中接受VMM的监控和管理。
简而言之,虚拟化技术就是把操作系统APP化了,用VMM取代了原来的操作系统。
似乎虚拟化技术是完成计算机“巴别塔”计划的归途,然而事情没那么简单。虚拟化技术抽象出了一个额外的中间层保证输出的数据规范统一,代价就是需要分配额外的算力用于维护VMM中间层,同时,还需要CPU的指令集允许创建一个使用最高特权的中间层。
要实现虚拟化必须构造一个在指令集支持虚拟化的硬件,这就带来了巨大的搭建成本。因此,最初虚拟化仅仅用于IBM的超级计算机中,高企的成本问题让普通用户望而却步,能够把业务放在虚拟化环境中的已经算是土豪用户了,更逞论快捷扩容、敏捷部署这些我们现在认为理所应当要有的功能。
部署IBM大型机虚拟化设备需要一个房间的面积
虚拟化技术带领下的长征面临了两种路线的分裂。
IBM让虚拟化技术走向现实,又使计算机发展走向割裂。王谢堂前燕无法飞入寻常百姓家,这场计算机的长征的最终目标——软硬件大一统的宏伟想法就只能沦为巨头和土豪用户的玩具,永远无法实现惠及普通人的目标。
另一方面,为了让通用计算机设备也能在虚拟化技术加持下实现快速扩容、业务快速复制部署等功能,在X86处理器这类低成本通用处理器以放弃向前兼容为代价完成了虚拟化指令集的支持后,VMware、微软、甲骨文等企业为低成本的通用处理器提供了动态二进制替换的方式,在运行代码之前进行扫描,将不能执行的敏感指令替换、翻译后在中间层执行,绕过了指令集的兼容性问题。,然而通用处理器无法针对业务进行电路优化的特点又限制了低成本虚拟化方案的规模应用,同时,由于需要对指令进行识别,在执行过程中又造成了性能瓶颈。
一时间,虚拟化技术带领下的长征陷入了成本和性能的两难境地。
虚拟化技术在大用量需求业务的推动下,领队的旗帜从微软、甲骨文这类LaaS服务商手上逐渐移交到了更贴近业务的互联网企业。
三
国外互联网企业以亚马逊为首,主导了从VMware的全模拟技术切换到侧重业务的更灵活的硬件全虚拟化技术。
几乎是同期,中国的计算机长征也由偏重业务的互联网企业领跑。2010年IT领袖峰会BAT三方对虚拟化和云计算争论余音未决,阿里巴巴决定坚持云计算领跑业务支撑,这个决定为阿里巴巴赢得了两年的先发优势,阿里云与国外亚马逊的AWS并驾齐驱接过了长征的旗帜。
事实上,早在2009年阿里巴巴就将云计算和虚拟化结合作为阿里云的重点方向,先后规模上马了Xen和KVM方案,并在自己生态内的巨量业务需求中打磨,连续支撑了多年双11。
随着业务爆发性增长,成本和性能问题就摆在云计算厂商面前,而这个问题整个行业都无解:考虑成本基于通用处理器搭建硬件就必须忍受因缺乏专用电路,不得不分配算力给VMM带来的10%以上的性能对规模部署带来巨量的损耗;追求性能就只能使用传统IDC,这显然是与云计算大趋势相违背的。
阿里云团队将目光回溯到60年前的互联网和虚拟化之争。通用处理器的虚拟化算力缺陷正如当年的摩尔定律一样,是无法改变的客观事实。可是如果改变思路绕过算力问题呢?
于是,阿里云率先在全球找到了最佳解决方案,将芯片、虚拟化软件以及硬件融合,并于2017年云栖大会上推出神龙架构,首次在云计算行业里实现了计算资源0损耗。VMM的工作由适配虚拟化硬件加速要求的专用MOC卡承担,通用处理器只负责纯粹的计算,这就是神龙服务器的神龙X-Dragon架构思路。另一方面,阿里云的数据库、业务模块、运营套件、加速模块都围绕X-Dragon部署,在云计算上实现了软硬一体的构想。仅仅一个月后,AWS也发布了同类产品Nitro。
神龙服务器解决了通用处理器的算力耗费问题,又兼顾了云计算扩容、部署低成本的优势,在无数先行者对“软硬件大一统”的长征之路上,阿里巴巴踩着前辈的脚印,走出了自己的道路。
回望七十年无数科学家和工程师的前仆后继,IT系统一次构建处处部署的疯狂想法缘起于大学校园的象牙塔内,产品化的落地被面向用户业务领域的蓝色巨人IBM完成,经过了VMware、微软、甲骨文等先行者的修补,走过了专用大型机、定制化业务软件的弯路,最终拥有数十亿普通用户的阿里巴巴和亚马逊同时接过了这场长征的旗帜。这似乎是一种宿命,谁更懂业务场景、更能满足用户需求,谁就掌握了未来的钥匙。
四
这场长征远没有结束。
阿里巴巴用神龙架构将虚拟化负担从通用处理器上解放,这就意味着虚拟化不再与芯片的硬件设计或者指令集架构挂钩,业务都被抽象到上层的云上部署。
虽然,通用处理器是IT系统最底层的技术,但又与日常生活息息相关。国内老牌芯片商不在少数,无论是X86路线的海光、兆芯,Alpha路线的申威,还是ARM路线的飞腾,抑或是类MIPS路线的龙芯、君正,都在IT市场征战多年。
但是由于与现有处理器架构差异巨大,各种功能尤其是虚拟化指令的实现千差万别,国产通用处理器在软件生态上水土不服,很难在市场上自由竞争成长。
阿里巴巴的神龙架构为国产处理器创造了绝佳的机会,在神龙架构面前,所有的处理器都被抽象为简单的计算模块,成为云计算中虚拟化的一个无差异片区。
这就是计算机领域长征的目标——“软硬件大一统”更深层次的含义,抹平硬件的差异,支持用户在云上专注自身业务,让上帝的归上帝,让凯撒的归凯撒。神龙架构将为民族的通用处理器赋能,成为世界一统的通用处理器。
六十年来的计算机精神交汇于神龙,阿里巴巴的神龙架构将成为播种机,将无差别、平等拥有宝贵算力的计算机精神播撒到世界的每一个角落。