芯片|永远不要投资DPU?( 六 )


其一,Graviton芯片,云厂商第一颗Arm芯片 。
其二,是一种虚拟机抄近路小能手的技术,ENA 。
(ENA,全称是ElasticNetwork Adapter,一种网卡驱动,能用于虚拟机和物理机,是开源项目,发布在GitHub网站上 。)
这种技术讲究的是四两拨千斤,使得虚拟机绕过软件(内核和用户空间网络处理程序),直接操作硬件(网卡),如此这般,提升了网络效率 。
昔日寂寂无名的ENA,成为亚马逊云网络虚拟化的关键技术,日后是大名鼎鼎的Nitro的一部分 。
合作如丝般顺滑,那就买过来,谁叫那时候世界首富掌管亚马逊公司呢 。
2015年,收购价3.5亿美元 。
别看当时花了多少,要看日后省了多少 。这是一场几乎完美的收购,每年都为亚马逊节省大把美金 。
因为DPU的特长之一就是很能打,一套降龙十八掌,打败虚拟化损耗,不在话下 。
损耗少了,当然省钱 。
安娜普尔纳峰实验室开发的这张卡,不仅卸载了VPC网络功能,还卸载了EBS 存储网络功能 。
这就是前文提到的,“任务卸载”技术 。
据网飞公司技术高管(Brendan Gregg)的说法,Nitro的性能损耗非常小(不到1%),Nitro的虚拟化性能接近裸设备 。
亚马逊的文化里,有单向门(The one-way door)和双向门(two-way door)决策的说法 。这个翻译,颇为晦涩 。
“单向门”的任务,像电影《鱿鱼游戏》,大抵是干活时被人用枪指着脑袋 。
只要任务失败,就“嘣”一枪 。惊不惊险,刺不刺激 。
“双向门”就是这个场景用得不好,搬到别的地方,说不定还能用上,反正不会白忙活,KPI保住了,万事好商量 。
DPU是专用的,“专用”意味着,拿到别处“没用” 。
Nitro 系统开发的时候,枪和脑袋的距离,几毫米 。
失败和成功的距离,一丢丢 。
研发团队在描述艰难的开发岁月的时候,像个文科生,一口气用了四个形容词 。
他们说:“这次我们做决定,有条不紊,谨慎,缓慢,深思熟虑 。”
懂行的心里明白,这不是普通的任务,其要求已经超出了传统虚拟化技术的能力 。因为打破传统,就是浴火重生 。
研发团队在技术博客里写下:“只有创新才行,但我们没有急着拍脑袋 。整个探索的旅程历经五年,仔细、反复试验,每一步都很小心,验证我们前进的方向是正确的 。”
喜大普奔的2013 年,亚马逊云研发团队推出了第一款Nitro 卸载卡(C3 实例类型),将网络进程卸载到硬件中 。
马不停蹄的2014 年,将 EBS 存储卸载到硬件中(C4 实例类型),这次研发团队首次与一家名为安娜普尔纳峰实验室的公司合作 。
Nitro研发团队谈到了研发的时间节点:“2017 年,我们卸载了最后的组件,包括控制面和剩余的 I/O,我们引入了一个新的管理程序,具有 C5 实例类型的完整Nitro系统 。”
代码长什么样子,如今已经记不清了,但工程师依然记着当时的心情:
“这是投入的挥金如土,是身心的殚精竭虑,是承诺的使命必达,是不可思议的时刻 。当Nitro系统推出时,五年辛勤,此生难得 。”
Nitro给亚马逊云带来什么?
Nitro的迭代推动亚马逊云最核心的EC2产品家族不断往更大、更快、更安全、更稳定、更多类型、更高性价比方向演进 。
Nitro 系统让亚马逊云有能力提供100 Gbps 增强型以太网网络的云,支持更高吞吐量或受网络限制的工作负载(如 HPC 应用程序) 。
借助 Nitro 系统,将虚拟化功能卸载到专用硬件上,将 EC2 的架构分解为更小的块 。这些块以多种不同的方式组装,能够灵活地设计和快速交付EC2 实例,并提供越来越多的计算、存储、内存和网络选项 。

推荐阅读