写点什么

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

评论 1 条评论

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

1.2 了解MyBatis -《SSM深入解析与项目实战》

谙忆

2.1 类加载器、 双亲委派模型 -《SSM深入解析与项目实战》

谙忆

ChaosBlade:从零开始的混沌工程(五)

郭旭东

Kubernetes 云原生 混沌工程

Google Protocol Buffer 学习笔记

Geek_4z9ami

protobuf

Jessie’s产品经理系列1-基础能力篇

架构5班杨娟Jessie

产品经理 能力模型

联盟链有自己的路要走

Leonbond

区块链 联盟链 公有链

InnoDB存储引擎简介

Simon

MySQL innodb

SQL的三十而已—SQL30问

大唐小生

sql 技术人生

零基础建网站必备技能,看这一篇就够了

北柯

程序语言 网站搭建 编程网站

【译】代码中如何写出更有意义的命名

Jackey

代码质量

设计模式之——单例模式你真的会吗?

诸葛小猿

设计模式 单例模式 Singleton 饿汉式 懒汉式

《SSM深入解析与项目实战》目录与说明

谙忆

LeetCode题解:24. 两两交换链表中的节点,迭代,JavaScript,详细注释

Lee Chen

大前端 LeetCode

信创舆情一线--工信部开展网络安全技术应用试点示范工作

统小信uos

数据处理能力相差 2.4 倍?Flink 使用 RocksDB 和 Gemini 的性能对比实验

Apache Flink

flink

微服务架构下你的数据一致了吗?

码猿外

架构 微服务 数据一致性

CDN百科10:快速上手阿里云DCDN全站加速,最新配置与购买优惠教程

阿里云Edge Plus

CDN 直播 网页加速

设计模式中的单例模式并不完美

架构师修行之路

设计模式 单例模式 23种设计模式 高并发系统设计

秒懂云通信:如何使用阿里云号码认证服务(小白指南)

阿里云Edge Plus

云通信 通信云 号码认证

菊长说丨一文读懂MySQL4种事务隔离级别

华为云开发者联盟

MySQL 数据库 事务隔离级别 事务 华为云

JVM系列之:再谈java中的safepoint

程序那些事

Java JVM JIT safepoint

操作系统和并发的爱恨纠葛

苹果看辽宁体育

Java 并发

C/C++陷阱与套路,当年就是折在这些地儿…

华为云开发者联盟

c++ 设计 编辑 程序 陷阱

视频会议专线部署不会?别急,我教你

华为云开发者联盟

网络 网关 华为云 高清视频 welink

计算机网络基础(十五)---传输层-TCP协议详解

书旅

计算机网络 网络 协议栈 协议族

设计模式之假如需要一百万个对象

架构师修行之路

七的婚姻生活

徐说科技

1.1 了解Spring框架 -《SSM深入解析与项目实战》

谙忆

如何设计一个优秀的组件

Lee Chen

大前端

有它的加持,单机玩转百亿大数据不是梦!

易观大数据

如何将FastDFS存储数据平滑迁移至XSKY对象存储?

XSKY星辰天合

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