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

news/2024/5/20 7:16:47 标签: serverless, 云原生

文章目录

  • 前言
  • 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.niftyadmin.cn/n/5220106.html

相关文章

格雷希尔针对J2044燃油管测试专用快速接头都有哪些及各自的应用场合

J2044燃油管是汽车燃油系统中常见的管口,如:燃油泵、燃油滤清器、喷油嘴等部件中都有这样的管口,为了保证燃油系统的正常运行,这些零部件在出厂前就需要对其进行多种测试,在测试前需要对J2044燃油管管口进行密封用于连…

深度学习中小知识点系列(六) 解读SPP / SPPF / SimSPPF / ASPP / RFB / SPPCSPC

SPP与SPPF 一、SPP的应用的背景 在卷积神经网络中我们经常看到固定输入的设计,但是如果我们输入的不能是固定尺寸的该怎么办呢? 通常来说,我们有以下几种方法: (1)对输入进行resize操作,让他…

元宇宙创世纪

元宇宙创世纪 1.1起初,道创建元宇宙. 1.2指令是不存在的,数是没有的,道存在于一切连续的物中. 1.3道说&#…

解决方案:新版WPS-右键粘贴值到可见单元格没有了

旧版WPS,右键就能出现 但是新版WPS不是在这里(方法1) 新版WPS(方法2) 视频详细教程链接:解决方案:新版WPS-右键粘贴值到可见单元格没有了 -- 筛选后复制公式粘贴为数值_哔哩哔哩_bilibili

文件夹重命名技巧:如何整理过长且混乱的文件夹名称

当浏览计算机文件夹时,有时候会遇到一些过长且混乱的文件夹名称,给文件夹管理带来不便。倘若手动修改文件夹名称会出现错误的机率过大,且这样操作太耗费时间和精力。有什么方法能够避免手动修改文件夹名称,提升工作效率的方法呢&a…

使用sizeof计算含有虚函数的类对象的空间大小

前提条件&#xff1a;32位WinNT操作系统 #include <iostream>using namespace std;class Base { public:Base(int x) : a(x){}void print(){cout << "base" << endl;} private:int a; };class Derived : public Base { public:Derived(int x) : B…

什么是高性能计算岗位

最近有小伙伴咨询什么是高性能计算岗位。 1、什么是高性能计算 高性能计算&#xff0c;在很多招聘信息中也会被标注为 HPC&#xff0c;是 High Performance Computing 的缩写。 目前很多 AI 公司或者从事 AI 的部门招聘都有这个岗位需求&#xff0c;我从某聘上截取了几个有代…

ELK分布式日志管理平台部署

目录 一、ELK概述 1、ELK概念&#xff1a; 2、其他数据收集工具&#xff1a; 3、ELK工作流程图&#xff1a; 4、ELK 的工作原理&#xff1a; 5、日志系统的特征&#xff1a; 二、实验部署&#xff1a; 1、ELK Elasticsearch 集群部署 2、安装 Elasticsearch-head 插件 …