FaaS 简介 — 一种云计算服务,使云应用程序开发人员可以更轻松地运行和管理微服务应用程序。

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

FaaS(功能即服务)是一种计算服务,它允许您执行代码以响应事件,而无需通常与构建和启动微服务应用程序相关的复杂基础设施。

在 Internet 上托管软件应用程序通常需要配置和管理虚拟或物理服务器以及管理操作系统和 Web 服务器托管进程。使用 FaaS,物理硬件、虚拟机操作系统和 Web 服务器软件管理都由您的云服务提供商自动处理。这使您可以专注于应用程序代码中的单个功能。

FaaS 与无服务器

无服务器和功能即服务 (FaaS) 通常相互混淆,但事实是 FaaS 实际上是无服务器的一个子集。无服务器专注于任何服务类别,无论是计算、存储、数据库、消息传递、api 网关等,其中服务器的配置、管理和计费对最终用户是不可见的。另一方面,FaaS 虽然可能是无服务器架构中最核心的技术,但专注于事件驱动的计算范式,其中应用程序代码或容器仅在响应事件或请求时运行。

FaaS的好处

如果您希望以经济高效的方式将应用程序迁移到云,那么 FaaS 是一种宝贵的工具。以下是您将享受到的一些好处:

  • 更多地关注代码,而不是基础设施:使用 FaaS,您可以将服务器划分为可以自动和独立扩展的功能,这样您就不必管理基础设施。这使您可以专注于应用程序代码,并可以显着缩短上市时间。
  • 仅在使用时为使用的资源付费:使用 FaaS,您只需在操作发生时付费。当操作完成时,一切都停止了——没有代码运行,没有服务器空闲,没有产生任何成本。因此,FaaS 具有成本效益,特别是对于动态工作负载或计划任务。FaaS 还为高负载场景提供了卓越的总拥有成本。
  • 自动扩展或缩减:借助 FaaS,功能可以根据需要自动、独立且即时地扩展。当需求下降时,FaaS 会自动缩小规模。
  • 获得强大的云基础设施的所有优势: FaaS 提供固有的高可用性,因为它分布在每个地理区域的多个可用区,并且可以在不增加成本的情况下跨任意数量的区域进行部署。

原则和最佳实践

您可以遵循几个最佳实践来使 FaaS 的使用更容易部署和更有效:

  • 使每个功能只执行一个操作: FaaS 功能应该被设计为响应一个事件做一个单一的工作。使您的代码范围受限、高效且轻量级,以便快速加载和执行函数。
  • 不要让函数调用其他函数: FaaS 的价值在于函数的隔离。太多的功能会增加您的成本并消除功能隔离的价值。
  • 在你的函数中使用尽可能少的库:使用太多的库会减慢函数的速度并使它们更难扩展。

用例

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

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

FaaS 还可以显着提高计算性能。例如,两名学生最近与 IBM 工程师合作,探索如何利用 IBM Cloud Functions for Monte Carlo 模拟(用于估计某些难以预测事件的未来结果的数学方法)来估计股票价格。Monte Carlo 模拟被认为是一种重要的高性能计算工作负载。Monte Carlo 和IBM Cloud Functions的组合使团队能够大规模运行计算,并让他们专注于业务逻辑。使用 FaaS,该团队在大约 90 秒内完成了完整的 Monte Carlo 模拟,同时进行了 1,000 次调用。相比之下,在具有四个 CPU 内核的笔记本电脑上运行相同的流程需要 247 分钟,CPU 利用率几乎为 100%。

FaaS 与 PaaS、容器和 VM

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

  • 供应时间:与其他模型的分钟和小时相比,毫秒。
  • 持续管理:无,与 PaaS、容器和 VM 分别从易到难的滑动扩展相比。
  • 弹性缩放:与提供自动但缓慢缩放的其他模型相比,每个动作总是立即和固有地缩放,需要仔细调整自动缩放规则。
  • 容量规划:与需要一些自动扩展和一些容量规划混合的其他模型相比,不需要。
  • 持久连接和状态:持久连接和状态的有限能力必须保留在外部服务/资源中。其他模型可以利用 http,长时间保持打开的套接字或连接,并且可以在调用之间将状态存储在内存中。
  • 维护:所有维护均由 FaaS 提供商管理。PaaS 也是如此;容器和虚拟机需要大量维护,包括更新/管理操作系统、容器镜像、连接等。
  • 高可用性 (HA) 和灾难恢复 (DR)同样,HA 是 FaaS 模型中固有的,无需额外的努力或成本。其他模型需要额外的成本和管理工作。在虚拟机和容器的情况下,基础设施可以自动重启。
  • 资源利用:资源永远不会空闲——它们仅在请求时被调用。所有其他型号至少具有一定程度的空闲容量。
  • 资源限制: FaaS 是唯一对代码大小、并发激活、内存、运行长度等有资源限制的模型。
  • 计费粒度和计费:与其他模型的小时(有时是分钟)相比,每块 100 毫秒。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