云原生:什么是 FaaS ?

article/2025/9/5 18:08:05

概述

FaaS,Function as a Service,"功能即服务"(也译作“函数即服务”),是一种在无状态容器中运行的事件驱动型计算执行模型,这些功能将利用服务来管理服务器端逻辑和状态。 

它允许开发人员以功能的形式来构建、运行和管理这些应用包,无需维护自己的基础架构。

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

该平台通常位于云端,但模型正在扩展至包含内部部署和混合部署。

无服务器会对基础架构问题进行抽象处理,例如管理或置备服务器及开发人员的资源分配,并将其提供给平台,这样开发人员就可以专注于编写代码和实现业务价值。

无服务器架构

功能是一个运行业务逻辑的软件。应用可以由许多功能组成。

使用 FaaS 模型是通过无服务器架构来构建应用的方法之一,但随着无服务器模式的日渐普及,开发人员正在寻找支持构建无服务器微服务和无状态容器的解决方案。

以下是 FaaS 的一些常见示例:

AWS Lambda

Google 云功能

Microsoft Azure 功能(开源)

OpenFaaS(开源)

FaaS是如何工作的?

FaaS 为开发人员提供了一种运行应用的抽象方式,可以在无需管理服务器的情况下响应事件。例如,上载文件可触发自定义代码,从而将文件转码为各种格式。

FaaS 基础架构通常是按需计量的,主要通过事件驱动型执行模型进行,因此它会随时待命,但不需要任何服务器进程在后台持续运行(这一点与平台即服务 (PaaS)不同)。

现代 PaaS 解决方案提供了无服务器功能(作为通用工作流的一部分),藉此开发人员可以实现应用的部署,从而模糊了 PaaS 和 FaaS 之间的界线。 

实际上,现代应用将由以下解决方案混合而成:功能、微服务和长期运行的服务。

云提供商会让您的功能处于可用状态并管理资源分配。由于功能是事件驱动而不是资源驱动的,因此它们很容易进行扩展。

为了发挥部分优势,其体系架构会受到一定制约(例如对功能执行施加时间限制),因此需要做到功能的快速启动和运行。 

功能会在毫秒内启动并处理各个请求。如果您的功能有多个同步请求,系统将创建尽可能多的功能副本来满足需求。

当需求下降时,应用会自动减少功能副本的数量。动态扩展是 FaaS 的一项优势,而且颇具成本效益,因为提供商仅对使用的资源收费,而不对空闲时间收费。

在内部运行时,这种动态特性还可以提高平台密度,从而允许运行更多工作负载并优化资源消耗。

需要横向扩展的事件驱动型服务可作为功能和 RESTful 应用进行工作。 

FaaS 非常适合大数据量的交易、经常发生的工作负载,例如报表生成、图像处理或任何计划任务。常见的 FaaS 用例包括数据处理、IoT 服务、移动或 Web 应用。

您可以使用 FaaS 构建完全无服务器化的应用,也可以打造部分无服务器、部分传统微服务组件的应用。

FaaS 的优势

提高开发人员的生产率并缩短开发时间

不负责服务器管理

易于扩展,且横向扩展由平台管理

仅在需要时消耗资源或支付费用

几乎可以用任何编程语言来编写功能

FaaS 和无服务器之间有何区别?

最初,FaaS 和无服务器多多少少具有一定的相似性,但现在,无服务器的含意已扩展至更多的体系架构模式和实践,除了以 FaaS 编码的自定义业务逻辑外,它们还大量使用了通用服务。

微服务甚至传统应用都可以使用无服务器,只要它们可以容器化并且符合动态扩展和状态管理的要求即可。 

"无服务器"一词也用于表示托管服务(例如数据库和消息传递系统)- 由于系统由云提供商或第三方公司管理,因此无需开发人员或管理员来操作系统。  

小结

FaaS 与主要通过事件驱动型体系架构连接的通用后端服务(如数据库、消息传递和身份验证)相结合,可为无服务器开发人员带来最大的收益。


专注分享 Java、 Kotlin、Spring/Spring Boot、MySQL、redis、neo4j、NoSQL、Android、JavaScript、React、Node、函数式编程、编程思想、"高可用,高性能,高实时"大型分布式系统架构设计主题。


http://chatgpt.dhexx.cn/article/w8THtMFc.shtml

相关文章

【AI FaaS:NLaaS 自然语言即服务】设计一个自然语言生成 SQL 查询语句的 AI Faas API 系统

设计一个AI Faas API 系统,支持自然语言生成SQL,并查询数据源数据返回表数据。同时,支持API开发完成即可线上使用。给我详细系统设计说明和完整的Golang代码,解释说明。5000字以上。 文章目录 【AI FaaS:NLaaS 自然语言即服务】设计一个自然语言生成 SQL 查询语句的 AI Faa…

Serverless 是什么?BaaS 和 FaaS 是什么?

前言 本文隶属于专栏《大数据理论体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见大数据理论体系 概览 Serverless 是一个云原生开发模型,…

FatFs

FatFs FatFS是一个为小型嵌入式系统设计的通用FAT(File Allocation Table)文件系统模块。FatFs 的编写遵循ANSI C,并且完全与磁盘I/O层分开。因此,它独立(不依赖)于硬件架构。它可以被嵌入到低成本的微控制器中,如AVR, 8051, PIC, ARM, Z80…

【云计算】XaaS最全介绍(按24字母合集):AaaS、BaaS、CaaS、DaaS、EaaS、FaaS、GaaS、HaaS、IDaaS…

IT行业创造了XaaS,即“一切即服务”: “X as a service”、“anything as a service”或“everything as a service” 。 其本质就是服务理念,未曾止步于SPI(SaaS、PaaS、IaaS(传统就这三个))模…

