云平台系列:What is Serverless (FaaS、BaaS)

文章目录

  • 前言
  • IaaS 与 PaaS 和SaaS
    • IaaS(基础设施即服务)
    • PaaS(平台即服务)
    • SaaS(软件即服务)
    • 聊聊 IaaS
  • What is Serverless?
    • FaaS(函数即服务)
      • 执行
      • 适应场景
    • BaaS(后端即服务)
      • 执行
      • 适应场景
    • FaaS vs BaaS 区别
      • 关注点
      • 任务类型
      • 执行时长
      • 使用场景
    • 优缺点
      • 优点
      • 缺点
  • 总结
  • 个人简介

前言

  • 哈喽,大家好,我是 Lorin,随着云平台的发展,Serverless 成为一个备注关注的话题,这一架构模型为开发人员提供了更简单、更灵活的方式来构建和部署应用程序,而无需过多关注底层基础设施的管理。本文将介绍什么是 Serverless,以及为什么它在现代应用开发中变得如此重要。

IaaS 与 PaaS 和SaaS

  • 在 Serverless 兴起之前,IaaS(基础设施即服务)、PaaS(平台即服务)和SaaS(软件即服务)是云平台中三种常见的服务模型。

IaaS 与 PaaS 和SaaS

IaaS(基础设施即服务)

  • 概念: IaaS 提供的是云计算基础设施,包括计算资源(虚拟机、存储、网络等)。
  • 特点: 用户可以通过虚拟化的资源来部署和运行操作系统、应用程序和服务。用户对基础设施有更多的控制权,但需要自行负责操作系统和应用程序的管理。
  • 例子: AWS EC2(弹性云计算)、Azure Virtual Machines 等。

PaaS(平台即服务)

  • 概念: PaaS 提供了一个应用程序开发和部署的平台,包括运行时环境、开发工具、数据库等。
  • 特点: 用户不再关心底层的基础设施,而是专注于应用程序的开发和部署。PaaS提供商负责管理操作系统、运行时环境和一些底层服务。
  • 例子: Heroku、Google App Engine、Azure App Service 等。

SaaS(软件即服务)

  • 概念: SaaS 提供的是完整的应用程序,用户通过互联网访问并使用这些应用程序。
  • 特点: 用户无需关心底层的硬件、操作系统和应用程序的管理,只需通过浏览器或应用程序接口访问即可。通常以订阅模式提供,按照使用量或用户数量计费。
  • 例子: Salesforce、Google Workspace(以前是 G Suite)、Microsoft 365 等。

聊聊 IaaS

  • 在标准的基础架构即服务(IaaS)云计算模型中,用户需要预先购买容量单元;也就是说,我们需要要先向公共云提供商支付始终可用的服务器组件的费用,才能运行我们的应用。 用户自行负责在需求高时扩展服务器容量,并在不再需要时缩减容量。即使在应用闲置不用期间,运行该应用所需的云基础架构也要保持就绪。

What is Serverless?

  • Serverless 是一种云原生开发模型,可使开发人员专注构建和运行应用,而无需管理服务器,主要分为 FaaS(函数即服务)和BaaS(后端即服务)。
  • Serverless 直译为“无服务器”,但实际上仍然有服务器,但它们已从应用开发中抽离了出来。由云提供商负责置备、维护和扩展服务器基础架构等例行工作。开发人员则只需要关注业务本身的开发,可以简单地将代码打包到容器中进行部署。
  • 部署之后,无服务器应用即可响应需求,并根据需要自动扩容。公共云提供商的 Serverless 产品通常通过一种事件驱动执行模型来按需计量。因此,当 Serverless 功能闲置时,不会产生费用。(比如阿里云 Function Compute 就是一种 FaaS)。

FaaS(函数即服务)

  • FaaS 强调将应用程序拆分为小型、独立的函数,每个函数执行特定的任务。这些函数按需触发执行,无需事先预置服务器。

执行

  • 函数是事件驱动的,通常与特定的事件(如HTTP请求、队列消息)相关联。函数的执行是短暂的,一旦任务完成,函数就会终止,不再耗费资源。

适应场景

  • 适用于处理短暂而离散的异步任务,例如图像处理、数据处理、事件处理等。

BaaS(后端即服务)

  • BaaS 提供了一整套后端服务,包括数据库、身份验证、推送通知等。它旨在简化应用程序的后端开发,让开发者无需自己搭建和管理这些后端服务。

执行

  • 一般是长期运行的移动应用、Web应用,比如 API 服务等,实时监听请求,根据业务逻辑处理请求。

适应场景

  • 适用于需要构建移动应用、Web应用的开发者,希望通过使用现有的后端服务(Baas平台提供:比如鉴权、存储、或者业务方向的通用服务)来加速开发过程。

FaaS vs BaaS 区别

关注点

  • FaaS: 关注于执行单一任务的函数,强调按需触发执行。
  • BaaS: 关注于提供整套后端服务,通过BaaS平台提供的现有服务来加速开发过程。

