把握行业变革关键节点,12 月 19 日 - 20 日,AICon北京站即将重磅启幕! 了解详情
写点什么

re:Invent 大会第四天:为什么 Lambda 值得你更多关注?

  • 2018-11-30
  • 本文字数:2281 字

    阅读完需:约 7 分钟

re:Invent大会第四天:为什么Lambda值得你更多关注?

2018 年 11 月 29 日的拉斯维加斯,AWS re:Invent 大会进入第四天,上午照例由 AWS CTO Werner Vogels 带来主题演讲。


从主题演讲之前到主题演讲之后,改变最大的产品毫无疑问就是 Lambda,有至少 8 个相关的最新发布。Vogels 在 2014 年正式对外发布了 Lambda,到现在已经过去了四年,他自己对此的评价是:那是他有生以来做过的最精彩的一个主题演讲。从那开始,Serverless 这个说法开始在圈内流行,成为全球趋势;而直到今天,Lambda 仍然是独树一帜,正式上线三年以来已经发展了超过十万个客户,每个月平均处理万亿级别的请求,在 AWS 服务线当中使用量相当可观了。


InfoQ 中文站记者与 AWS 产品市场经理 Aaron Kao 进行了一对一的交流,对这一系列 Lambda 的新发布进行了梳理。我们基本可以认为,如果你没有时间深入了解本次的发布,那么可以只记住两个东西:


  1. Firecracker

  2. Lambda Custom Runtime(自选运行时)

一、Firecracker

Firecracker 是大会第二天发布的,AWS 在晚场活动上宣布了该项目的开源。作为 Lambda 背后的支持技术之一,Firecracker 在 serverless 的技术栈当中处于 Hypervisor 层之上、Guest OS 层之下,如图:



根据官方介绍,Firecracker 与 docker 或者 Kata containers 并不存在替代关系。Firecracker 真正要替代的是 QEMU——因为 QEMU 要支持各种不同种类的设备类型,搞得非常粗重、启动费时;而 Firecracker 可以从云计算的角度进行设计,仅仅针对单一设备类型,就可以做到非常轻便。以下摘录两段官方介绍:


Firecracker 跟 QEMU 的区别:


Firecracker 是云原生的 QEMU 替代者,专门针对容器运行的安全和效率进行设计。Firecracker 对 guest OS 的设备规格设置了最低限度的要求,把非必要的功能都去掉了(仅仅留下了 4 个模拟设备:virtio-net、virtio-block、serial console,以及一个专门用来关闭 microVM 的单键控制器)。由此,在一个流水线内核加载进程中,启动时间可以达到 125ms 以下,内存占用也较小。Firecracker 进程还提供了 RESTful 的控制 API,用于设置 microVM 的资源使用上限,并给 microVM 提供元数据服务,方便 host 与 guest 之间共享配置数据。


那么,Firecracker 现在能跟 Kubernetes、Docker、Kata containers 一起用吗?


现在还不行。我们开源 Firecracker,是因为我们认为它在运行容器的安全方面有一些独到的意义,我们希望社区里的同行们能从中收到一些启发。我们在努力让 Firecracker 能够与容器生态自然集成,未来的目标是让容器负载隔离这件事情有更多的选项,选项之间能够有无缝的集成。


根据 AWS 计算服务总监 Deepak Singh 的介绍,Firecracker 的研发是从大概一年前开始的,最初的起点是 crosvm——也就是 Google Chrome OS 的 VM 技术。于是,因为 crosvm 是用 Rust 语言写的,所以 Firecracker 也是基于 Rust 语言。


Firecracker 一经开源,短短几天就收获了四千多的 star https://github.com/firecracker-microvm/firecracker 以及大量的 pull request。

二、Lambda Custom Runtime

在今天之前,Lambda 已经支持了五种编程语言——node.js、Python、Java、.NET、Go,以及 shell 脚本。今天,Vogels 发布了 Lambda 对 Ruby 语言的支持,紧接着发布了 Lambda Custom Runtime。


这个 Custom Runtime 什么意思呢?


就是说,你可以自己上传为 Lambda 定制的运行时,从而让 Lambda 能够支持你想用的编程语言。在今天第一批发布的 Runtime 里面,有 C++,有 Rust,有 Elixir,有 Erlang,有 PHP,还有一个叫做 COBOL(真是令人意想不到)。


所以理论上,现在的 Lambda 可以支持任意一种编程语言!

三、其他发布

Vogels 主题演讲中的其他发布包括:


一些 IDE 插件:本次 Keynote 针对 PyCharm、IntelliJ、VS Code 这三个工具发布了 AWS 的插件。


Lambda Layers:这个功能可以提升代码的复用率。将一个通用组件打包成 ZIP 文件上传给 Lambda,做成一个 Lambda Layer,就可以在不同的 Lambda Functions 之间共享这个组件。


Nested Applications:这个功能也可以提升代码的复用率,不过是通过另一条方式,也就是去年发布的 Serverless Application Repository。


Step Functions 与更多服务的集成:Step Functions 是去年发布的功能,给 serverless 应用做调试比较方便。本次发布之后,现在 AWS 的 Batch、ECS、Fargate、Glue、DynamoDB、SNS、SQS、SageMaker 也都支持 Step Functions 了。


API Gateway 现在支持 WebSocket 了:这是一个支持实时双向通讯的功能。


