什么是功能即服务 (FaaS)?

穿过美国纽约曼哈顿中城的第六大道

什么是 FaaS?

功能即服务 (FaaS) 是一种云计算服务,支持客户运行代码以响应事件,而无需管理通常与构建和启动微服务应用程序相关的复杂基础设施。

在互联网上托管软件应用程序通常需要配置和管理虚拟服务器或物理服务器,并管理操作系统和网络服务器托管流程。通过 FaaS,物理硬件、虚拟机操作系统和 Web 服务器软件管理都由云服务提供商自动处理。此特性让开发人员可以只关注应用程序代码中的各个功能。

高速公路鸟瞰图

在云端保持清醒头脑 


获取每周 Think 时事通讯,了解有关在 AI 时代优化多云设置的专家指导。

FaaS 与无服务器技术的对比

无服务器和功能即服务 (FaaS) 经常被混为一谈,但事实是 FaaS 实际上是无服务器的子集。

无服务器专注于任何服务类别,无论是计算、存储、数据库、消息传递还是 API 网关,这些服务器的配置、管理和计费对用户不可见。

然而,FaaS 可能是无服务器架构中最关键的技术之一,它专注于事件驱动的计算模式,即应用程序代码或容器仅在响应事件或请求时运行。

AI 学院

利用混合云实现 AI 就绪

本课程由 IBM 资深思想领袖带领,旨在帮助企业领导者获得所需的知识,以便划分可以推动增长的 AI 投资的优先级。

FaaS 的好处

FaaS 是高效、经济地将应用程序迁移到云的非常有价值的工具。以下列出了更多优势:

  • 更多地关注代码,而不是基础设施:借助 FaaS,可以将服务器划分为可自动且独立扩展的功能,因此,无需管理基础设施。利用此功能,可以专注于应用程序代码,并可以大大缩短上市时间。

  • 只需为使用的资源付费:使用 FaaS,只需在发生操作时付费。当操作完成后,一切都会停止,没有代码运行,没有服务器空闲,也不会产生任何成本。因此,FaaS 具有成本效益,特别是对于动态工作负载或计划性任务。FaaS 还能为高负载场景提供出色的总体拥有成本。

  • 自动扩展或缩减:通过 FaaS,可以根据需要自动、独立、及时地扩展功能。当需求下降时,FaaS 会自动缩减功能。

  • 获得强大的云基础设施的所有优势:FaaS 提供固有的高可用性,因为它分布在每个地理区域的多个可用区,而且可以在任意数量的区域内部署,无需增加成本。

FaaS 原则和最佳实践

您可以遵循多种最佳实践,让 FaaS 的使用更加容易部署和更有效:

  • 让每个功能仅执行一项操作:FaaS 功能应设计为针对事件执行单项工作。使您的代码范围有限、高效且轻量级,以便功能快速加载和执行。

  • 禁止一个功能调用其他功能:FaaS 的价值在于隔离功能。太多功能会增加成本并消除功能隔离的价值。

  • 在功能中使用尽可能少的库:使用太多库会减慢功能速度,使其难以扩展。

FaaS 用例

由于 FaaS 能够轻松隔离和扩展事务,因此非常适合大容量和高度并行的工作负载。它还可用于创建后端系统或用于数据处理、格式转换、编码或数据聚合等活动。

FaaS 也是适用于 Web 应用程序、后端、数据或流处理以及创建在线聊天机器人或物联网设备后端的好用工具。FaaS 可以帮助企业管理和使用第三方服务。例如,如果企业正在考虑开发 Android 应用程序,则可以采用 FaaS 方法来控制成本。由于仅当应用程序连接到云以执行批处理等特定功能时才需要付费,因此,成本可能比使用传统方法低得多。

FaaS 还能显著提高计算性能。例如,两名学生最近与 IBM 工程师合作,探讨如何利用 IBM Cloud Functions 进行蒙特卡洛模拟(一种数学方法,用于估计某些难以预测事件的未来结果),以估计股票价格。蒙特卡洛模拟被认为是重要的高性能计算工作负载。

