最近,亚马逊首席技术官 Werner Vogels公布 了开始实施 AWS Lambda 项目时的内部设计说明。这次发布的 PR/FAQ 曾催生了亚马逊最受欢迎的服务之一。通过这份文件,你可以一窥亚马逊无服务器计算设计的内幕和最初愿景。
这份带有亚马逊首席技术官注释的内部文件详细介绍了 AWS Lambda 的起源,首先是客户在管理 EC2 机群时面临的挑战。这些机群在等待向数据库写入数据或处理文件等任务时经常处于闲置状态。它还描述了无服务器平台是如何出现的。文件开头是一段 “引人入胜的叙述”,说明了该项目的理念,“以亚马逊云科技运营的安全、可靠的可扩展云服务来轻松地运行任何代码 ”。Vogels 写道:
在客户需求的推动下,在过去十年中,Lambda 发生了很大的变化。在阅读该 PR/FAQ 时,你会注意到一些变化(例如,以毫秒为单位的计费粒度,支持 10GB 内存的函数),以及一些最终变成完整功能的想法。
Vogels 提醒读者,长期以来,亚马逊都有一个传统,那就是精心编写内部 “新闻稿”,以便清晰地阐述将向客户交付的产品。这些文件要求,描述要准确透彻,要用数据支撑观点,从而确保文件内容清晰明了,没有任何混淆。在另一篇文章中,亚马逊云科技副总裁兼首席布道者 Jeff Barr 重点介绍了该服务是如何起步的以及后续每年的持续改进:
我还模糊地记得 2013 年与当时的同事 Tim Wagner 的一次会面。当时还没有无服务器这个词,但我们聊到了让开发人员专注于代码而不是基础设施的各种方法。我记得有一次,我向空中挥舞双臂,并表示,如果能把代码抛向空中,让云来抓取、存储和运行它,那一定很酷。经过多次这样的会议之后,Tim 写了一份 PR/FAQ,建议我们构建一个这样的平台。
Vogels 解释说,分享带有注释的初始设计描述,目的不仅仅是庆祝周年纪念:
这提醒我们,虽然我们非常努力地争取做到详尽,但我们并不是无所不知的,写作的目标也不完美。我们的目标是将产品交到客户手中,观察他们的使用情况,并在使用过程中进行调整和创新。这份已有 10 年历史的文件强调了启用移动后端,以及在后台使用 Lambda 为亚马逊云科技的各种服务(如自定义 CloudWatch 操作或自定义视频转码器规则)嵌入脚本的愿景。有这类场景的客户将默认采用新服务。
在“亚马逊云科技 Lambda 十周年 ”一文中,杰出工程师 Marc Brooker 描述了一些最初被忽视的挑战,并写道:
多年来,我们写了很多关于优化 Lambda 尾部延迟的文章,但在很多方面,对客户来说,中位延迟是一个更大的问题,我们在这方面也投入了同样多的精力。尤其是对于构建微服务和 SoA 架构的客户,中位延迟会累积,影响更大。
Barr 还强调了向可组合性和人工智能的持续转变:
我认为,随着时间的推移,无服务器应用程序还将越来越多地使用可重用的预构建组件。在 AI 驱动的开发工具的辅助下,大量的新代码将专注于以强大、新颖的方式将现有组件连接在一起。这也将提高整个应用程序的一致性和可靠性。
感兴趣的读者可以在 Werner Vogels 的网站上查阅带有注释的 Lambda PR/FAQ,而不带有注释的原始版本则以 PDF 文件 的形式提供。
https://www.infoq.com/news/2024/11/aws-lambda-design-document/
声明:本文为 InfoQ 翻译,未经许可禁止转载。
12 月 13 日至 14 日(周五至周六),AICon 全球人工智能开发与应用大会将在北京盛大开幕!本次大会汇聚 70+ 位 AI 及技术领域的顶尖专家,深入探讨大模型与推理、AI Agent、多模态、具身智能等前沿话题。此外还有丰富的圆桌论坛、以及展区活动,带你深入探索大模型的最新实践与未来趋势。年度最后一次 AI 盛宴,让我们一起见证 AI 未来。