2022 亚马逊云科技 re:Invent 大会有哪些值得关注的亮点？为云时代未来发展带来哪些新趋势？
今年项目解散后，我回到了老东家 NVIDIA。 回去后开始做元宇宙项目，优化 Omniverse 在云端的性能成了我的一个工作重心。我做了 10 多年的图形工程师，搞过游戏主机、手机、桌面应用开发，但从没接触过“云”。谈到部署应用到云平台，亚马逊云科技是逃不开的。这半年来，我用的最多是 EC2 上的 p4d 和 G5，也陆陆续续听到些亚马逊云科技特有的技术名词，比如亚马逊云科技专有硬件 EFA、Nitro 等。 我希望可以系统地学习一下亚马逊云科技特有的技术，不仅知道 What，也可以清楚 Why。作为一家云平台亚马逊云科技为什么会发明出这么的新硬件和软件，我希望能得到答案。 我的疑惑在 re:Invent 2022 的几场主题演讲上得到了解答。印象最深的是亚马逊云科技高级副总裁Peter DeSantis那场演讲，他的主题演讲没有花里胡哨的营销术语，都是科技与狠活。具体的大会安排可以点击链接进入官网查看： Peter 用一张图解释了原因。通常来说，当用户想上云时，为了追求性能，不得不牺牲成本或者安全，三者难以求全。即便是亚马逊云科技，早期的用户也不得不在性能、成本和安全之间做权衡。 但是亚马逊云科技的工程师们并没有选择妥协，而是通过发明创造给出了答案：通过自身技术的不断演进和创新，让云计算可以兼顾高性能、高安全性和低成本。也许这就是亚马逊云科技的发布会名叫 re:Invent 的原因。 对性能的追求是无止境的，在手游开发中，我们会关心 帧率、发热、功耗等指标，通过降低逻辑耗时、优化渲染方式、减少内存读取等方式得到满意的性能。到了云上，性能变成了一个更复杂的系统性问题。 以机器学习的训练阶段为例，可能出现瓶颈的地方有计算模块、存储模块、通信协议、网络模块，如果想兼顾性能、成本和安全，必须针对性地发明出新的硬件及软件。以下是亚马逊云科技的答案： 云计算最重要的自然是计算，在这块亚马逊云科技既有针对通用计算的 Graviton 芯片，也有针对 AI 推理和训练的 Inferentia 及 Trainium。 2018 年的 亚马逊云科技re:Invent 全球大会上，亚马逊云科技发布了 Graviton 第一代处理器，这是 其自研的、为云而设计开发的计算芯片，2020 年推出了 Graviton2，2021 年推出 Graviton3，迭代速度特别快。今年推出的 Graviton3E 芯片，是 Graviton3 针对高性能计算场景打造的新分支，与 Graviton3 相比，不仅将工作负载的性能提高了 35%，还进一步优化浮点运算，耗能减少 60%，用于金融相关的运算也提升 30% 执行效率。 另一方面，随着机器学习领域的加速发展，上云的用户也迫切需要提高性价比。2019年亚马逊云科技推出了 Inferentia，为客户提供低成本高性能的机器学习推理能力。 虽然 Inferentia 解决了推理的成本，但许多开发团队还是受到固定的机器学习训练预算的限制。在亚马逊云科技re:Invent 2020 开发者大会上，亚马逊云科技发布了用于机器学习训练的的AI芯片 Trainium。它提供比云端竞争对手更高的性能，同时支持 TensorFlow、PyTorch 和 MXNet 等。Trainium 针对训练工作负载进行了优化，包括图像分类、语义搜索、翻译、语音识别、自然语言处理和推荐引擎等。它以 EC2 实例的形式出现在亚马逊的机器学习平台 SageMaker 中。 亚马逊云科技完全重构了虚拟化基础架构。传统的 Hypervisor 可以保护物理硬件和BIOS、虚拟化CPU、存储、网络并提供丰富的管理功能，但是需要耗费额外的 CPU 资源。借助 Nitro 来分解这些功能，将其分流给专用的芯片，并通过将服务器的几乎所有资源交付给用户实例，达到降低成本的目的。 此次发布的 Amazon Nitro v5，在性能上较之前版本有显著提升，包括晶体管数量增加一倍，提供了更多的计算性能，50% 的 DRAM 内存性能提升，2 倍的 PCIe 带宽提升，改善延迟 30%，同时每瓦性能提高 40%，PPS 提高 60%。 用于 EBS 的 Nitro 卡支持 EBS 的存储加速。所有实例存储均以NVMe 设备的形式实现，并且 EBS Nitro 卡支持透明加密，还支持裸金属实例类型。远程存储再次实现为 NVMe 设备，即使在裸金属环境中，也支持再次通过加密访问EBS卷，并且又不影响其他 EC2 用户和安全性。 光有硬件是不够的，为了达到最佳性能，软硬件设施要高度融合、协同发展。 此次 re:Invent 2022，亚马逊云科技提出 SRD 网络协议。SRD 全称是 Scalable Reliable Datagram，代表可扩展的、可靠的数据报。Peter 在此次发布会上重新强调 SRD 协议的重要性，该协议提供跨多条路径的负载平衡以及从丢包或链路故障中快速恢复功能，且性能优于 TCP 协议。 以 TCP 为代表的传统网络协议，为了保证网络传输的高可靠，会尽可能地将包发送至同一拓扑路径上，并且通过握手、挥手、超时重传机制保证包正确送达。SRD 的创新在于刻意的在多个路径分别发包，虽然包到达后通常是乱序的，但亚马逊云科技实现了在接收处以极快的速度进行重新排序，最终在充分利用网络吞吐能力的基础上，极大降低传输延迟。 另外，TCP 是个泛用协议，在今天的低延时场景，泛用的解决方案生存空间越来越狭小。我们固然可以通过各种优化、定制去对其作提升，但迭代的终点实际上就是创新。SRD 协议是围绕 Nitro 等一些系列硬件作专项优化的，可以将丢包重传的延时从毫秒级降低到微秒级，这彻底改变了我们对网络传输协议延时极限的推演，也验证了大型云计算服务提供商，开发自有定制化硬件的必要性。 Elastic Network Adapter（ENA）是亚马逊云科技上专用的网络接口设备，被广泛使用于 EC2 实例。 这次发布会上，亚马逊云科技还宣布推出了适用于 Amazon EC2 实例的 ENAExpress。ENA Express 是一项新的 ENA 功能，它以 SRD 协议为基础，以两种主要方式提高网络性能：更高的单流带宽（从 5Gbps 最高提升至 25Gbps）和更低的延迟。 分布式存储系统和实时媒体编码等工作负载需要巨大流量，并且对延迟变化极为敏感。在推出 ENA Express 解决方案之前，用户通常会使用多路径 TCP 来增加带宽，但这会增加复杂性，有时可能造成与应用层不兼容。而当服务器因请求而过载时，TCP 也无法处理拥塞。这种情况下，可借助 SRD 专有协议，通过高级拥塞控制、多路径和直接从 Nitro 芯片重新排序数据包来实现这些改进。启用 ENA Express 是一个简单的配置，它使得启用 SRD 就像为 EC2 实例使用单个命令或控制台切换一样简单。与 TCP 相比，ENA Express 能够将流量的 P99 延迟减少 50%，P99.9 延迟减少 85%。 除了计算、存储、通信及网络性能上的创新，在提升云端应用性价比方面，亚马逊云科技还特创了一种 Serverless 开发模式。 无服务（Serverless）计算是云服务的一种。如果我们回顾云计算本身，越来越多企业采用云计算主要是因为它的现收现付模式，在云计算的愿景里，客户只需要向云计算厂商所提供的硬件资源付费，不需要考虑更多的维护成本。 在 2014 年，亚马逊云科技第一次提出 Lambda（Amazon第一个serverless computing产品）。Amazon Lambda 是一种函数即服务（Function-as-a-Servcie，FaaS）的计算服务，简单的来说就是：开发人员直接编写运行在云上的函数、功能、服务。由云服务产商提供操作系统、运行环境、网关等一系列的基础环境，我们只需要关注于编写我们的业务代码。 对于许多企业来说，Amazon Lambda 最大的优势就是可以很好地控制。但许多团队在部署 Lambda 时面临着一大性能问题——冷启动，也就是启动新的执行环境时产生了延迟，带来了更长的初始化时间。这是 Serverless 自诞生以来一直存在的技术障碍，此次 Amazon Lambda SnapStart 新版本的发布正弥补了这一不足。 Lambda SnapStart 版本是基于 Java 函数的重大改进，专门解决了 Java 函数冷启动引起的延迟问题。Lambda SnapStart 可将 Lambda 函数冷启动持续时间从超过 6 秒降低至不到 200 毫秒，并使延迟率降低 90%，而且无需额外费用，而且通常无需更改用户的功能代码。 以上是从我的角度对于2022亚马逊云科技re:Invent 全球大会主题演讲的小结，演讲中包含的内容远远不止我列出的这些。我们不难看到，亚马逊云科技是一家非常技术实用主义的公司，它的所有发明创造都是为了解决用户痛点，让云计算可以兼顾高性能、高安全性和低成本。 推荐大家都去免费注册观看演讲视频回放，感受下亚马逊云科技工程师对于极致性能的激情。 