无服务器和功能即服务 (FaaS) 经常被混为一谈,但事实是 FaaS 实际上是无服务器的子集。
无服务器专注于所有服务类别,无论是计算、存储、数据库、消息传递还是 API 网关等。其中服务器的配置、管理和计费对最终用户不可见。
另一方面,FaaS 可能是无服务器架构中最核心的技术,它专注于事件驱动的计算范式,即应用代码或容器仅在响应事件或请求时运行。
如果您希望高效、低成本地将应用程序迁移到云中,那么 FaaS 就是一个非常有价值的工具。以下是您将享受到的一些好处:
您可以遵循多种最佳实践,使 FaaS 的使用更易于部署且更有效:
由于 FaaS 能够轻松隔离和扩展事务,因此它非常适合大容量和高度并行的工作负载。它还可用于创建后端系统或用于数据处理、格式转换、编码或数据聚合等活动。
FaaS 也是 Web 应用程序、后端、数据/流处理或创建在线聊天机器人或物联网设备后端的良好工具。FaaS 可以帮助您管理和使用第三方服务。例如,如果您正在考虑开发 Android 应用程序,则可以采用 FaaS 方法来控制成本。由于仅当您的应用程序连接到云以执行批处理等特定功能时才需要付费,因此成本可能比使用传统方法低得多。
FaaS 还能显著提高计算性能。例如,两名学生最近与 IBM 工程师合作,探索如何利用 IBM Cloud Functions 进行蒙特卡洛模拟(一种数学方法,用于估计某些难以预测事件的未来结果),以估计股票价格。蒙特卡洛模拟被认为是重要的高性能计算工作负载。Monte Carlo 和 IBM Cloud Functions 的结合使团队能够大规模运行计算,并使他们能够专注于业务逻辑。使用 FaaS,该团队在大约 90 秒内完成了整个蒙特卡洛模拟,并有 1,000 个并行调用。相比之下,在具有四个 CPU 核心的笔记本电脑上运行相同的流程需要 247 分钟,并且 CPU 利用率几乎为 100%。
要查看 FaaS 用例的更多示例,请查看“IBM Cloud Functions 提供的主要优势概述”。
FaaS、PaaS(平台即服务)、容器和虚拟机 (VM) 都在无服务器生态系统中发挥着至关重要的作用。由于 FaaS 是无服务器堆栈中最核心、最具定义性的元素,因此有必要探讨 FaaS 与当今市场上其他常见计算模型在关键属性方面的不同之处:
Kubernetes 和 Knative 是 FaaS 背后“管道”的一种实现。Kubernetes 是一款开源的容器编排工具,对于云应用程序的管理至关重要。Knative 允许您在 Kubernetes 集群中运行无服务器。
Knative 和 Kubernetes 的结合意味着您可以利用 Kubernetes 功能(例如监控、安全性、日志记录和身份验证),并将它们与 Knative 的优势(例如自动化容器构建、完全可移植性和跨混合环境工作)相结合。
该技术的创建者认为,开发人员在构建云应用程序时不必在无服务器和容器之间进行选择。目标是通过无服务器的强大扩展和按需访问来增强容器的可用性和一致性。
观看视频,了解有关 Knative 的更多信息: