前端未来的主流技术方向有哪些?腾讯、京东、同城旅行等大厂都是怎么布局的?戳此了解 了解详情
写点什么

Serverless Days 2020 展望 Serverless 架构的未来

2020 年 7 月 22 日

Serverless Days 2020展望Serverless架构的未来

在 6 月举行的Serverless Days在线活动中,加州大学伯克利分校、Serverless.com、腾讯云和谷歌云的专家齐聚一堂,讨论了 Serverless 计算的最新创新、使用场景和未来方向。


在 2019 年O’Reilly对1500名IT专业人士的调查中发现,40%的受访者所在的组织已经采用了 Serverless 架构。2020 年的DataDog调查显示超过 50%的 AWS 用户在使用 Serverless AWS Lambda 函数即服务(Function as a Service,FaaS)。Serverless 技术正在成为主流。


Serverless Days 是一个关注 Serverless 技术的国际领先的会议,今年 6 月 18 日在中国举办。业界和学术界的顶级专家分享了一些事实、提示和观点,解释了为什么 Serverless 会如此流行,以及为什么企业应该关注这个它。


Johann Schleier-Smith 做了一个关于 Serverless 计算历史和未来的演讲。他是“Cloud Programming Simplified: A Berkeley View on Serverless Computing”论文的合著者之一,该论文将 Serverless 计算定义为无状态 FaaS(函数即服务,如 AWS Lambda)和有状态存储 BaaS(后端即服务,如 AWS S3)的组合。


在我们的定义中,服务要想被视为 serverless,它必须能够动态扩展,不需要显式提供并且要根据使用情况收费。——出自“A Berkeley View on Serverless Computing”一文


根据 Schleier-Smith 的说法,Serverless 计算能够极大地简化系统和基础设施管理,并且正在进入简化应用开发的新阶段。在实现 Serverless FaaS 基础设施方面,有三种主要的方式。每种方式都致力于提供了隔离和安全的沙箱,以便于执行用户提交的代码。


实现 FaaS 基础设施的第一种方式是使用系统或硬件级别的 VM,比如 AWS Firecracker。这种方式为应用提供了最好的隔离性和安全性,但是可能会比较慢,管理起来也很复杂。云供应商安装和启动操作系统和运行时软件栈(如 Node.js 或 Python)来运行用户的代码。AWS Lambda 的成功证明了这种方法的可伸缩性。


第二种方式就是使用容器,如 Docker。容器会使用像 Kubernetes 这样的方案来进行管理。这种方式的安全性稍差一些,但是性能上要比系统级 VM 高得多。在执行用户的代码之前,云供应商加载和启动带有操作系统与运行时栈的容器镜像。


第三种方式,也是正在兴起的方式,就是使用应用程序特定的 VM,比如WebAssembly。这种方式提供了较高层级的抽象。WebAssembly VM 不需要引导自己的操作系统或软件栈。它能够执行编译好的字节码应用。WebAssembly提供了一个高层级的“基于能力”的安全模型来访问系统资源(如通过WASI规范),而不是使用粗粒度的操作系统级别的隔离。但是,与操作系统容器不同,WebAssembly 的缺点在于,只有它支持的应用才能编译为 WebAssembly 字节码。目前,只有 C/C++、RustAssemblyScript(TypeScript 的一个子集)得到了良好的支持。


我们有实现隔离的多种方式,应用可以根据自己的需求选择不同的方式。——Johann Schleier-Smith


这三种方式提供了平衡性能、安全性和易用性等方面的一系列方案。随着技术的演化,不同方式之间的界限会变得模糊起来。例如,将系统级 VM 和容器桥接起来,LightVM方式试图将相关的操作系统功能直接编译到 VM 中,从而实现更快的性能。


Serverless 基础设施方面另外一个创新是 Google Cloud 的gVisor。Google 的 Wenlei He 在会议上针对 Cloud Run 作了一个很棒的演讲。从底层来件,Google gVisor 提供了一个系统级别的沙箱,设计用来运行容器。它要比 Docker 更安全,比系统级的 VM 更快。如今,Google 的三个主要的 Serverless 产品,即Cloud RunCloud FunctionsApp Engine,都是构建在 gVisor 之上的。


FaaS 环境中,Serverless 一个常见(但也可能是被低估)的维度就是它能够向公有云基础设施添加“可编程的”维度——Google Cloud Serverless 产品经理 Jason Polites


正如 Schleier-Smith 和 Polites 所暗示的那样,Serverless 基础设施创新是一个达成目的的手段。Serverless 计算的最终目标是简化互联网程序的开发。不过,随着一张架构图,最近“Serverless Twitter”成为了热议的话题,很多人不禁要问:相对于我们要替代的“有服务器的”技术,它到底哪里简单了?(原图出自该文,感兴趣的读者可以查阅。)



