BaaS 与 FaaS:解读这两种无服务器架构

BaaS vs. FaaS

BaaS 与 FaaS:这两种架构各具独特的应用场景,且在无服务器应用开发中能够相互补充。BaaS 侧重于管理应用程序的后端基础设施,而 FaaS 则支持在云端执行自包含的函数。

无服务器架构为何重要?

无服务器架构是一种用于在运行时环境中构建及运行应用程序与服务的执行模式,它有助于实现以下目标:

  • 优化业务实施流程及基础设施管理
  • 保持更高水平的控制力
  • 应对可用性规划、服务等级协议(SLA)及系统正常运行时间要求
  • 降低运营成本并优化预算管理
  • 减轻对特定云服务商的依赖(Vendor dependencies)
  • 利用依赖于第三方服务、API 或自定义代码的应用程序与服务
  • 免除亲自介入服务器及硬件管理的必要

简而言之,无服务器架构(Serverless Architectures)是一种执行设计模式。它既可以利用第三方服务,也可以在无状态的计算容器中运行自定义代码;这两种模式分别被称为 BaaS(后端即服务)和 FaaS(函数即服务)。

借助无服务器架构,组织在管理服务器端的应用程序开发任务时能够获得有力支援,并且只需在使用资源时才需付费。

它能够协助处理运行应用程序模型所涉及的各类需求,例如服务器及许可证的定期更新,同时确保系统的安全性与正常运行时间(可用性)。

传统的系统架构通常包含单一的、自成一体的代码与应用程序实体,并利用多个数据库来负责信息的检索、存储以及 API 身份验证。

然而在无服务器架构中,上述各项职能被视为相互独立的函数;尽管如此,它们依然能够协同工作,确保应用程序的稳定运行。正因如此,无服务器模式能够大幅节省计算能力、成本、时间、存储空间以及其他各类资源。

BaaS 与 FaaS

若要理解 BaaS 与 FaaS 之间的差异,首先必须明确这样一个事实:二者用途各异,因此彼此之间并不构成直接竞争关系。

在此,我们将探讨这两种无服务器基础设施组件各自独特的价值与重要性,旨在确保您不会误将 FaaS 用于处理本应由 BaaS 承担的任务。

BaaS 与 FaaS:什么是“后端即服务”(BaaS)

BaaS 是一种曾广为人知的云计算模式,旨在自动化并管理 Web 或移动应用程序开发过程中的后端事务。

如今,它主要以其最新演进形态——“移动后端即服务”(MBaaS)而著称。该服务协助开发者处理数据与文件存储、消息传递与推送通知、社交网络集成,以及相关的配置与监控工作。

MBaaS 的本质在于借助服务提供商的力量,通过定制化的 SDK 和 API,来负责构建并维护应用程序稳定开发所必需的全部后端技术基础设施。

顶级 BaaS 提供商列表

  • Kumulos
  • Firebase
  • Back4app
  • Azure
  • Parse
  • Hasura
  • Kinvey
  • Firebase
  • Linx
  • Leancloud

BaaS 与 FaaS:什么是函数即服务 (FaaS)

FaaS(函数即服务)是一个允许您在云端运行自包含函数(即代码片段)的平台。

它使用户能够在特定事件触发时,执行预先编写好的代码。该服务因其出色的实时数据处理能力而广受欢迎。

这有助于开发人员实现代码的即时创建或更新,并使这些代码能够随着页面上相关元素的任何交互操作而被立即执行。

这些应用程序和服务运行在现有 Pod 内特定类型的临时容器(即“瞬时容器”)中。一个 Pod 由多个正在运行的容器组成,这些容器共享相同的资源和网络环境。

它们存在的目的在于提供流畅的用户集成体验,并协助完成各类工作负载及故障排查任务,且在整个过程中不会对系统的其他部分造成任何干扰。

因此,在 FaaS 架构中,自定义代码是在瞬时容器中运行的。FaaS 旨在以一种最优化的方式对微服务进行管理与调控。

归根结底,它是一种基于事件驱动的模型;通过该模型,系统能够对托管的代码片段进行监控与执行,从而让用户无需操心代码执行过程中的具体细节。

顶级 FaaS 提供商列表

  • AWS Lambda
  • Cloud Functions | Google Cloud
  • IBM OpenWhisk
  • IronWorker
  • Joyent Manta Functions
  • Microsoft Azure Functions
  • PubNub BLOCKS
  • Serverless Docker