跳转到节

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

复制URL

功能即服务(Function-as-a-Service,简称FaaS)是一种云计算服务,允许开发人员将应用程序包作为功能进行构建、计算、运行和管理,而无需维护自己的基础设施。

FaaS是一种事件驱动的执行模型,运行在无状态容器中,这些函数通过使用FaaS提供程序的服务来管理服务器端逻辑和状态。

FaaS解决方案可在主要公共云上使用,并可在本地提供,为企业IT应用程序开发添加了重要的新功能。获取云计算战略指南,准备使用FaaS实现无服务器方法。

FaaS的一些常见示例包括:

  • IBM云功能
  • 亚马逊AWS Lambda
  • 谷歌云功能
  • Microsoft Azure函数(开源)
  • OpenFaaS(开源)

FaaS是一种实现无服务器计算其中,开发人员编写业务逻辑,然后在完全由平台管理的Linux容器中执行。

虽然通常是一个使用云计算服务的云计算平台,但该模型正在扩展,包括本地部署和混合部署。

无服务器抽象了基础架构关注点,如管理或供应服务器以及开发人员的资源分配,并将其提供给平台(如红帽OpenShift(OpenShift)),这样开发人员可以专注于编写代码和交付业务价值。

函数是在操作系统上运行业务逻辑的软件。应用程序可以由许多函数组成。

使用FaaS模型是构建具有无服务器架构的应用程序的一种方法,但随着无服务器范式的普及,开发人员正在寻找支持构建无服务器微服务和无状态容器的解决方案。

FaaS为开发人员提供了一种抽象,可以在不管理服务器的情况下运行web应用程序以响应事件。例如,上传文件可能会触发将文件转换为各种格式的自定义代码。

FaaS基础设施通常由服务提供商按需计量,主要通过事件驱动执行模型,所以当您需要时它就在那里,但它不需要任何服务器进程在后台持续运行,比如平台即服务(PaaS)会。 

现代PaaS解决方案提供了无服务器功能,作为开发人员可用于部署应用程序的通用工作流的一部分,模糊了PaaS和FaaS之间的界限。 

实际上,整个应用程序将由这些解决方案的组合组成:功能、微服务和长期运行的服务

提供者通过应用程序编程接口(API)并管理资源分配。因为函数是事件驱动的,而不是资源驱动的,所以它们很容易扩展,并且可扩展性允许提高效率和价值。

为了实现其中的一些好处,存在一些架构约束,比如函数执行的时间限制,因此函数需要能够快速启动和运行。 

函数在毫秒内启动并处理单个请求。如果同时有多个函数请求,则系统将根据需要创建尽可能多的函数副本以满足需求。

当需求下降时,应用程序会自动缩小规模。动态扩展是FaaS的一个优点,也是一种成本效益,因为提供商只对使用的资源收费,而不是对空闲时间收费。

在本地运行时,这种动态特性还可以增加您的平台密度,允许运行更多工作负载并优化资源消耗和功能。

需要水平扩展的事件驱动服务可以作为一个功能很好地工作RESTful应用程序

FaaS适用于偶尔发生的大容量事务和工作负载,如生成报告、图像处理或任何计划任务。常见的FaaS用例包括数据处理、物联网服务以及移动或web应用程序。

您可以使用FaaS构建一个完全无服务器的应用程序,或者包括一个部分无服务器和部分传统微服务组件的应用程序,以利用更新的技术和容器编排系统,如库伯内特斯

  • 提高了开发人员的生产效率,缩短了开发时间
  • 不负责服务器管理
  • 易于扩展,水平扩展由平台管理
  • 仅在必要和需要时支付或消耗资源
  • 函数几乎可以用任何编程语言编写

最初,FaaS和serverless或多或少意味着同一件事,但serverless已经扩展为一组更大的体系结构模式和实践,除了FaaS中编码的自定义业务逻辑外,还广泛使用公共服务。

无服务器可由使用微型服务甚至是传统的应用程序,只要它们可以被容器化并遵守动态规模和状态管理要求。 

术语“无服务器”也用于表示托管服务,如数据库和消息传递系统,在这些服务中,由于系统由云提供商或第三方公司管理,因此不需要开发人员或管理员来操作系统。 

FaaS与主要通过事件驱动体系结构连接的通用后端服务(如数据库、消息传递和身份验证)的结合为无服务器开发人员提供了最佳好处。

继续阅读

第条

有状态与无状态

某个东西是有状态的还是无状态的取决于记录与它的交互状态的时间以及该信息需要如何存储。

第条

什么是Quarkus?

Quarkus是一个Kubernetes-native Java堆栈,用于Java虚拟机(JVM)和本地编译,专门为容器优化Java。

第条

什么是无服务器?

Serverless是一种云计算开发模型,允许开发人员构建和运行应用程序,而无需管理服务器。

关于AWS上Red Hat OpenShift服务的更多信息

产品

Amazon Web Services(AWS)徽标上的Red Hat OpenShift

本机AWS环境中完全管理的交钥匙应用程序平台。

一个企业应用程序平台,具有一套统一的测试服务,可根据您选择的基础设施将应用程序推向市场。

资源

演练

查看访问新创建的ROSA集群的控制台中的外观

学习中心

按顶级任务组织的材料和工具

电子书

使用AWS上的Red Hat OpenShift服务转换应用程序

培训

免费培训课程

AWS上的Red Hat OpenShift服务简介(ROSA)