SaaS、PaaS、IaaS、FaaS、BaaS、DBaaS都是什么


## 缘起

在寻找可用开发资源时,经常会遇到PaaS、BaaS、IaaS这样的名词。一开始看可能会觉得有些奇怪,后来专门去查了一下,其实从英文上理解还是很方便的。

介绍

按照灵活程度从低到高,云服务大概可以分为三种,SaaS,PaaS,IaaS:

  • SaaS,Software-as-a-Service的缩写,意思是软件即服务。厂商直接提供一个已经部署好的软件,用户使用软件进行交互。我们平时浏览网页应该都可以算作SaaS。
  • PaaS,Platform-as-a-Service的缩写,意思是平台即服务。厂商提供一个可以直接运行应用的平台,你只需提供代码,简单设置环境即可。常见的PaaS服务有Heroku、Railway等等。
  • IaaS,Infrastructure-as-a-Service的缩写,意思是基础设施即服务。在这里厂商只提供基础设施,例如硬件、带宽等,系统层开始都需要自己配置。灵活性最大,VPS、磁盘托管等就属于基础设施即服务。

另外一些概念:

  • 无服务器:类似于PaaS,区别在于PaaS部署的程序一般会长时间运行,并保留状态参数,但是无服务器一般只托管一段代码,并在给定的触发条件下运行这段代码而已,状态只能通过环境变量引入,而不会在代码内部产生。
    无服务器又可以分为两类:
    • FaaS,Function-as-a-Server的缩写,意思是函数即服务。提供一段代码,厂商提供运行环境,基于事件驱动,例如AWS Lambda
    • BaaS,Backend-as-a-Server的缩写,意思是后端即服务。前端自己开发,后端由厂商提供,例如Firebase
  • DBaaS,Database-as-a-Server的缩写,意思是数据库即服务。厂商提供数据库服务,应用直接调用数据库即可。例如MongoDB Atlas