重塑的虚拟化与AWS硝基系统

||评论(

经营亚马逊这样规模的业务,我们经常要解决其他公司从未遇到过的问题。这样做的缺点是没有“如何”指导我们——很多是未知的。然而,这样做的好处是,当我们解决了一个新问题时,就有机会重新创造我们的服务,为客户创造新的利益。事实上,当我们进入未知领域时,我们已经创造了一些最具创新性和成功的想法。

当你是一个以客户为中心的公司,你经常会发现自己在伟大的未知的,因为客户总是希望更多,更好。您将需要创造代表他们。这种方法的创新和解决问题的一个很好的例子是的创造AWS硝基系统,我们的EC2实例的基础平台。

在对传统虚拟化系统进行了数年的极限优化之后,我们知道,如果我们想继续为客户提高性能和安全性,就必须对架构进行重大改变。这一认识迫使我们重新思考一切,并成为我们创建Nitro系统的灵感,它是第一个将虚拟化功能转移到专用硬件和软件的基础设施平台。现在,有了Nitro系统,我们可以在云计算中提供最好的性价比,最安全的环境,以及更快的创新步伐。

让我们看看我们的团队在创建硝基系统的过程中,以及结果对我们的客户意味着什么。


在开始的时候


hypervisor是一种提供虚拟机(VMs)的系统软件,用户可以在其上运行操作系统和应用程序。虚拟机监控程序在独立运行的虚拟机之间提供隔离,并允许不同的虚拟机运行它们自己的操作系统。现成的管理程序从未打算用于多租户云环境中。但是通过深度调优和定制,可以将管理程序调整为真正的多租户,从而简化机器供应和管理,同时提高利用率并降低客户成本。

在EC2的早期,我们使用完全基于软件的Xen hypervisor来保护物理硬件和系统固件;对CPU、存储和网络进行虚拟化;并提供一整套丰富的管理能力。但是在这种体系结构中,实例中多达30%的资源被分配给虚拟机监控程序和用于网络、存储和监视的操作管理。

图1:EC2“实例”主机架构的Xen hypervisor的

百分之三十是显著,而这种浪费是不提供直接的价值给我们的客户。它成为我们清楚地看到,如果我们想显著提高性能,安全性和灵活性为我们的客户,我们有我们的虚拟机管理程序功能的最迁移到专用硬件。这时候,我们开始在2012年设计的硝基系统的旅程。


单向门


在亚马逊,我们常说的单向和双向门的决定。双向门决定是容易逆转,就像测试出一个新的网页格式。对于这种类型的决定,你可以因为快速移动,即使这需要一点点的时间,你可以推翻有关决定。单向门的决定几乎是不可能逆转的,所以你必须让它有条不紊,仔细,慢慢地,并以极大的酝酿协商。

创建硝基系统是一个单向门的决定。我们知道,我们已经超越了传统的虚拟化技术的能力。我们必须进行创新。但是,我们并没有做出决定,或快或掉以轻心。旅程由谨慎试错了五年的历程中,每一步验证,我们正在采取的方向。

Nitro系统由三个主要部分组成:Nitro卡、Nitro安全芯片和Nitro管理程序。Nitro卡是一系列卡,可以卸载和加速IO的功能,包括虚拟私有云(VPC)、弹性块存储(EBS)和实例存储,从而提高整体系统性能。

我们推出了第一硝基卸载卡在C3实例类型在2013年,我们的卸载网络进程进入硬件。接下来是C4实例类型在2014年,卸载EBS存储到硬件中。对于C4实例类型,我们的工作是第一次与一个名为安纳普尔纳Labs公司。我们因此受到技术和那里,我们收购了安纳布尔纳实验室在2015年初到2017年的团队留下了深刻印象,我们已经卸载的最后一个组件,包括控制平面和其余的I / O,我们推出了新的虚拟机管理程序,全硝基系统与C5实例类型。

这对我们来说是一个不可思议的时刻。建筑硬件是一项挑战。这不仅是一项重大的财务投资,而且对很多员工来说也是一项巨大的时间投入。当硝基系统启动时,这些努力都是值得的。

图2:2017硝基系统架构

Nitro体系结构还使我们能够使hypervisor层成为可选的,并提供裸金属实例。Bare metal实例为应用程序提供对底层服务器的处理器和内存资源的直接访问。

这对于需要访问硬件功能设置工作负载,如英特尔®VT-X的重要,以及应用程序需要在非虚拟化环境中运行的授权或支持的要求。例如,I3裸机情况下使VMware来直接管理的基础设施AWS上运行他们的全软件定义的数据中心(SDDC)堆栈,包括在ESXi管理程序。

那么,这一切意味着我们的客户?更好的性能和价格,增强的安全性,以及创新的步伐加快。


客户的影响


更好的性能和价格

随着硝基系统,EC2进行跨CPU,网络和存储更好,因为我们移动这些功能到专用硝基卡。由于没有忍住资源管理软件意味着更多的储蓄,可以对客户进行传递。

Nitro系统还会影响hypervisor抖动。在云计算中,将抖动降低到微秒的能力支持了不存在的场景。例如,我们有一个管理卫星的客户,它需要一个实时计算环境来支持其舰队的通信。具体地说,要使工作负载发挥作用,对网络包的响应必须在150个变体之内。传统的管理程序根本不支持这种类型的工作负载。

下面示出了图3为这个顾客时,它使用不同的实例类型抖动比较:C4(预硝基),C5,和I3.metal。正如你所看到的,是与C5和I3.metal显著降低抖动。你也可以看到,从管理程序在非裸机情况下对性能的影响是光。

图3:Nitro系统管理程序抖动改进

此外,硝基系统提高了存储延迟。在图4中,您可以看到通过从本地磁盘存储中卸载开销而实现的存储延迟改进。事实上,我们的网络优化实例的性能提高了4倍。即使不是存储优化实例的R5d实例,也提供了比第四代实例更好的延迟。

图4:Nitro系统实例存储改进

最后,Nitro系统还提供了增强的网络性能。AWS是第一个也是唯一一个提供100gbps增强以太网网络的云。这对于需要更高吞吐量或受网络限制的工作负载(如HPC应用程序)是有益的。这只有通过硝基系统才能实现。

增强的安全性

硝基系统的最大好处之一是增强了安全性。首先,我们设计的硝基系统可以在我们能想象的最恶劣的网络中运行。这意味着不仅要加密所有通信通道,还要提供安全的引导功能。虽然我们的数据中心网络高度安全,但这种设计使我们能够推出新产品。例如,去年我们引入了AWS前哨,它通过Nitro系统将AWS经验带到一个本地数据中心。

其次,我们使用Nitro安全芯片设计了一个基于硬件的信任根系统,允许我们以密码方式连续地测量和验证系统。与使用传统硬件相比,这对正在运行的内容提供了更高级别的信任。通过卸载和简化整个堆栈,我们还最小化了可信计算基础(TCB),增加了对整个系统的信心。

第三,我们设计了硝基系统具有非常有限的运营商可访问性。在一个典型的现成的,搁板管理程序,管理员具有完全访问系统和能够修改任何部件。与此相反,硝基系统,为运营商的唯一接口是一个受限制的API,使其无法访问客户数据或突变系统在未经批准的方式。没有一个“根”用户或SSH的等价物,并且作为结果,硝基系统提供了无法通过简单地锁定向下一个传统的管理程序来获得的置信水平。

第四,传统的虚拟化和其他云提供商使用通用服务器。就其本质而言,这些包括额外的和不必要的组件和功能。这增加了安全漏洞的范围。相比之下,Nitro系统在使用专门为运行管理程序而设计的专用硬件和服务器方面向前迈出了一大步。这不仅降低了安全漏洞的风险,而且还使我们能够将特定的功能转移到专用的硬件和软件上,从而进一步最小化管理程序的攻击面。

最后,用硝基系统,我们可以应用证明硝基系统没有漏洞和工作意图的方式正式验证。

创新的步伐加快

通过使用Nitro系统,我们能够将EC2的体系结构分解为更小的块,方法是将虚拟化功能卸载到专用硬件上。这些块可以以许多不同的方式组装,这为我们提供了设计和快速交付EC2实例的灵活性,提供了越来越多的计算、存储、内存和网络选项。你可以从下面的“Nitro创新”图表中看到,自2017年推出Nitro系统以来,我们已经推出了近4倍的实例。因此,我们的客户在优化价格和性能时有更广泛的工具可供选择。我们创新得越快,我们的客户也能创新得越快。

图5:启用硝基制度创新


持续创新


无论你选择把某件事看成是一个问题还是一个机会,都会对你如何处理它产生很大的影响。我们选择将传统hypervisor的局限性作为创建全新体系结构的机会。

现在,随着硝基系统,我们的客户享受到更好的性能,更高的安全性,以及更广泛的实例类型可供选择。而且我们还没有完成。当你是一个以客户为中心的公司,你的产品将永远不会结束,因为客户总是希望有更多的,他们总是想要更好。我期待着每一次给这个给他们。

你可以了解更多关于AWS硝基系统在我们的网站。

评论

博客评论Disqus