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

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

学习目标

阅读本文后,您将能够:

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

相关内容


想要继续学习吗?

订阅 TheNET,这是 Cloudflare 每月对互联网上最流行见解的总结!

参阅 Cloudflare 的隐私政策,了解我们如何收集和处理您的个人数据。

复制文章链接

什么是 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 提供了更多的功能。

常见问题解答

什么是后端即服务 (BaaS)?

后端即服务 (BaaS) 是一种云模型,开发人员将所有服务器端责任外包给第三方供应商。这允许开发人员专注于编写和维护其应用的前端,而供应商则处理托管和数据库管理等幕后任务。

BaaS 服务通常包含哪些具体功能?

BaaS 提供商提供各种可通过 API 和 SDK 进行集成的预构建服务器端功能。常见服务包括用户身份验证、移动应用的推送通知、用户内容的云存储、数据库管理和远程更新。

后端即服务与无服务器计算有何不同?

虽然这两种模型都消除了前端开发人员管理后端基础设施的需要,但它们在后端的运作方式有所不同。无服务器架构是事件驱动的,将应用分解为仅在触发时运行的独立函数。BaaS 应用通常不是事件驱动的,也不会通过启动代码实例来自动扩展,除非提供商专门提供无服务器集成。

BaaS 和移动后端即服务 (MBaaS) 有什么区别?

MBaaS 本质上是专门为创建移动应用而优化的 BaaS。BaaS 是一个更广泛的类别,可用于任何类型的应用,包括基于 Web 的单页应用,而 MBaaS 则专注于移动特定需求。

后端即服务 (BaaS) 与平台即服务 (PaaS) 相比如何?

两种模型都能使开发人员无需管理后端硬件和操作系统。然而,PaaS 提供了一个平台,供开发人员从头开始构建自己的后端逻辑。BaaS 提供的灵活性有所降低,但通过包含预先编写的应用逻辑(如社交集成或通知服务),提供更即用型的功能。

开发人员为何选择使用 BaaS?

通过使用预先编写的软件和托管基础设施,开发人员可以快速构建和启动应用,从而节省了构建后端或管理虚拟机和容器的时间。然而,无服务器架构可能为开发人员提供更好的可扩展性和灵活性。