NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

为“无服务器”正名

  • 2020-02-17
  • 本文字数:2250 字

    阅读完需:约 7 分钟

为“无服务器”正名

无服务器(Severless)不是一个好的术语,但它却被用来描述一个强大且经常被误解的概念。



本文将讨论“无服务器”的缺点和优点,并为其改变构建应用程序的方式带来的好处辩护——进一步向无服务器架构发展。

现有的一些定义:

AWS——无服务器允许你构建和运行应用程序和服务,而无需考虑服务器。


Paul Johnston——无服务器的解决方案是,如果没有人使用它,就没有任何运行成本。


Mike Roberts——无服务器架构是在应用程序设计中包含第三方“后端即服务”(BaaS)服务和/或包含在“函数即服务”(FaaS)平台上托管的临时容器中运行的自定义代码。


这些定义都非常简洁和巧妙,但它们缺乏实用性细节,而这些细节是理解无服务器方法能力的关键。


作为一个补充说明,在早些时候,我在一条推特主题中给出一个简单定义。



上面使用的符号“⊂”是指左边东西是右边东西的子集,也就是说,FaaS 是无服务器的子集。

更深入的讨论

自 2014 年 AWS Lambda 发布以来,人们经常将 FaaS(函数即服务)和无服务器作为同义词使用。


FaaS 是一个计算服务术语,它允许代码的功能以一种隔离方式运行。这些函数在响应事件(如 HTTP 调用)时运行,一个系统抽象了服务器的底层复杂性,包括操作系统和所有的细节或配置和扩展。


FaaS 是许多无服务器架构的关键组成部分,但你可以实现一个不使用 FaaS 的无服务器架构,也能实现一个使用 FaaS 的非无服务器架构。在很大程度上,FaaS 是一种无服务器的计算方法,但是,对于许多应用程序架构来说,计算(即运行代码)并不是其唯一的一个方面。


应用程序架构可能需要很多东西,例如:计算、存储、监控……



AWS 提供的几个无服务器架构组件示例


如前所述,FaaS 函数是由事件(events)触发的,例如 HTTP 调用。上图中的其他无服务器服务都可以由事件触发,甚至能自己生成事件,从而触发更多的服务。迁移到能高效利用这些服务的架构,通常就是迁移到事件驱动的架构。


最近,事件驱动架构的概念开始与无服务器架构这个术语一起出现。


随着 AWS 等云提供商针对无服务器架构发布越来越多的服务,这种术语链接正在进一步扩展。这并不是什么新鲜事,无服务器从早期阶段就经常被描述为“scale to zero”——这种扩展和计费的方法显然与基于事件的服务紧密结合在一起。


事件驱动架构的一个例子是 AWS 发布的一个新的重要的无服务器服务——可以说是 Lambda 以来最大的服务之一。


EventBridge 是 AWS 针对无服务器全托管事件总线给出的答案。它使得事件可以通过更少的代码、更好的可观测性和一些非常超前的附加功能(如新推出的EventBrige模式注册表)在不同服务间流动。


模式注册表(The Schema Registry)可自动检测并将大型分布式架构的所有事件聚合到一个集中式注册表中——甚至为开发人员提供自动生成代码绑定的 SDK 来从 IDE 访问事件。

潜在解决方案空间在扩大

潜在解决方案空间包括上图所示的所有服务。


以及 AWS 和其他云提供商的许多其他服务。


以及未来十年将会发布的服务。


以及由富有创造力的工程师自行构建的无服务器系统,他们将这些组件块以连云提供商都没预料到的方式组合在一起,构建出新的、令人兴奋的东西。


毕竟,EventBridge 源于 AWS 发现了 Cloudwatch 事件被用来触发 Lambdas 的奇妙方式。


这种现象的另一个例子可能是简单的无服务器事件调度系统,我们搭配使用 Step Functions 和 Lambda 构建该系统,我们的另一篇文章对此进行了详细介绍。

那么,为何我们没全都采用无服务器呢?

首先,很难从一个经常被误用的术语“无服务器” 中看到这个潜在解决方案空间。


特别是当某个框架选择使用它作为自己的名称时——这是一个令人惊叹的工具,但无助于保留术语背后的复杂语义。


现在,显然不仅仅是因为一个词汇的问题减缓了无服务器架构的普及。这是一个范式转变,可能比之前的“云”更有影响力。


构建由服务器、自管理系统和永久状态组成系统的过程中成长起来的工程师,不得不转向事件驱动的思考方式,这种方式似乎具有无限的计算规模和存储空间——同时还面临着新的挑战、约束,而且缺少工具和最佳实践。


例如,迁移到更偏向无服务器的架构,通常涉及到采用 DynamoDB(或类似的东西)来代替过去的关系型数据库。NoSQL 现在已经不是什么新东西了,但是将它用于所有核心业务需求的想法是——这是因为整个系统现在的规模更大,而且具备之前人们并不了解的事件驱动的特性。


