亚马逊AWS官方博客
AWS Lambda 面世十年 – 回顾过去,展望未来
我在 2013 年与我当时的同事 Tim Wagner 进行了一次会晤,但已经记不得什么了。无服务器这一术语那时还未诞生,但我们聊了聊让开发人员专注于代码而不是基础设施的几种方法。我记得我高举双臂,以表明把代码扔到空中,然后让云端抓取、存储和运行代码会是一种非常酷的做法。在又进行了很多次这样的会晤之后,Tim 撰写了一份 PRFAQ,并提议我们构建一个可以实施这种做法的平台,于是,2014 年,我得以宣布 AWS Lambda – 在云端运行代码。
从初创企业到成型企业
由于无需担心安装量并且需要进行创新,初创企业往往会率先冒险试用 Lambda 这样的新鲜事物。尽管确实发生过这样的情况,但我惊喜地发现,甚至包括成型企业在内的老牌公司也迅速加入了这一行列。经过一番试验,他们很快找到了构建支持关键内部使用案例的事件驱动型应用程序的方法。我认为这是 Lambda 将会取得成功的一个早期信号。由此不难看出我们的客户多么快地感受到了一种新的赋能感:他们能够比以往任何时候都更快地将构想变成实施,继而实现业务价值,同时仍能以可扩展、可组合的方式构建他们的系统。
如今,150 多万 Lambda 用户每月总共进行数十万亿次函数调用。这些客户还将 Lambda 用于文件处理、流式传输处理(与 Amazon Kinesis 和/或 Amazon MSK 结合使用)、Web 应用程序、物联网后端、移动后端(通常还使用 Amazon API Gateway 和 AWS Amplify),并支持很多其他的使用案例。
无服务器创新的第一个十年
让我们回顾一下在过去的十年里发布的一些比较重要的 Lambda 产品:
2014 年 – 在 AWS re:Invent 2014 之前推出 AWS Lambda 预览版,支持 Node.js,并能够响应来自 S3 存储桶、DynamoDB 表和 Kinesis 流的事件触发器。
2015 年 – 正式上市,将 Amazon Simple Notification Service(Amazon SNS)通知用作触发器,并支持使用 Java 语言编写的 Lambda 函数。
2016 年 – 支持 DynamoDB Streams 和 Python,并将函数持续时间延长到 5 分钟(后来延长到 15 分钟)。 访问 VPC 中的资源;能够从 Amazon Aurora 存储过程调用 Lambda 函数;环境变量以及无服务器应用程序模型。今年还推出了 Step Functions,它使您能够组合多个 Lambda 函数,以构建更复杂的应用程序。
2017 年 – 支持 AWS X-Ray,并推出了 AWS SAM Local 和无服务器应用程序存储库。
2018 年 – 支持将 Amazon SQS 用作事件触发器,能够使用由 Lambda 提供支持的宏扩展 AWS CloudFormation,并能够使用任何编程语言编写 Lambda 函数。
2019 年 – 支持预置的并发性,以使您能够进一步控制性能。
2020 年 – 访问节省计划以实现多达 17% 的节省;能够利用 Lambda 函数访问共享文件系统;支持 AWS PrivateLink 通过私有网络访问您的函数;代码签名;以 1 毫秒的粒度计费;函数可以使用多达 10 MB 的内存和 6 个 vCPU;以及支持容器映像。
2021 年 – Amazon S3 对象 Lambda 允许您在从 S3 检索数据时处理数据;AWS Lambda 扩展;支持在 Graviton 处理器上运行 Lambda 函数。
2022 年 – 支持每次函数调用时使用多达 10 GB 的短暂存储;适用于 Lambda 函数的 HTTPS 端点;Lambda SnapStart 能够以更快速,更具可预测性的方式进行函数调用。
2023 年 – Amazon S3 对象 Lambda 支持 CloudFront;响应流式传输;在处理数量不可预测的请求时,将函数扩展速度提高到 12 倍。
2024 年 – 新的控件能够让您更轻松地捕获和搜索 Lambda 函数日志;SnapStart 支持使用 ARM64 架构的 Java 函数;递归循环检测;基于 VS Code 的新控制台编辑器;以及增强的本地 IDE 体验。最近的两次发布旨在简化 Lambda 函数的构建、测试、调试和部署,以改善开发人员体验。
同样,这只是我们发布的产品的一部分。如果您希望查找更多发布信息,请查看 Lambda 类别标签并搜索 Lambda 的新增功能。
无服务器的下一个十年
从一开始,无服务器的愿景就是帮助开发人员更快地将构想转化成商业价值。考虑到这一点,当我审视 Lambda 在最初十年的发展方向时,我发现了下面这几个明显趋势:
默认选择 – 无服务器模式肯定会持续存在,并且随着时间的推移,可能会成为默认的运营模式。
继续提高可组合性 – 随着时间的推移,我可以看到无服务器应用程序会继续越来越多地使用可重复使用的预构建组件。借助由人工智能提供支持的开发工具,很多新代码将侧重于以新颖、强大的方式将现有的组件连接在一起。这样还会提高应用程序之间的一致性和可靠性。
自动化、经过人工智能优化的基础设施管理 – 我们已经发现,Lambda 减少了管理基础设施时需要投入的时间和精力。展望未来,我可以看到,机器学习和其他形式的人工智能只需极少的人为干预即可实现最佳的资源分配,从而帮助优化成本和性能。应用程序将在自动化、容错并能够自我修复的基础设施上运行。
可扩展性和集成 – 由于前两项的原因,应用程序应当能够比以往任何时候都更轻松地发展和适应不断变化的条件。
安全性 – 自动化基础设施管理、实时监控和其他形式的威胁检测以及人工智能辅助修复功能将协同工作,以使无服务器应用程序变得更加安全。
一些 Lambda 资源
如果您已经在使用 Lambda 构建无服务器应用程序,那很好! 如果您准备好开始使用这项服务,这里有一些资源可以帮助您:
无服务器培训 – 注册参加免费的 无服务器学习计划,以了解无服务器概念、常见模式和最佳实践。阅读《无服务器快速入门指南》并查看我们丰富的(包含多种主题和语言的)数字培训课程和面对面课堂培训:
案例研究 – 查看 AWS 无服务器客户成功案例,以了解 AWS 客户如何使用 Lambda 和其他无服务器技术进行构建和创新。
re:Invent 2024 会议 – 浏览 re:Invent 2024 会议议程,以查找将近 200 个侧重于无服务器计算和容器的会议:
播客 – 收听 AWS 开发人员播客的第 137 集(AWS Lambda:转换的十年),听一听 Marc Brooker 和 Julian Wood 讨论 Lambda 的起源、演变和影响。
新书 – 来看看一些有关无服务器开发和架构的最新书籍:
- 在 AWS 上进行无服务器开发:构建企业级无服务器解决方案
- 高级 AWS Lambda:无服务器计算综合指南
- 使用无服务器构建现代应用程序
- 采用 AWS Lambda 和 SNS 的事件驱动型架构
- AWS 的无服务器微服务
- 使用 AWS Lambda 掌握无服务器架构
我希望您喜欢这个略显冗长的有关 AWS Lambda 过去、现在和未来的介绍。请留下您的评论,让我知道您的看法!
– Jeff;
*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您了解行业前沿技术和发展海外业务选择推介该服务。