Serverless.com 的 CEO Austen Collins 做了一个关于最先进的 Serverless 工具和应用架构的演讲。他创造了“Serverless 架构师的兴起”这一提法,用来描述对有经验的 Serverless 技术人才的迅速变化的需求。随着对 Serverless 采用的不断增长,开发人员正在使用它来构建成熟的企业级应用,而不仅仅是简单的 Web 服务或 AWS 服务之间无状态的连接器。例如,开发人员正在突破 Serverless FaaS 和 BaaS 之间的界限。AWS 最近发布了Elastic File System for Lambda,从而能够实现 Lambda 函数的状态化。另一方面,WebAssembly 正在推动通过 WASI 或自定义的数据库访问扩展实现安全的文件系统访问。


正如上图所示,FaaS 应用的复杂性在急剧增长。现在,开发人员似乎需要具备软件架构师的技术才能构建 Serverless 的解决方案。作为在中国举办的第一个 Serverless Days 活动,Serverless.com宣布与腾讯云建立合作,提供简化在腾讯云 Serverless 平台上开发Node.js+Express.js应用静态Web站点RESTful API端点的软件工具。


与西方的互联网巨头类似,腾讯是亚洲最大的互联网公司之一,运行着复杂的数据中心来为其应用提供动力,所以将其一部分的数据中心作为云服务对外提供也是很自然的事情。腾讯云的 Serverless 总经理 Yunong Xiao 介绍了腾讯云主要的 Serverless 产品,包括Serverless Cloud Function (SCF)以及用于在 SCF 上部署应用的Serverless框架


Serverless Days China 活动由腾讯云赞助。这是一次关于 Serverless 计算的一次东西方碰撞,中国的开发者对讨论的技术产生了浓烈的兴趣。


原文链接:


Serverless Days 2020 Looks at Future of Serverless Architecture


2020 年 7 月 22 日 16:432281

评论

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

1月|日更挑战活动说明

InfoQ写作平台官方

活动专区 七日更

CSS14 - 元素可见性

桃夭十一里

html/css

如何使用maven 轻松重构项目

田维常

maven

关于事务、redolog 写入的两个问题分析

程序员架构进阶

MySQL innodb 事务 28天写作

智能building之二 智能单体建筑

张老蔫

28天写作

夜莺二次开发指南系列

qinyening

开源 监控 滴滴夜莺 夜莺监控 运维平台

精选算法面试-数组II

李孟

面试 算法 数组 28天写作

「大厂攻略」打开线程 | 进程 | 协程的大门

我是程序员小贱

面试 操作系统

京东RPA:以企业数字化转型为驱动的机器人流程自动化解决方案专家

京东科技开发者

RPA 企业信息化 数字化运维

TCP波场拼系统开发|TCP波场拼软件APP开发

开發I852946OIIO

系统开发

CSS15 - 界面样式&垂直对齐

桃夭十一里

html/css

我们设计的是微服务还是小单体应用

xcbeyond

微服务 方法论 DDD 28天写作

谈谈SpringFramework与IoC依赖查找

Java架构师迁哥

重学JS | 异步编程 async/await

梁龙先森

前端 编程语言 28天写作

Mysql报表下载为什么出现了重复的数据?

三石

MySQL性能优化 28天写作 mysql重复数据

最近很火的京东、天猫超市飞天茅台抢购是怎么回事,从原理流程给你们分析一波

谙忆

MySQL查询——连接查询

程序员的时光

程序员 28天写作

面试官:你说一下对Java中的volatile的理解吧

云流

Java 编程 面试 多线程

AES/CBC/PKCS5Padding到底是什么

kof11321

加密解密

从一场营地教育直播,看懂众盟“私域流量营销”的底层逻辑

脑极体

创业失败启示录|校园微生活之快叫外卖

青城

28天写作 创业失败启示录 青城

Python 循环语句

赵开忠

28天写作

甲方日常 85

句子

工作 随笔杂谈 日常

大厂面试官竟然这么爱问Kafka,一连八个Kafka问题把我问蒙了

五分钟学大数据

大数据 kafka

28 天带你玩转 Kubernetes-- 第七天(玩转 Dockerfile)

Java全栈封神

Docker Kubernetes k8s Dockerfile 28天写作

JVM故障诊断和处理工具

Silently9527

Java JVM jvm调优

我给职场新人提个建议

石云升

创业 28天写作 职场新人

大小公司产品经理岗位对比

Kr

2020 全球 JS 调查报告新鲜出炉

蓝色的秋风

typescript Vue 前端 React React Native

大厂面试题:你知道JUC中的Semaphore、CyclicBarrier、CountDownLatch吗

Java鱼仔

Java 面试 并发 JUC

网络故障排除工具,你用过哪些?

技术为帆,纵横四海- Lazada技术东南亚探索和成长之旅

技术为帆,纵横四海- Lazada技术东南亚探索和成长之旅

Serverless Days 2020展望Serverless架构的未来-InfoQ