10月26号,了解如何7天上架一个语聊房应用 了解详情
写点什么

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

2018 年 11 月 30 日

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:028526

欲了解 AWS 的更多信息,请访问【AWS 技术专区】

评论 1 条评论

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

面试腾讯,字节跳动首先要掌握的Java多线程,一次帮你全掌握

Java架构之路

Java 程序员 架构 面试 编程语言

面试软件测试所需要掌握的7个技能

华为云开发者社区

sql 面试 测试

999页阿里P7Java学习笔记在互联网上火了,完整版开放下载

Crud的程序员

Java 程序员

干货|原来IPFS是这样存储文件的

QTech

区块链技术 IPFS 星际文件系统

基于GaussDB(DWS)的全文检索特性,了解一下?

华为云开发者社区

数据库 数据仓库 数据

Flink SQL 实战:HBase 的结合应用

Apache Flink

flink

干了三年的Java,你竟然还不会MySQL性能优化

华为云开发者社区

Java MySQL sql

深层互联带领自动旅游讲解耳麦进入“非入耳”时代

DT极客

引起故障的原因

jorden wang

准备去阿里以及大厂面试你都需要会些什么?我从任职阿里的朋友口中,总结出了一些答案!

Java架构之路

Java 程序员 架构 面试 编程语言

2020年不容错过的10本大咖之作 | 你最Pick哪一本?

博文视点Broadview

Flink 双流 Join 的3种操作示例

Apache Flink

flink 流计算

阿里拆中台?从架构师角度解读中台

javaba韩老师

架构 中台战略 TOGAF 中台的前世今生 中台的由来

「每日一题」抖音面试题:请阐述vue数据绑定的实现原理

Java架构师迁哥

如何利用状态同步开发一款游戏

Isa 婷婷

node.js 游戏开发 24小时自助游戏厅 联机游戏

曲折!目标腾讯,字节,拼多多;最后居然五面进了阿里?

Java架构之路

Java 程序员 架构 面试 编程语言

Polkadot系列(四)——Polkadot茶溪岸啤(XCMP),干杯!

QTech

区块链技术 polkadot 跨链

敏捷与安全不可兼得吗?看完这篇文章后,我想说:未必!

华为云开发者社区

敏捷 安全 开发

优化了MYSQL大量写入问题,老板奖励了1000块给我

华为云开发者社区

MySQL sql 写入

40亿条/秒!Flink流批一体在阿里双11首次落地的背后

Apache Flink

flink 流计算

软件测试--前后端数据交互

测试人生路

软件测试

light-rtc: 理念与实践

阿里云视频云

架构 音视频 WebRTC RTC

打造新一代企业数据驱动体系

StarRocks

数据库 大数据 数据分析 数字化转型 OLAP

架构师训练营第六周作业

zamkai

字节内部MySQL宝典意外流出!极致经典,堪称数据库的天花板

比伯

Java 编程 架构 面试 技术宅

LeetCode题解:264. 丑数 II,三指针,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

Spring Cloud Gateway (六) 自定义 Global Filter

Java 网关 SpringcloudGateway

完美!华为爆出Redis宝典,原来Redis性能可压榨到极致

996小迁

redis 架构 面试 资料

主从哨兵集群终于给你说明白了

moon聊技术

数据库 redis

内存分页不就够了?为什么还要分段?还有段页式?

yes

操作系统 内存管理

基于 Flink+Iceberg 构建企业级实时数据湖

Apache Flink

大数据 flink 流计算

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