任务类型

  • FaaS: 适用于短暂而离散的任务,强调事件驱动的函数执行。
  • BaaS: 适用于构建应用程序的全面后端,包括数据库、身份验证等。

执行时长

  • FaaS: 函数执行通常是短暂的,与特定事件相关联。
  • BaaS: 服务一直在后台运行,持续提供后端功能,不受短暂事件的限制。

使用场景

  • FaaS: 适用于处理短暂而离散的异步任务,例如图像处理、数据处理、事件处理等。
  • BaaS: 适用于需要构建移动应用、Web应用的开发者,希望通过使用现有的后端服务(Baas平台提供:比如鉴权、存储、或者业务方向的通用服务)来加速开发过程。

优缺点

优点

  • 可以提高开发人员的工作效率,降低运营成本。通过摆脱诸如服务器置备和管理等例行任务,开发人员有更多的时间专注于自己的应用本身。
  • 可以通过整合第三方 BaaS 产品的完整组件来进一步简化应用开发。
  • 只需为所需的云计算时间付费,而不用全程运行和管理自己的服务器,因此在一些场景可以大大降低了运营成本。

缺点

  • 云提供商可能对其组件的交互方式有着严格的限制,从而影响您系统的灵活性和定制能力。采用 BaaS 环境时,开发人员可能要为代码不受其控制的服务负责。
  • 放弃对 IT 堆栈这些方面的控制,也同时意味着您会受制于供应商技术锁定。即便您决定要更换提供商,也可能需要升级系统以符合新供应商的规范,而这无疑会增加成本。

总结

  • Serverless 是一种云计算服务模型,强调无需关心底层基础设施,按需付费,同时开发者可以专注于编写应用程序的代码。大致分为 FaaS(函数即服务)和BaaS(后端即服务)。
  • 在实际的业务开发过程中,如果我们基于云平台部署应用,可以根据需求选择不同的云平台架构,而 Serverless 不失为一个比较好的选择,对于更加复杂的场景,我们可以选择混合使用的方式,这也是目前的主流方式。

个人简介

👋 你好,我是 Lorin 洛林,一位 Java 后端技术开发者!座右铭:Technology has the power to make the world a better place.

🚀 我对技术的热情是我不断学习和分享的动力。我的博客是一个关于Java生态系统、后端开发和最新技术趋势的地方。

🧠 作为一个 Java 后端技术爱好者,我不仅热衷于探索语言的新特性和技术的深度,还热衷于分享我的见解和最佳实践。我相信知识的分享和社区合作可以帮助我们共同成长。

💡 在我的博客上,你将找到关于Java核心概念、JVM 底层技术、常用框架如Spring和Mybatis 、MySQL等数据库管理、RabbitMQ、Rocketmq等消息中间件、性能优化等内容的深入文章。我也将分享一些编程技巧和解决问题的方法,以帮助你更好地掌握Java编程。

🌐 我鼓励互动和建立社区,因此请留下你的问题、建议或主题请求,让我知道你感兴趣的内容。此外,我将分享最新的互联网和技术资讯,以确保你与技术世界的最新发展保持联系。我期待与你一起在技术之路上前进,一起探讨技术世界的无限可能性。

📖 保持关注我的博客,让我们共同追求技术卓越。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/193328.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OCR常用数据集_看数据集区分可识别语言

这里写目录标题 COCO-TEXT 英文Total-Text 英文少量中文IIIT5K[50]、IC03[44]、IC13[34]、IC15[33]、CT80[56]MJSynth 英文SynthText分层文本数据集 (HierText) 英文TextOCR和IntelOCR ???Multi-language dataset (IC19)RCTW17 主要中文MSRA-…

Webpack——Webpack简介

