前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >云平台系列:What is Serverless (FaaS、BaaS)

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

原创
作者头像
Lorin 洛林
发布2023-11-27 20:01:13
4110
发布2023-11-27 20:01:13
举报
文章被收录于专栏:其它其它

前言

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

IaaS 与 PaaS 和SaaS

  • 在 Serverless 兴起之前,IaaS(基础设施即服务)、PaaS(平台即服务)和SaaS(软件即服务)是云平台中三种常见的服务模型。
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编程。

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

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

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • IaaS 与 PaaS 和SaaS
    • IaaS(基础设施即服务)
      • PaaS(平台即服务)
        • SaaS(软件即服务)
          • 聊聊 IaaS
          • What is Serverless?
            • FaaS(函数即服务)
              • 执行
              • 适应场景
            • BaaS(后端即服务)
              • 执行
              • 适应场景
            • FaaS vs BaaS 区别
              • 关注点
              • 任务类型
              • 执行时长
              • 使用场景
            • 优缺点
              • 优点
              • 缺点
          • 总结
          • 个人简介
          相关产品与服务
          腾讯云区块链服务平台 TBaaS
          腾讯云区块链服务平台(Tencent Blockchain as a Service,简称TBaaS)致力于打造全球领先的企业级区块链技术平台,帮助客户、开发者及合作伙伴轻松创建和管理可托管、可扩展的区块链网络,助力产业协同发展。TBaaS 支持长安链·ChainMaker、Hyperledger Fabric等区块链底层平台,简化部署、运维及开发流程,实现业务快速上链,提升链上治理效率。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
          http://www.vxiaotou.com