这并不容易——DynamoDB 很复杂,要做好就更复杂了。抛弃过去熟悉的 Web 应用程序框架——不是通过低成本的修改来保持函数的轻量化,而是将典型的框架责任转移给云提供商——这些都不是小事!


当你能清楚地看到“潜在空间”时,才能让收益大于成本


人们不会为了迁移系统和转变观念而经历这种痛苦。正如在许多其他文章中讨论的那样,无服务器架构允许开发人员专注于编写最能体现业务价值的代码,同时降低 TCO(总拥有成本)、增加可伸缩性并同时减少碳足迹(carbon footprint)。


无以言表

有时候,无法用言语来表达。有时候,要用一个词来描述潜在解决方案所涉及的范围之广、形式之多,实在是太过复杂。


但是,作为一个在许多新的无服务器服务出现前就存在的词,它做得还不错。事实上,这证明了这个我们正努力把它从这个空间中分离出来的词的力量。


如果这个词是 FunctionFull ,那么随着这个 space 的扩大,我们就不可能一直使用它,如果没有无服务器这颗北斗星引导我们走向一个无形的特性,也许我们不会以这种方式扩展这个空间。


目前,至少对我来说,无服务器设法完成了一项艰巨工作,定义了一个非常灵活且复杂空间的边界。


英文原文:


In Defence of “Serverless” —the term


2020-02-17 14:281949
用户头像

发布了 690 篇内容, 共 400.0 次阅读, 收获喜欢 1498 次。

关注

评论

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

C语言怎么学?这篇文章给你完整答案

图灵教育

C语言

x-sheet 开发教程:初始化配置自定义布局

OpenHacker

Excel x-sheet sheet spreadsheet

Spring Cloud 架构

Damon

7月月更

GIS数据漫谈(五)— 地理坐标系统

ThingJS数字孪生引擎

浅谈AI深度学习的模型训练和推理

GVision

搞定RocketMQ这二十三点,大厂面试稳了

王小凡

Java 数据库 程序员 面试 大厂面试

详解分布式系统的幂等

焱融科技

分布式系统 存储 文件存储 幂等性

选择体育场馆的LED显示屏时应该注重哪些方面

Dylan

LED显示屏 户外LED显示屏 led显示屏厂家

收藏!0 基础开源数据可视化平台 FlyFish 大屏开发指南

云智慧AIOps社区

大前端 低代码 开源项目 数据可视化工具 开源推荐

美团二面:为什么Redis会有哨兵?

王小凡

Java redis 编程 程序员 开发

2022备战秋招10W字面试小抄pdf版,附操作系统、计算机网络面试题

程序员啊叶

Java 编程 程序员 架构 java面试

图的遍历的定义以及深度优先搜索和广度优先搜索(二)

乔乔

7月月更

4 轮拿下字节 Offer,面试题复盘

程序员啊叶

Java 编程 程序员 架构 java面试

Redis网红高频面试题三连:缓存穿透?缓存击穿?缓存雪崩?

程序员啊叶

Java 编程 程序员 架构 java面试

怎么会不喜欢呢,CI/CD中轻松发送邮件

Jianmu

持续集成 低代码 邮件 通知

1000个字带你一次性搞懂JavaAgent技术,反正我是彻底服了

程序员啊叶

Java 编程 程序员 架构 java面试

从存储角度看自动驾驶必经之路

焱融科技

人工智能 自动驾驶 存储 文件存储 分布式文件存储

建木持续集成平台v2.5.2发布

Jianmu

持续集成 低代码 CI/CD gitops

细数国产接口协作平台的六把武器!

Liam

开发 Postman API 接口开发 前后端协作

面试好难啊!蚂蚁金服的六轮面试我是强撑过来!差点OUT(面试复盘)

程序知音

Java 阿里 程序员面试 BAT面试题 八股文

2022年金三银四Java面试宝典,横扫春招+社招+秋招

程序员啊叶

Java 编程 程序员 架构 java面试

兆骑科创海内外引进高层次人才,创新创业项目对接

兆骑科创凤阁

【微信小程序】项目实战—抽签应用

flow

签约计划第三季

美团到餐“祖传数仓”标准化治理笔记

老猎人

人工智能发展到什么阶段了,产生“自主情感”可能吗?

燕陈华

人工智能 深度学习 卷积神经网络

技术分享| 快对讲综合调度系统

anyRTC开发者

音视频 指挥调度 快对讲 语音对讲 视频对讲

技术实践干货 | 初探大规模 GBDT 训练

观远数据

人工智能 机器学习

写好技术原创文章的一点建议

Qunar技术沙龙

技术文章

施耐德电气、欧莱雅等企业巨头如何开放式创新?DEMO WORLD世界创新峰会揭秘

创业邦

低代码实现探索(四十五)业务参数

零道云-混合式低代码平台

带来高价值用户体验的低代码开发平台

力软低代码开发平台

为“无服务器”正名_架构_Ben Ellerby_InfoQ精选文章