“无服务器”的不同定义
原文发表于winterwindsoftware.com。
与之前的许多行业流行语——“云计算”、“DevOps”、“大数据”——一样,关于“无服务器”一词定义的争论也成了吹毛求疵者的温床。
“但仍然需要服务器啊!”
——Reddit 用户 Dave 说道。
谢谢你,戴夫。😏
如果你今天正在阅读一篇与无服务器相关的文章,那么作者很有可能会在引言中给出该术语的定义(可能是为了避免触怒互联网上的“戴夫们”)。
经验丰富的从业者可以直接跳到下一段,但如果你是这个领域的新手,那么深入了解这个概念是值得的。
在本文中,我们将探讨无服务器领域几位杰出倡导者提供的定义,并在此过程中提炼出一些共同的主题,最后我将尝试给出我自己的不太优雅的定义。
注:以下引文中的所有强调均为我所加。
专家们怎么说
我们先从AWS本身说起:
“无服务器计算让您无需考虑服务器即可构建和运行应用程序及服务。无服务器应用程序无需您配置、扩展和管理任何服务器。您可以为几乎任何类型的应用程序或后端服务构建它们,运行和扩展应用程序所需的一切高可用性工作都由系统自动处理。”(来源)
Serverless Framework的作者们也表达了类似的观点:
“就像无线网络也需要线路一样,无服务器架构也仍然需要服务器。‘无服务器’的真正含义是,作为开发人员,你无需考虑这些服务器,只需专注于代码即可。”
您无需主动管理应用程序的扩展。您无需配置服务器,也无需为未使用的资源付费。”(来源)
Auth0 副总裁Tomasz Janczuk在其定义文章中提供了一个高层次的总结:
“无服务器趋势的本质在于软件开发过程中摒弃了服务器的概念。”(来源)
AWS Lambda 产品经理Ajay Nair重点介绍了那些消失的任务的具体细节:
拥有服务器意味着承担责任:
- 您负责管理您的基本元素(应用程序中的函数,或存储中的对象)如何映射到服务器基本元素(CPU、内存、磁盘等)。
- 您可以自行决定如何扩展容量以应对应用程序规模。
- 无论实际流量如何,您都拥有处理应用程序预计流量所需的容量(并因此需要付费)。
- 您负责管理可靠性和可用性机制,例如冗余、故障转移、重试等。
对我而言,无服务器意味着你不再需要关注与服务器相关的活动/责任。”(来源)
📖 相关:无服务器世界中消失的担忧列表。
前AWS Serverless高级数据分析师Paul Johnston给出了一个简洁明了、以财务为重点的解释:
“无服务器解决方案是指,如果无人使用,则运行成本为零的解决方案(数据存储除外)。”(来源)
保罗还指出了我经常遇到的一个常见误解:
“人们通常认为,无服务器意味着使用函数即服务 (FaaS),但这只是无服务器解决方案的一部分。”
A Cloud Guru 的工程副总裁Peter Sbarski发表了他的看法:
“无服务器架构旨在将用户与服务器、基础设施以及底层配置或核心操作系统隔离开来。相反,开发人员使用单一用途的服务(例如用于存储的 S3 或用于身份管理的 Auth0)和弹性计算平台(例如 AWS Lambda)来执行代码。”(来源)
共同主题
从以上引述中提炼出核心内容,我们可以发现一些反复出现的观点,这些观点围绕着无服务器架构包含哪些内容以及排除哪些内容展开:
里面有什么
- 资源成本必须与使用水平紧密匹配。
- 更加注重应用程序代码
有什么?
- 服务器配置和维护
- 主动管理服务的可用性和扩展性
我的定义
我将站在上述巨人的肩膀上,并将这些观点整理成散文,给出我自己的定义:
无服务器解决方案是指开发人员可以腾出精力专注于应用程序开发,而无需担心服务器(或容器)的配置、扩展或维护,并且其运行成本与系统的使用水平成正比。
最后,如果你正在写一篇关于无服务器架构的文章,并且觉得有必要向读者解释一下这个术语,那就直接复制粘贴以下内容到你的文章里,然后继续写作吧!😎
👉 不确定什么是无服务器架构?来看看专家们整理的这些无服务器架构定义吧。
💌如果您喜欢这篇文章,可以订阅我的每周新闻简报,了解如何在 AWS 中构建无服务器应用程序。
文章来源:https://dev.to/paulswail/the-differing-definitions-of-serverless-2h3k