## 缘起
在寻找可用开发资源时,经常会遇到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