1、什么是Webpack? Webpack是一个开源的JavaScript模块打包工具,其最核心的功能是解决模块之间的依赖,把各个模块按照特定的规则和顺序组织在一起,最终合并为一个JS文件(有时会有多个,这里讨论的只是最基本…

ensp 启动设备时报40错误,然后一直没有去管,再次进去就好了,我知道是配置虚拟机的时候修改了一些设置:

第一个阶段: 那时我是重置电脑之后就安装了ensp所以没有出现什么问题,(那时没有导入ce6800和12800还有防火墙6000) 第二个阶段: 因为有华为相关的实验要做,所以心血来潮打开了ensp(路由器之前…

零基础学编程轻松学编程,分享一款中文编程工具,编程构件简介

零基础学编程轻松学编程,分享一款中文编程工具,编程构件简介 中文编程开发语言工具编辑区界面截图如上图。 给大家分享一款中文编程工具 零基础轻松学编程,不需英语基础,编程工具可下载。 这款工具不但可以连接部分硬件&#…

计算机毕业设计|基于SpringBoot+MyBatis框架的仿天猫商城购物系统设计与实现

计算机毕业设计|基于SpringBootMyBatis框架的仿天猫商城购物系统设计与实现 迷你仿天猫商城是一个基于SSM框架的综合性B2C电商平台,需求设计主要参考天猫商城的购物流程:用户从注册开始,到完成登录,浏览商品,加入购物…

超全超实用行业解决方案合集,覆盖十大行业数据应用需求

现代企业面对复杂的业务需求,对数据分析的需求日益增加。 从实时销售到市场趋势,从客户行为到产品优化,每个环节都依赖于数据支持。然而,传统的数据分析平台常分散在不同系统和团队中,形成数据孤岛,降低了…

数字经济时代:城市到底如何演绎?产业将何去何从?

人人都在谈数字经济,可数字经济究竟是个啥? 在回答这个问题前,我们先来看组数据,根据中国信息通信研究院发布的《中国数字经济发展研究报告(2023年)》显示:2022年,我国数字经济规模…

数字孪生技术:提升UI交互性与个性化设计

随着数字化时代的到来,数字孪生技术正在逐渐改变我们的生活和工作方式。数字孪生是一种复制现实世界系统或实体的技术,通过创建数字模型来模拟现实世界中的各种行为和事件。这种技术不仅为人们提供了一个全新的视角来看待和解决问题,同时也为…

uniapp挽留提示2.0

项目需求:有时候挽留的ui是全屏的,用page-container也可以。后来产品提了个问题,手机侧滑的时候没那么顺畅(就是一用侧滑,就显示出来,产品要的方案是如下图,emmm大概是这个意思) 后面…

Java核心知识点整理大全18-笔记

Java核心知识点整理大全-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全2-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全3-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全4-笔记-CSDN博客 Java核心知识点整理大全5-笔记-CSDN博客 Java核心知识点整理大全6…

1998-2021年全国各地级市PM2.5平均浓度数据

1998-2021年全国各地级市PM2.5平均浓度数据 1、时间:1998-2021年 2、指标:省、省代码、市、市代码、年份、均值、总和、最小值、最大值、标准差 3、来源:Washington university Atmospheric Composition Analysis Group 4、范围&#xff…

美SEC与贝莱德,对比特币现货ETF申购方式产生分歧!

比特币现货ETF的通过时间是市场投资者密切关注的议题。虽然SEC最近推迟了Hashdex、富兰克林邓普顿(Franklin Templeton)和GlobalX申请的决议时间,但彭博ETF分析师James Seyffart对明年一月通过的机率持乐观态度,认为其通过的机会能…

【Proteus仿真】【STM32单片机】感应水龙头设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器,使用LCD1602液晶模块、HCSR04超声波等。 主要功能: 系统运行后,LCD1602显示超声波模块检测的距离,若检测距离小…

6.3 Windows驱动开发:内核枚举IoTimer定时器

内核I/O定时器(Kernel I/O Timer)是Windows内核中的一个对象,它允许内核或驱动程序设置一个定时器,以便在指定的时间间隔内调用一个回调函数。通常,内核I/O定时器用于周期性地执行某个任务,例如检查驱动程序…

JVM——垃圾回收器(Serial,SerialOld,ParNew,CMS,Parallel Scavenge,Parallel Old)

目录 1.垃圾回收器的组合关系1.年轻代-Serial垃圾回收器2.老年代-SerialOld垃圾回收器3.年轻代-ParNew垃圾回收器4.老年代- CMS(Concurrent Mark Sweep)垃圾回收器CMS执行步骤:CMS垃圾回收器存在的问题缺点:CMS垃圾回收器存在的问题 – 线程资源争抢问题…

【教学类-06-12】20231126 (二)三位数 如何让加减乘除题目从小到大排序(以0-110之间加法为例,做正序排列用)

结果展示 背景需求: 二位数:去0 三位数(需要排除很多0) 解决思路 一、把数字改成三位数 二、对数组内的题目,8种可能性进行去“0”处理 1、十位数(去百位数0)十位数(去百位数0&am…

AMD ROCm软件栈组件介绍

AMD ROCm™ Platform 1.1 ROCm简介 参考:https://github.com/RadeonOpenCompute/ROCm ROCm(Radeon Open Compute)开源软件栈。 在NVIDIA GPU上,术语“CUDA”通常是指GPU编程编译器、API和运行时库,但ROCm不那么单一…

【云备份】数据管理模块

文章目录 1. 数据管理模块要管理什么数据?2. 数据管理模块如何管理数据?3. 数据管理模块的具体实现BackupInfo 数据信息类NewBackupInfo —— 获取各项属性信息 DataManager 数据管理类构造函数析构函数insert —— 新增update —— 修改GetOneByURL——…

C语言--每日选择题--Day24

第一题 1. 在C语言中,非法的八进制是( ) A:018 B:016 C:017 D:0257 答案及解析 A 八进制是0~7的数字,所以A错误 第二题 2. fun((exp1,exp2),(exp3,exp4,exp5))有几…

网络通信(架构与三要素)

一,通信架构 二,三要素 三,IP地址 四,域名 五,InetAddress(操作IP地址的工具类) 六,案例 import java.net.InetAddress; import java.net.UnknownHostException;public class IPInet…
最新文章