什么是 BaaS?|后端即服务与无服务器

后端即服务 (BaaS) 使开发人员可以专注于应用程序的前端,无需构建或维护后端服务即可利用。BaaS 和无服务器计算有一些相似之处,许多提供商都提供两者,但是两种模型有一些差异。

学习目标

阅读本文后,您将能够:

  • 定义 BaaS
  • 定义 MSaaS
  • 了解无服务器计算和 BaaS 之间的区别
  • 了解 BaaS 和 PaaS 之间的区别

复制文章链接

什么是 BaaS?

后端即服务 (BaaS) 是一种云服务模型,在其中,开发人员外包 Web 或移动应用程序的所有幕后方面,仅需自行编写和维护前端。BaaS 供应商为服务器上发生的活动提供预编写的软件,例如用户身份验证、数据库管理、远程更新和推送通知(针对移动应用程序),以及云存储和托管。

后端即服务 (BaaS)

在不使用 BaaS 的情况下开发应用程序,就像导演电影。电影导演除实际拍摄和指导将出现在电影中的场景外,还负责监督或管理摄制组、照明、布景、服装、演员表和制片时间表。现在想象一下,如果有一项服务负责所有幕后活动,导演就只需要指挥并拍摄场景。这就是 BaaS 的概念:提供商负责“灯光”和“摄像机”(或服务器端*功能)的管理,以便导演(开发人员)可以专注于“动作”——最终用户看到并体验的内容。

BaaS 使开发人员可以专注于编写前端应用程序代码。通过 BaaS 供应商提供的 API(一种程序对另一个程序发出请求的途径)和 SDK(用于构建软件的工具包),他们可以集成所需的所有后端功能,而无需自行构建后端。他们也不必管理服务器、虚拟机容器,即可保持应用程序运行。因此,他们可以更快地构建和启动移动应用程序和 Web 应用程序(包括单页应用程序)。

*服务器端是指托管在服务器上或发生在服务器上、而不是互联网客户端-服务器模型中的客户端上的所有内容。

什么是移动后端即服务 (MBaaS)?

移动后端即服务 (MBaaS) 是专门用于构建移动应用程序的 BaaS。尽管一些人认为 BaaS 和 MBaaS 基本是可互换的术语,但构建移动应用程序时并不是必须使用 BaaS 服务。

BaaS 包含什么?

BaaS 提供商提供许多服务器端功能。例如:

  • 数据库管理
  • 云存储(用于用户生成的内容)
  • 用户身份验证
  • 推送通知
  • 远程更新
  • 主机
  • 其他特定于平台或供应商的功能;例如,Firebase 提供 Google 搜索索引

BaaS 和 MBaaS 提供商包括 Google Firebase 和 Microsoft Azure。

BaaS 和无服务器计算之间有什么区别?

BaaS 和无服务器计算之间存在一些重叠,在这两者中,开发人员都只需要编写应用程序代码,而无需考虑后端。此外,许多 BaaS 提供商还提供无服务器计算服务。然而,使用 BaaS 构建的应用程序与使用真正的无服务器架构构建的应用程序之间存在显著的操作差异。

如何构建应用程序

无服务器应用程序的后端分为多个函数,每个函数都响应事件并仅执行一个操作(请参阅什么是 FaaS?)。而 BaaS 服务器端功能可以按提供商的意愿进行构建,并且开发人员不必担心除应用程序前端以外的任何事务。

代码运行的时间

无服务器架构是事件驱动的,这意味着它们响应事件而运行。每个函数仅在由某个事件触发时才运行,否则不会运行。使用 BaaS 构建的应用程序通常不是事件驱动的,这意味着它们需要更多的服务器资源。

运行代码的地方

无服务器函数可以从任何机器上的任何位置运行,只要它们仍然与应用程序的其余部分通信即可,这样使得通过在网络边缘运行代码边缘计算整合到应用程序体系结构中成为可能。BaaS 不必设置为随时随地运行代码(尽管可以,具体取决于提供商)。

应用程序如何扩展

可扩展性是将无服务器架构与其他类型的架构区分开的最大区别之一。在无服务器计算中,应用程序会随着使用量的增加而自动扩展。云供应商的基础设施会根据需要启动每个函数的临时实例。而除非 BaaS 提供商还提供无服务器计算,并且开发人员将其构建到应用程序中,否则 BaaS 应用程序无法以这种方式进行扩展。

BaaS 和平台即服务 (PaaS) 有什么区别?

PaaS 通过提供一个平台,供开发人员构建应用程序。与无服务器计算和 BaaS 一样,平台即服务 (PaaS) 消除了开发人员构建和管理应用程序后端的需要。但是,PaaS 不包括预先构建的服务器端应用程序逻辑,例如推送通知和用户身份验证。PaaS 为开发人员提供了更大的灵活性,而 BaaS 提供了更多的功能。