ALB 可以指向 Lambda 了:应用负载均衡原本不能指向 Lambda,只能指向 EC2 和容器,现在可以指向 Lambda 了。


Kafka 托管服务:AWS 在 2013 年发布了 Kinesis 服务之后,经常遇到用户问:你这个做的事情不是跟 Kafka 一样吗,为啥不干脆在你们平台上面提供 Kafka 的服务呢?当时的 AWS 对此是不同意的,因为当时的 Kafka 项目发展也没几年,并不成熟,万一跟着人家跑坑里去了咋办?就这样,5 年时间过去了。期间,AWS 用户还是可以用 Kafka 的,只不过得自己架设配置。今天 AWS 发布 Kafka 托管服务可能有很多原因,但有一点是肯定的:Kafka 真的有很多人在用。


Well-Architected Tool:这是一个用户自检工具,可以引导用户、帮助他们发现自己的架构是否与 AWS 推荐的最佳实践一致。


此外,有一个服务并没有出现在 Vogels 的主题演讲上,但 Aaron Kao 和 Deepak Singh 都推荐我们可以关注一下,那就是 AWS App Mesh。这是 AWS Serverless 技术体系中第一次提供 Service Mesh 服务。


针对 re:Invent Werner Vogels 第四日发布,前线记者也专访了 InfoQ 特约观察员,看看他们如何解读这一系列的发布及其背后的某些衍生逻辑:


2018-11-30 14:029921

评论 1 条评论

发布
暂无评论
发现更多内容

2023年Java面试正确姿势(1000+面试题附答案解析)

Java编程日记

Java 架构 后端 java程序员 java面试

CVE-2022-22947 SpringCloud GateWay SPEL RCE 漏洞分析

墨菲安全

漏洞分析 软件供应链安全

行业分析| OA系统中的实时通讯

anyRTC开发者

音视频 远程办公 视频会议 视频通话 OA

IoT物联网设备端硬件上云技术方案详解——实践类

阿里云AIoT

物联网 存储 开发工具 数据采集 传感器

用户属性-MQTT 5.0新特性

EMQ映云科技

物联网 IoT mqtt 企业号 2 月 PK 榜 用户属性

大前端CPU优化技术--SIMD技术

江湖修行

simd neon

建议收藏!数据可视化大屏设计必备步骤

葡萄城技术团队

LoRaWAN设备接入阿里云IoT企业物联网平台实战——实践类

阿里云AIoT

物联网 传感器

一图读懂 | ChatGPT热潮背后,金融行业大模型应用路在何方?——金融行业大模型应用探索

易观分析

金融 科技

聊聊 HTAP 的前世今生

墨天轮

数据库 OLAP TiDB OLTP HTAP

当 Amazon Lambda 遇上 Apache APISIX 可以擦出什么火花?

API7.ai 技术团队

AWS api 网关 Lambda s APISIX

工业数字孪生:西门子工业网络与设备虚拟调试案例(TIA+MCD+SINETPLAN)

工赋开发者社区

墨菲安全参与信息通信软件供应链安全社区成员大会并获自主研发创新成果奖

墨菲安全

供应链安全 安全情报

代码的发展与终结

飞算JavaAI开发助手

Python 基础练习题(二)

漫步桔田

TDengine 发布主流时序数据库对比分析报告,与 InfluxDB、TimescaleDB 展开全面对比测试

TDengine

tdengine 时序数据库 数据库·

电信NB-IoT设备对接阿里云IoT平台实战——实践类

阿里云AIoT

大数据 监控 物联网 存储 数据格式

Tapdata 和 Databend 数仓数据同步实战

Databend

和狂飙的 ChatGPT 聊聊软件开发的现在与未来

极狐GitLab

DevOps 研发效能 DevSecOps 极狐GitLab ChatGPT

CVE-2023-23752 Joomla未授权访问漏洞分析

墨菲安全

漏洞分析 软件供应链安全

软件供应链受威胁下的应对方法——供应链安全管理平台的五大工具能力

墨菲安全

SCA 供应链安全

云小课|MRS数据分析-通过Spark Streaming作业消费Kafka数据

华为云开发者联盟

大数据 数据分析 华为云 企业号 2 月 PK 榜 华为云开发者联盟

设备上报二进制数据在 IoT 平台解析实践——实践类

阿里云AIoT

小程序 监控 物联网 传感器 测试技术

低代码选型,论协同开发的重要性

葡萄城技术团队

IoT企业物联网平台,从设备端到云端业务系统全链路开发实战——实践类

阿里云AIoT

数据库 监控 物联网 存储 消息中间件

智多星RPA重塑业务流程,全面赋能企业商业创新

YonBuilder低代码开发平台

基于 IoT物联网 + 表格存储DB + DataV 搭建实时环境监控大屏——实践类

阿里云AIoT

数据库 监控 物联网 存储 数据可视化

数字经济赋能乡村建设,助力乡村全面振兴

加入高科技仿生人

低代码 数字经济 乡村振兴 农村

AntDB数据库再获奖,亚信安慧被评为“2022 PostgreSQL中国最佳创新企业”

亚信AntDB数据库

数据库 AntDB 国产数据库 AntDB数据库 企业号 2 月 PK 榜

如何通过Java 代码设置 Word 文档页边距

在下毛毛雨

C# .net word文档 页边距

re:Invent大会第四天:为什么Lambda值得你更多关注?_服务革新_sai_InfoQ精选文章