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

news/2024/5/20 8:51:20 标签: 大数据, serverless, runtime

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特约观察员,看看他们如何解读这一系列的发布及其背后的某些衍生逻辑:


http://www.niftyadmin.cn/n/1440259.html

相关文章

置对象作用域(转)

对象作用域确定哪些脚本可以使用该对象。默认情况下,创建对象例程时,对象具有 page 作用域。同一 ASP 页内的任何脚本命令都可以使用 page 作用域的对象;.asp 文件处理完请求后将释放该对象。大多数对象的推荐作用域是 page 作用域。不过&…

路由协议---rip

rip:路由信息协议 ripv1 (有类距离矢量型路由协议) 更新机制:广播更新 255.255.255.255 特点:不携带掩码不能支持VLSM/CIDR 不支持认证 RIPV1的配置: R1(config)#router rip 进入RIP进程 R1(config-router…

选择MYSQL列的类型(转)

选择MYSQL列的类型: 2.3 选择列的类型 上一节描述了各种可供选择的MySQL的列类型及其属性,以及它们可存储的各种值,所占用的存储空间等等。但是在实际创建一个表时怎样决定用哪些类型呢?本节讨论在做出决定前应考虑的各种因素。最…

第二十二章 跳出循环-shift参数左移-函数的使用 随堂笔记

第二十二章 跳出循环-shift参数左移-函数的使用 本节所讲内容: 22.1 跳出循环 22.2 Shift参数左移指令 22.3 函数的使用 22.4 实战-自动备份mysql数据库和nginx服务启动脚本 22.1 跳出循环 在我们使用循环语句进行循环的过程中,有时候需要在未达到循环结…

进程导致CPU 100%解决步骤(转)

进程导致CPU 100%解决步骤,进程,性能调优Oracle进程导致CPU 100%解决步骤 1-- 检查系统sar -u 5 52-- 看谁在用CPUtopas ps -ef |grep ora #检查第四列,C的大?a href"http://www.learners.cn" target"_blank">。╱nit,100 per c…

网易云基于Prometheus的微服务监控实践

当监控遇上微服务 在过去数年里,微服务的落地一直都是业界重点关注的问题,其始终面临着部署、监控、配置和治理等方面的挑战。轻舟微服务平台是网易云为企业提供的一套微服务解决方案,其中微服务监控是其关注的重点问题之一。与传统监控相比&…

OSI模型与TCP/IP

OSI 模型 应用层 :抽象语言,将文字,图片,音乐,视频等,抽象成编码语言。表示层:将编码语言(例如:C,c#,java等)转换成二进制语言。会话…

小组成员介绍(软件工程6组)

肖杰(2018160805003) 周远志(2018160805004) 伍明登(20160402079) 许曼(20160402079) 曾文杰(20160402043) 曾康(20160402010&…