起底阿里云“神龙架构”
在我国云南东巴圣地玉水寨,有一处神泉。传说这神泉的泉眼处,是玉龙神出没的地方。
每年玉龙神都要出来巡视丽江坝子,但见那神龙戏水而出、带风而下,轻盈灵动间把水翻折成三叠。水流的哗哗声跟神泉的安宁、祥和相映成趣,玉水寨美景“神龙三叠水”的美名便得乎于此。
传说总是美丽而虚幻,但是我们今天要说的“神龙三叠(迭)”,则是真真切切发生着的科技创新故事。
一、神龙3·献礼阿里云10年
从2009年到2019年,阿里云(也即“阿里云智能”)十岁了。
回首当年IT领袖峰会,BAT掌门人分别就“云计算”发表观点。在“旧瓶新酒论”和“为时过早论”面前,只有“不懂技术”的马云坚定要做云计算。
10年前,只有马云对云计算充满信心
2009年9月,阿里云正式成立。
事实证明,抢跑了两年的阿里云真正掌握了先机,此后的阿里云在中国云计算市场一骑绝尘,丝毫不亚于亚马逊AWS 在海外的风头。
阿里巴巴这个世界最大的数字经济体,从来不会躺在功劳簿上睡大觉或是沾沾自喜。尽管云计算越来越成为一门以规模取胜的生意,但阿里云并没有停下寻找新的(除规模外)核心竞争力的脚步。
苦心人,天不负。
2017年10月,阿里云“神龙架构”横空出世。
代表云数据中心虚拟化技术变革、致力于以软硬协同设计提升虚拟化效率的“X-Dragon”,与被称为“裸金属虚拟化的先行者”的第一代神龙服务器,双剑合璧,踏歌而来。
2017年10月,神龙架构亮相
此后的2018、2019年,神龙架构一年一个台阶,第二代、第三代神龙服务器接踵而至。
在今年的阿里云栖大会上,阿里云智能基础产品事业部总经理蒋江伟(小邪)透露,神龙架构已大规模应用于淘宝、天猫、菜鸟等业务;未来,阿里云遍布全球的百万服务器将全面升级至第三代神龙架构。
神龙,真有这么神?
二、神龙架构·缘起
如果将“2006年亚马逊推出EC2和S3(以租赁计算力来为企业运行业务应用)”视为云计算商业化的起点的话,2015年前后,云计算市场已经网罗了大部分的互联网企业。
这些“云原生企业”,对云这一弹性计算服务用得非常好,云计算也能很好地满足这些企业的需求。
其实自云计算商用以来,在IaaS(基础设施即服务)层面,云计算的底层技术并没有根本性的变化:大规模标准化的X86服务器+(可以将这些资源池化并提供虚拟机服务的)Hypervisor系统软件。
Hypervisor系统通过管理标准X86计算机集群,为用户提供虚拟机服务;用户因此得到弹性的计算资源,也不需运维复杂的底层硬件,可以专注于业务创新。
然而,小邪、阿里云弹性计算技术负责人张献涛(旭卿)他们逐渐发现了一个问题——
那些非云原生企业,他们的软件栈构建在传统的物理机上,在上云的过程中,很多不愿意做架构改造或者无从改起。这样一来,就导致超过一半(50%~60%)的用户只能“部分上云”,甚至百分之七八十的业务仍然在线下。
针对这个痛点,阿里云的技术专家们开始思考:如何打造一款既能够接入云基础设施,又能够提供类似物理机服务的计算产品?
“这就是我们当时做神龙的初衷。”小邪告诉《本来科技》。
其他云厂商也有所行动,但他们当时提供的是一种如今可称作“托管云”的服务——将传统的物理机买回来放到云数据中心,提供用户“租赁服务”。
小邪觉得:托管云生意做不长
小邪觉得这种模式行不通。
“它没办法持续:一千台服务器还能吃得消,一万台、三万五万台的时候呢?”
机器自己买,硬盘坏了算自己的、数据丢了用户找你算账,这么做云服务,早晚被拖垮。小邪说,国内一家这么做的云计算厂商,已经濒临崩溃了。
客户真正想要什么?
“要的是物理机的资源,弹性的服务。其实就是‘定制化的物理机’——既能够享受物理机的性能,又能发挥云计算的优势。”
旭卿说,这在那时,是个“太过理想化的东西”。
三、虚拟化·“黑洞”
“阿里的工程师有个特点:遇到问题就兴奋。”旭卿告诉《本来科技》,当时想到要实现这个理想化的产品时,阿里云技术团队也是“抓瞎”:没有产品可以模仿,没有现成的芯片、板卡等硬件可以支撑。
但这确是一个从需求出发驱动的技术实现。
大型业务上云,容器化是最热门的,它也代表着趋势,因为它解决了运维的标准问题。但是,跑容器性能最好的是物理机(裸机服务器)。一旦上云,容器本身也要一次虚拟化,加上上云的虚拟化,就是两层虚拟化,虚拟化本身就有性能占用,虚拟化的嵌套,更是不可避免地带来新的性能损耗。
“技术人员都是有洁癖的。”小邪说:“这种性能的消耗会让他们不爽。”
这个性能消耗其实是可以量化的。“差不多10%。”小邪说。
10%的消耗意味着什么?意味着如果有1亿的预算,什么都没干,1千万就没了。
另外,在同一物理机上的虚拟机之间,也会存在资源抢占的情况,这样一来,虚拟机的性能就会产生波动,影响计算的稳定性。
用户会说:“既然如此,我为什么不用物理服务器?”
虚拟化,从来就是云计算的基础。数十年前诞生的虚拟化技术,通过软件定义的方式来管理数据中心的计算资源,让云计算厂商可以根据企业需求输出计算能力,收放自如。
然而,云计算的弹性能力是以牺牲性能损耗的形式来换取的。
总结来说,资源损耗来自于虚拟化自身的性能开销、虚拟机之间资源抢占造成的性能波动、虚拟化嵌套造成的效率下降等等。
因此,虚拟化就像黑洞一样,吸走了机器的部分性能。
举例来说,在一台96核的服务器上运行云服务系统,可能需要占用8核32GB内存来提供虚拟化的开销,用户得到的只有88核和剩余内存。