什么是平台即服务 (PaaS)?

平台即服务 (PaaS) 供应商提供基于云的平台,用于构建和运行应用程序。

学习目标

阅读本文后,您将能够:

  • 定义 PaaS
  • 探索 PaaS 的优点和缺点
  • 比较 PaaS 和无服务器计算

复制文章链接

什么是平台即服务 (PaaS)?

在平台即服务 (PaaS) 模型中,开发人员租赁云提供商提供的开发工具、基础设施和操作系统来构建应用程序所需的一切。PaaS 是云计算的三种服务模型之一。PaaS 极大地简化了 Web 应用程序的开发工作;从开发人员的角度来看,所有后端管理都在后台进行。尽管 PaaS 与无服务器计算有一些相似之处,但是它们之间有许多关键差异。

云计算的主要服务模型有哪些?

SaaS、PaaS 和 IaaS 服务模式

云计算的三种模型是 PaaS、SaaS(软件即服务)IaaS(基础架构即服务)。IaaS 是指由云供应商管理的云计算基础架构(服务器、存储等),而 SaaS 是指托管在云中并由 SaaS 供应商维护的完整应用程序。如果 SaaS 客户就像租房子,那么 PaaS 客户就像租用快速建房所需的所有重型设备和电动工具,而这些设备和工具由所有者持续维护和修理。

PaaS 与内部托管的开发环境相比如何?

PaaS 可以通过任何 Internet 连接进行访问,因此可用于在 Web 浏览器中构建整个应用程序。由于开发环境不是本地托管的,因此开发人员可以在世界任何地方使用该应用程序。这使分散在不同地理位置的团队可以进行协作。这也意味着开发人员对开发环境的控制较少,但这样做的开销要少得多。

PaaS 包含什么?

PaaS 供应商提供的主要产品包括:

  • 开发工具
  • 中间件
  • 操作系统
  • 数据库管理
  • 基础设施

不同的供应商也可能包括其他服务,但这是 PaaS 的核心服务。

开发工具

PaaS 供应商提供软件开发所需的各种工具,包括源代码编辑器、调试器、编译器和其他必不可少的工具。这些工具可以作为框架一起提供。所提供的特定工具将取决于供应商,但是 PaaS 的产品应包括开发人员构建应用程序所需的一切。

中间件

作为服务提供的平台通常包括中间件,以便开发人员无需自行构建。中间件是位于面向用户的应用程序和计算机操作系统之间的软件。例如,中间件使软件可以访问键盘和鼠标的输入。中间件是运行应用程序所必需的,但最终用户不会与之交互。

操作系统

PaaS 供应商将提供并维护供开发人员使用并运行应用程序的操作系统。

数据库

PaaS 提供商管理和维护数据库。他们通常还将为开发人员提供数据库管理系统。

基础设施

PaaS 是云计算服务模型中 IaaS 的上一层,并且 IaaS 中包含的所有内容也都包含在 PaaS 中。PaaS 提供商可以管理服务器、存储和物理数据中心,也可以从 IaaS 提供商处购买。

SaaS、PaaS、IaaS 和云是一个金字塔

开发人员为何使用 PaaS?

加快上市时间

使用 PaaS 构建应用程序,速度比开发人员构建、配置和调配自有平台和后端基础设施后再构建应用程序的速度更快。使用 PaaS,他们只需要编写代码并测试应用程序,然后其余的交由供应商处理。

全程仅需一个环境

PaaS 允许开发人员在同一环境中构建、测试、调试、部署、托管和更新应用程序。这使开发人员得以确保 Web 应用程序在发布之前可以正常运行,并且这也可以简化应用程序开发生命周期。

价格

在许多情况下,利用 PaaS 比利用 IaaS 更具成本效益。因为 PaaS 客户不需要管理和配置虚拟机,可以减少开销。此外,某些提供商采用按需付费的定价结构,卖方仅对应用程序使用的计算资源收费,这样通常可以为客户省钱。但是,每个供应商的定价结构略有不同,某些平台提供商每月收取固定费用。

轻松获取许可

PaaS 提供商处理操作系统、开发工具以及其平台中包含的所有其他内容的所有许可。

使用 PaaS 的潜在缺点是什么?

供应商绑定

转换 PaaS 提供商可能会变得困难,因为应用程序是使用特定供应商的工具(特别是平台)构建的。每个供应商可能有不同的体系结构要求。不同的供应商可能支持用于构建和运行应用程序的不同语言、库、API、体系结构或操作系统。要转换供应商,开发人员可能需要重建或大幅度更改应用程序。

供应商依赖性

更换 PaaS 供应商将需要大量工作和资源,这可能使公司更加依赖当前供应商。供应商内部流程或基础设施即便出现微小变化,都可能会对旨在在旧配置上高效运行的应用程序的性能产生巨大影响。此外,如果供应商更改其定价模型,则应用程序的运行成本可能突然变得更昂贵。

安全和合规挑战

在 PaaS 架构中,外部供应商将存储应用程序的大部分或全部数据,并托管其代码。在某些情况下,卖方可能实际上是通过另一个第三方(即 IaaS 提供商)存储数据库的。大多数 PaaS 供应商都是拥有强大安全措施的大型公司,但这却使得很难全面评估和测试保护应用程序及其数据的安全措施。此外,对于必须遵守严格数据安全法规的公司,验证其他外部供应商的法规遵从性将为上市增加更多障碍。

平台即服务与无服务器计算有何不同?

PaaS 和无服务器计算的相似之处在于,开发人员只需编写和上传代码,供应商将处理所有后端流程。但是,使用两个模式的扩展比例有很大差距。使用无服务器计算或 FaaS 构建的应用程序将自动扩展,而 PaaS 应用程序不会自动扩展,除非进行编程。启动时间也相差很大。无服务器应用程序几乎可以立即启动并运行,但 PaaS 应用程序更像传统应用程序,必须在大多数时间或所有时间运行,才能立即对用户可用。

另一个区别是无服务器供应商不像 PaaS 供应商那样提供开发工具或框架。最后,两种模式的定价也大相径庭。PaaS 计费的准确性远不如无服务器计算,后者的计费细化到每个函数实例运行的秒数或几分之一秒。