Faas,又一个未来?

经同事独家授权,原创发表此文 作者说明: 苗立尧 易宝支付运维工程师,热爱Kubernetes,对容器生态圈具有浓厚兴趣 个人公众号:容器时代 前言 云计算时代出现了大量XaaS形式的概念,从IaaS、PaaS、SaaS到容器云引领的Ca…

IaaS、PaaS、SaaS、BaaS和FaaS, 这些区别你真的了解吗?

IaaS、PaaS、SaaS、BaaS、FaaS,这些名词后面都带着aas三个字母,aas 是 As-a-Service,即为服务的意思。我们看下面这个架构图: IaaS、PaaS、SaaS 云平台一般都会提供以上架构图中的三种云服务 IaaS:Infrastructure as…

FaaS介绍

FaaS介绍 云计算技术的核心是服务化,服务化就需要提供闭环和灵活的服务。而云计算也在持续发展中,从最初的基础设施服务化(IaaS),平台服务化(PaaS),软件服务化(SaaS)&…

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

功能即服务(或称为 FaaS)是一种云计算服务,它允许开发人员以功能的形式来构建、计算、运行和管理这些应用包,无需维护自己的基础架构。 FaaS 是一种在无状态容器中运行的事件驱动型执行模型,这些功能将利用 FaaS 提供商…

计算机预览不到桌面,电脑文件夹的文件预览显示没有预览怎么办?

有可能是更改了查看方式造成的。解决的方法很简单: 打开存放照片的文件夹,在空白处点击右键,可以看到弹出的对话框中总共有9个选项,分别是:超大图标、大图标、中等图标、小图标、列表、详细信息、平铺、内容和隐藏文件…

KKFileView(十一)——文件预览

2021SCSDUSC 上篇文章提到文件预览工厂以及实现具体文件预览功能的类,这篇报告着重于各个文件预览流程 一、文本文件预览 之前的报告中有提到DownloadUtils工具类,该类通过输入文件描述和文件名得到文件的真实路径,如果失败的话也会返回信息…

基于开源项目kkFileView打造文件预览

1、需求 一般管理系统都有文件上传功能,基于此一般会诞生一个需求:用户需要在线预览自己上传的文件。需求很合理,但是没那么好做,原因在于浏览器默认支持图片、pdf等少量格式预览,而实际情况是你并不能要求用户只上传…

nginx配置简单文件预览

1.目的 预览图片、pdf、txt 2.配置 #搭建文件预览 server { listen 8888; server_name preview.xxx.com; location ^~ /preview/ { alias D:/data/; #不同OS键入对应path即可 if ($request_filename ~* ^.*?\.(html|doc|…

React封装文件预览组件

封装文件预览组件的时候,预览的文件地址要么是本地文件地址或者是接口返回的文件地址。 这里需要引入两个第三方库,分别是react-file-viewer和react-pdf-js。 其中react-file-viewer可以支持的文件: 虽然它能预览PDF格式的文件,但是为了方便对PDF格式文件预览的控制,比…

vue实现文件预览

1、可以预览图片、文档、视频等,视频需要安装视频预览插件:cnpm install --save video.js 2、代码: <!-- @format --><template><div><!--图片--><div v-if="imgShow"><img :src="downloadUrl" /></div>&l…

如何在vue中实现文件预览功能

文件流 如何将各种文件的文件流(blob)转化为线上可以直接预览的数据&#xff0c;这里简单介绍四种不同类型的文件预览。分别是pdf&#xff0c;docx&#xff0c;xlsx&#xff0c;jpg/png/jpeg等。有一个事情是需要重点注意的&#xff0c;文件流必须保证能够被正常下载解析后才可…

uniAPP手机端文件预览

前言 最近基于uniAPP的app遇到了个需求&#xff0c;需要文件预览。其实官方已经提供了这个解决方案 uni.downloadFile(OBJECT) uni.openDocument(OBJECT) 基于上面这两个API可以实现文件预览。本质上是先将文件下载到本地&#xff0c;然后调用手机内的其他app来打开你要预览…

文件预览:Markdown文件预览

文件预览系列&#xff1a; mavon-editor预览Markdown文件 xlsx预览excel文件 一、安装插件&#xff1a;mavon-editor npm i mavon-editor --save 二、在主文件中引入&#xff0c;并注册 import mavonEditor from mavon-editor; import mavon-editor/dist/css/index.css; /…

kkFileView安装及使用——文件预览解决方案

目录 一、前言二、kkFileView介绍三、kkFileView安装四、kkFileView的配置和使用 一、前言 网页端一般会遇到各种文件&#xff0c;比如&#xff1a;txt、doc、docx、pdf、xml、xls、xlsx、ppt、pptx、zip、png、jpg等等。 有时候我们不想要把文件下载下来&#xff0c;而是想在…

基于若依前后端分离版(Springboot+Vue)的文件预览

主要介绍两种方式实现文件预览的方式&#xff0c;一种是通过前端插件匹配不同的文件&#xff0c;另一种就是使用已经完善的文件预览系统。我更推荐使用第二种方式&#xff0c;因为这样会少去很多工作量。本文主要介绍第一种方式&#xff0c;第二种方式会出现在另外一篇文章中。…

Java中如何实现文件预览的功能

文件预览方法总结 前言一、kkfileview 文件在线预览二、officetohtml纯前端的方式三、JODConverter四、Aspose总结 前言 日常开发中常见的文件格式有pdf&#xff0c;word&#xff0c;Excel&#xff0c;PPT&#xff0c;Html&#xff0c;txt&#xff0c;图片等。pdf&#xff0c;…