蒙特卡洛模拟和 IBM Cloud Functions 的结合使团队能够运行大规模计算,并使他们能够专注于业务逻辑。使用 FaaS,该团队在大约 90 秒内完成了整个蒙特卡洛模拟,并有 1,000 个并行调用。相比之下,在具有四个 CPU 核心的笔记本电脑上运行相同的流程需要 247 分钟,并且 CPU 利用率几乎为 100%。

FaaS 与 PaaS、容器和 VM 的对比

FaaS、PaaS(平台即服务)容器虚拟机 (VM) 在无服务器生态系统中都发挥着至关重要的作用。由于 FaaS 是无服务器堆栈中最核心、最具定义性的元素,因此有必要探讨 FaaS 与当今市场上其他常见计算模型在关键属性方面的不同之处:

  • 配置时间:毫秒,而其他模型则为分钟和小时。

  • 持续管理:无,相比之下,PaaS、容器和虚拟机的难度从易到难。

  • 弹性伸缩:与其他模型相比,每个操作可即时执行固有伸缩,而其他模型则提供自动但速度较慢的伸缩,需要对自动伸缩规则进行仔细调整。

  • 容量规划:与需要混合使用一些自动伸缩和一些容量规划的其他模型相比,不需要进行容量规划。

  • 持久连接和状态:持久连接和状态的能力有限,必须保留在外部服务或资源中。其他模型可以使用 http,长时间保持打开的套接字或连接,并在两次调用之间将状态存储在内存中。

  • 维护:FaaS 提供商负责管理所有维护工作。对于 PaaS 来说也是如此。容器和虚拟机需要大量维护工作,包括更新和管理操作系统、容器映像、连接等。

  • 高可用性 (HA) 和灾难恢复 (DR)同样,HA 是 FaaS 模型的固有特征,无需额外的工作或成本。其他模型需要更多的成本和管理工作。对于虚拟机和容器来说,基础设施都可以自动重启。

  • 资源利用:资源不会闲置,只在请求时才被调用。所有其他模型都或多或少地存在容量空闲情况。

  • 资源限制:FaaS 是唯一在代码大小、并发激活、内存、运行时长等方面有资源限制的模型。

  • 收费精细粒度和计费方式:每块 100 毫秒,而其他模型则按小时(有时甚至是分钟)计费。

Kubernetes/Knative 和 FaaS

Kubernetes 和 Knative 是 FaaS 背后的“管道”的一种实施方式。Kubernetes 是一款开源的容器编排工具,对于云应用程序的管理至关重要。利用 Knative,可在 Kubernetes 集群中以无服务器方式运行。

Knative 和 Kubernetes 的结合意味着您可以利用 Kubernetes 功能(例如监控、安全性、日志记录和身份验证),并将其与 Knative 的优势(例如自动化容器构建、完全可移植性和跨混合环境工作)相结合。

该技术的创建者认为,开发人员在构建云应用程序时不必在无服务器和容器之间进行选择。目标是通过无服务器的强大扩展和按需访问功能来增强容器的可用性和一致性。

相关解决方案
IBM Cloud Virtual Server for VPC

IBM Cloud Virtual Server for VPC 是基于 IBM Cloud Virtual Private Cloud 构建的 Intel x86、IBM Z 和 IBM LinuxONE 虚拟服务器系列。

深入了解 Cloud Virtual Server
Cloud Web 托管

IBM Cloud 专用服务器提供可扩展的 Web 托管解决方案,具有无限的免费回程流量和广泛的自定义选项。

深入了解 Web 托管解决方案
云咨询服务

利用 IBM 的云咨询服务发掘新功能并提升业务敏捷性。了解如何通过混合云战略和专家合作共同制定解决方案、加快数字化转型并优化性能。

云服务
采取后续步骤

利用 IBM Cloud 安全可靠的 Web 托管解决方案,增强您的网络影响力。从高流量网站到企业应用程序,IBM Cloud Bare Metal Servers 可根据您的托管需求量身定制,提供灵活的选择、无限数据传输和全球覆盖。

深入了解 IBM Cloud Web 托管 创建免费 IBM Cloud 帐户