概述

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://www.taodudu.cc/news/show-3645015.html

相关文章:

  • 通过一个案例,理解FaaS的运行逻辑
  • FaaS 的简单实践
  • 简单介绍一下Serverless和Faas
  • 大淘宝技术行业FaaS化实战经验分享
  • 阿里云 FaaS 架构设计
  • 深入理解无服务器架构(Faas/Serverless)
  • faas函数使用
  • Faas
  • IaaS、PaaS、SaaS、BaaS和FaaS, 这些区别你真的了解吗?
  • 什么是功能即服务(FaaS)?
  • Jsonp实现跨域原理
  • manjaro 安装aur
  • manjaro安装goland
  • manjaro安装Microsoft Edge浏览器
  • Manjaro 安装wps
  • manjaro安装微信命令
  • Manjaro安装nagix
  • manjaro安装deb软件包
  • Manjaro安装mongodb
  • Manjaro 安装 deb 软件包
  • manjaro 安装mysql_manjaro 安装记录
  • manjaro安装python_manjaro安装及基本配置
  • Manjaro 安装以后的配置
  • manjaro安装mysql
  • manjaro 安装mysql_Manjaro安装Mariadb
  • manjaro安装相关
  • Manjaro安装idea
  • manjaro安装python_Manjaro 安装配置
  • manjaro安装vmware
  • manjaro安装php,manjaro 安装后设置

云原生:什么是 FaaS ?相关推荐

  1. 云原生爱好者周刊:野心很大的云原生数据库 SurrealDB

    开源项目推荐 SurrealDB SurrealDB 是一个开源的端到端云原生数据库,同时支持 Table.Document 和 Graph 等多种数据模型,对外提供 SurrealQL.GraphQ ...

  2. 硬核科普:到底啥是云原生?

    本文主要根据课程 什么是云原生?_哔哩哔哩_bilibili 总结而来,其他参考文章如下: <云原生人才计划之Kubernetes 技术图谱>发布! - 知乎 (zhihu.com) ku ...

  3. 一键部署dns服务_OpenShift : 通往云原生、DevOps、微服务和Serverless的大门

    新书速递 查尔斯·狄更斯的<双城记>中有句耳熟能详的名言:"这是一个最好的时代,也是一个最坏的时代."作为技术从业者,在这个数字化浪潮和技术变革接连发生的时代,我对这句 ...

  4. 微博云原生技术的思考与实践

    来自:刘超的通俗云计算 本文由新浪微博架构师陈飞撰写,因见解深刻,故在此转载 现在越来越多的企业开始全面拥抱云计算,开始关注云原生技术.从管理物理数据中心到使用云主机,我们不用再关心基础运维.从云主机 ...

  5. 从MegaEase看云原生

    MegaEase是左耳朵耗子创办的公司,一家帮助企业上云.企业数字化的公司.其产品主要围绕于CloudNative方向,希望通过CloudNative方式帮助企业解决业务需求变化迅速.支持大规模在线. ...

  6. 云计算与云原生技术系列文章

    目录 文章目录 目录 云计算 云原生 云原生思想 容器技术 Docker containerd Kata Container APIGW ETCD 服务治理 - Service Mesh FaaS O ...

  7. 闲鱼靠什么支撑起万亿的交易规模?| 云原生Talk

    造梦者 | 王树彬,阿里巴巴闲鱼架构负责人 2014年6月28日,阿里即将赴美上市的这一年,西溪园区的一个茶水间里,28个人日夜赶工了三个月后,上线了一个闲置交易平台--闲鱼.今年5月份,在阿里巴巴的 ...

  8. CNCF 官方大使张磊:什么是云原生?

    作者|张磊 阿里云容器平台高级技术专家,CNCF 官方大使 编者说: 从 2015 年 Google 牵头成立 CNCF 以来,云原生技术开始进入公众的视线并取得快速的发展,到 2018 年包括 Go ...

  9. 无缝融入 Kubernetes 生态 | 云原生网关支持 Ingress 资源

    Kubernetes Ingress 介绍 通常情况下,Kubernetes 集群内的网络环境与外部是隔离的,也就是说 Kubernetes 集群外部的客户端无法直接访问到集群内部的服务,这属于不同网 ...

  10. 企业深入使用微服务后会面临哪些问题?云原生全链路灰度给了新思路

    作者:魁予.十眠 如何落地可灰度.可观测.可回滚的安全生产三板斧能力,满足业务高速发展情况下快速迭代和小心验证的诉求,是企业在微服务化深入过程中必须要面对的问题.在云原生流行的当下,这个问题又有了一些 ...

最新文章

  1. HMM——维特比算法(Viterbi algorithm)
  2. C#基础知识整理:基础知识(10) 静态
  3. 实验6      VRRP网关备份(下)
  4. linux 协议栈 位置,[置顶] Linux协议栈代码阅读笔记(一)
  5. 《Linux命令行与shell脚本编程大全》第十五章 呈现数据
  6. 深度搜索问题c语言,C语言实现的图的深度搜索与广度搜索程序.doc
  7. sunday java_Sunday算法:最快的字符串匹配算法
  8. Android 多进程开发
  9. php 怎么输出alert,php简单提示框alert封装函数
  10. 小扎展示Facebook十年产品路线图,跳票的智能音箱又有新爆料
  11. 付费圈子来了,去还是不去?
  12. 【原】涉及数据库的单元测试-JTeser
  13. 字体大宝库:40款为网页设计师准备的时尚字体【上篇】
  14. 三极管与场效应管之导通与截止说明
  15. 蓝桥杯嵌入式快速入门
  16. 漫谈Anchor-based和Anchor-Free
  17. matlab中inf怎么判断,MATLAB中Inf或inf表示()、NaN或nan表示()、nargout表示()。
  18. 【数据库】数据库绪论,你都会了吗
  19. 云计算概念 IaaS PaaS SaaS
  20. MyBatis中的日志(LOG4J)

热门文章

  1. linux查看端口号占用命令-netstat
  2. html网页制作期末大作业成品:基于HTML+CSS+JavaScript简洁汽车网站(7页)
  3. 乐观锁?悲观锁? 这篇文章告诉你该怎么选择
  4. bwa和bowtie2使用方法
  5. xml文件导入wps_WPS表格怎么导入XML数据?:excel能打开wps表格吗
  6. 面试 什么场景应该拆分系统,什么场景应该合并系统
  7. mac php_gd,Mac 配置php -gd
  8. windows 2012 自动更新失败:8024200D
  9. matlab 避雷针保护范围程序,基于MATLAB避雷针保护范围可视化设计与分析.doc
  10. Rime——最好的输入法