全栈无服务器宣言

2025-05-24

全栈无服务器宣言

全栈无服务器应用程序具有以下三个特点:

  1. 解耦的前端
  2. 基础设施即代码
  3. 无服务器技术,以最少的 DevOps 实现最大的可扩展性

通过将无服务器技术与端到端全栈架构相结合,开发人员能够以一种过去大多数开发人员无法做到或无法访问的方式选择、复制、部署到云并迭代复杂的可扩展云应用程序。

由于许多无服务器技术(例如 AWS Amplify、CDK 和无服务器框架等)正在降低使用 IAC(基础设施即代码)构建云应用程序的门槛,因此新一代传统前端开发人员可以使用他们现有的 Web 和移动技能来构建传统上无法实现的应用程序类型。

当我说使用他们现有的技能时,我假设典型的前端或全栈开发人员熟悉以下内容:

  1. JavaScript、TypeScript 或 Python
  2. 与 CLI 交互
  3. 对与 RESTful 和/或 GraphQL API 交互的基本了解

全栈无服务器应用程序可以作为端到端项目进行共享和部署,无需过多关注开发人员的本地环境,因为所有基础设施都在云端运行。它们可以轻松地部署、共享、迭代和恢复。

后端基础设施的创建和销毁只需几分钟,开发者无需担心高昂的开发成本。由于服务是无服务器的,因此无论产生多少开发成本,都不会太高。

为什么无服务器

全栈无服务器架构高度依赖无服务器理念来构建后端功能。这意味着需要考虑以下几点:

  1. 开发人员的速度比服务所有权更有价值
  2. 专注于创造商业价值,而不是重新发明轮子
  3. 应该从根本上理解总体拥有成本(按计算付费->可变支出与资本支出)
  4. 代码是一种责任
  5. 如果它可以作为服务提供,那么它就不应该从头开始构建
  6. 无服务器功能填补了托管服务未涵盖的空白

研究还表明,云计算越来越无服务器化,这意味着无服务器比有服务器更具未来性。

《简化云编程:伯克利对无服务器计算的看法》一书中,对云计算的未来做出了如下预测:

  • 我们期待新的 BaaS 存储服务能够诞生,从而扩展能够在无服务器计算上运行良好的应用程序类型。此类存储的性能将与本地块存储相媲美,并拥有临时存储和持久存储两种版本。与目前支持无服务器计算的传统 x86 微处理器相比,我们将看到无服务器计算的计算机硬件的异构性将更加显著。
  • 我们预计,得益于高水平的编程抽象和云功能的细粒度隔离,无服务器计算将比有服务器计算更易于安全编程。
  • 我们认为没有根本原因导致无服务器计算的成本高于有服务器计算,因此我们预测计费模式将会不断发展,以便几乎任何规模运行的应用程序的成本都不会更高,甚至可能比无服务器计算的成本更低。
  • Serverful 计算的未来将助力 BaaS 的发展。那些在无服务器计算上难以编写的应用程序,例如 OLTP 数据库或队列等通信原语,很可能会成为所有云提供商提供的更丰富的服务的一部分。
  • 虽然 Serverful 云计算不会消失,但随着无服务器计算克服其当前的局限性,这部分云计算的相对重要性将会下降。
  • 无服务器计算将成为云时代的默认计算范式,在很大程度上取代有服务器计算,从而结束客户端-服务器时代。

在上面的论文中,他们将“无服务器”一词重新定义为:

简单来说,无服务器计算=FaaS+BaaS。

无服务器的定义不再仅仅是函数即服务,现在还包括后端即服务 (BaaS)。你还会经常看到无服务器被更多地讨论为一种哲学、策略或一个范围,其最终目标是实现“无服务器”,而不是对无服务器的含义或本质进行非黑即白的描述。

除了 Serverless 技术的传统优势之外,Serverless 技术比 Serverful 更受青睐还有一个主要原因:

降低传统非后端开发人员的进入门槛

由于开发人员利用托管服务实现身份验证和数据库等功能,而不必管理基础设施,因此对于新开发人员来说,进入门槛比传统的 Serverful 云计算更低。

想了解更多关于我之前关于全栈无服务器的含义和意义的想法,请查看我 2019 年初的文章《无服务器计算时代的全栈开发》。

文章来源:https://dev.to/dabit3/the-full-stack-serverless-manifesto-3jjh
PREV
新的创作者经济——DAO、社区所有权和加密经济学
NEXT
使用 Amplify 框架进行用户身份验证的完整指南入门创建我们的应用程序 ID 创建和配置身份验证服务测试后续步骤