什么是 FaaS

全象云低代码平台提供了 FaaS 函数开发管理模块,Function-as-a-Service(FaaS)即功能服务化,是一种在边缘执行模块化代码的无服务器方式。

FaaS 函数模块允许您动态编写和更新一段代码,用户可以选择执行以响应事件,在该事件中(如:用户单击 web 应用程序中的元素)执行该代码。全象云低代码平台 FaaS 函数开发目前仅支持 go 语言。

名词解释

事件

事件是指系统硬件或软件的状态出现任何改变,系统检测到事件状态变化后,会通过消息队列或事件总线从事件发起者传输给事件使用者,而事件处理平台则会在该通道中以异步(非同时)方式处理事件。事件发生时,需要通知事件使用者。他们可能会处理事件,也可能只是受事件的影响并不进行处理。

例如:您点击一个下载链接进行下载文件,就发起了一个下载事件,下载事件在后台(异步)运行,下载完成后会通知您,您可以决定打开下载文件或者是忽略该下载任务。

Serverless

无服务器是一种云原生开发模型,通过该模型,您可以专注构建和运行所需的应用,无需管理服务器或部署。无服务器方案中仍然会用到服务器,由云服务提供商负责置备、维护和扩展服务器基础架构等例行工作。在无服务器模型中,您只需简单地将代码打包部署。部署之后,无服务器应用即可响应需求,并根据需要自动扩容。公共云提供商的无服务器产品通常按需计量,功能闲置时不会产生费用,只有在应用启动使用时才占用资源进行计费。

例如:您编写好税前税后工资计算函数,并打包上传部署。在没有计算工资的时候,该函数应用并不会产生费用;当在输入一个人工资的时候就启动该函数应用进行计算,计费为计算一个人工资所耗费的资源;在输入一千人工资的时候,启动该函数应用进行计算,计费为计算一千人工资所耗费的资源。

FaaS 架构

从一组模块化组件中构建应用程序的方法称为微服务架构。将应用程序划分为微服务,可以轻松实现代码库中的小段代码。

微服务架构与单体架构形成对比,在单体架构中,所有代码都交织在一个大系统中。对于大型单体系统,即使是对应用程序的微小更改也需要繁重的部署过程。

FaaS 消除了这种部署复杂性。使用 FaaS 无服务器代码,开发人员可以专注于编写应用程序代码,提供商负责服务器分配和后端服务。

简单来说您可以专注一个小功能的开发,而无需考虑后端部署的问题。例如:上线一个税前税后工资结算函数,您只需编写好代码后生成FaaS 函数:输入参数税前工资,函数经过计算后直接输出参数税后工资给用户,开发途中仅需关注工资函数本身,无需考虑服务器与其他后端问题。

FaaS 特性

优点

  • 更多地关注代码:使用 FaaS,研发人员可以更专注于代码上,而无需管理基础设施。
  • 自动扩展或缩减:资源可以根据需要自动、独立且即时地扩展或缩减。
  • 资源利用:资源永远不会空闲,它们仅在请求时被调用。

缺点

  • 复杂性
    • 调试或测试的复杂性增加。
    • 调用的跟踪复杂度增加。
  • 使用 FaaS,后端基础设施的透明度较低

使用场景

普通的 API 接口不能满足您的复杂业务构建时,您可以通过 FaaS 函数服务构建高级函数进行处理,通过编写代码来定义输入参数、输出参数与处理逻辑。构建完成后直接通过全象云系统进行调用,处理复杂场景。使用 FaaS 函数的同时不需担心服务器管理与部署的问题,使所需的 FaaS 函数服务功能即插即用,按需计费。

FaaS 适用于大容量并行工作负载,以及后端系统的创建以及数据处理、编码、格式转换和数据聚合。 Faas可以轻松的实现用户自定的表单请求 API 或者数据处理。也可以异步的处理的工作流事件,如发送邮件、系统通知等。Faas 可以轻松的接入低代码平台,而无需低代码平台做出任何改动。

本页目录:
章节