共计 2429 个字符,预计需要花费 7 分钟才能阅读完成。
在现代 IT 领域,云计算服务模型为不同类型的企业提供了支持,随着技术的发展,也产生了非常多的演变,从基础的 IaaS 到高层的 SaaS,再到新兴的 BaaS 和 FaaS ,每一种模式都有其独特的应用场景。这一片文章就从我了解到的这几个分层以及每一层特有的商业模式来分析一下。
如果将云服务从上到下可以划分为:
- 应用程序层,直接面向用户提供服务的产品,比如 Instagram, Google, Trello 等
- 数据
- 运行时
- 中间件,消息队列,缓存,数据库等
- 操作系统,Linux,Unix
- 虚拟化
- 服务器,物理服务器
- 存储,磁盘
- 网络
传统的 IT (On Premise)需要运维人员分别去维护管理从上到下所有的内容,最常见的模式就是自建机房,那么运维人员需要从拉网线,安装机架等等开始构建,但是随着像 AWS,GCP,阿里云等等云服务厂商的加入,逐渐演变出来一种提供应用程序运行环境的模式 IaaS,比如 EC2,AWS 屏蔽了网络,存储,服务器,虚拟化等等,用户只需要在操作系统以上构建自己的应用,比如网络服务,消息队列等等。
而随着 IaaS 的发展,某些用户可能并不关系自己应用程序底层是什么操作系统,只关心我的应用可以运行起来,并且可以存储数据,那这时 PaaS 就诞生了,比如 Heroku,Vercel,Google App Engine 等,用户可以利用各种语言直接编写应用,而再不用关心底层使用的是什么样的操作系统,磁盘空间大小,网络情况等。
而最高层 SaaS,在这些基础设施之上,开发人员构建了非常丰富的网页,应用生态,也才有当前互联网的蓬勃发展。大部分的企业通过想别人提供自己都有的服务而发展起来,而绝大部分的产品都可以说是 SaaS 产品,SaaS 提供完整的应用程序,用户直接通过网络访问,无需安装和维护,随时随地可以访问。比如 Salesforce,提供全面的 CRM 解决方案,Shopify 提供了电子商务平台,等等。
那接下来我们就一个一个来分析一下这些名词,并展示一下典型的产品有哪些。
IaaS
IaaS 是 Infrastructure as a Service 的缩写,意为基础设施即服务。它是一种云计算服务模式,提供了虚拟化的计算资源、存储空间和网络功能,用户可以按需使用这些资源而无需购买和维护物理服务器和设备。通过 IaaS,用户可以快速搭建自己的 IT 基础设施,并根据实际需求灵活地调整资源规模。常见的 IaaS 提供商包括亚马逊 AWS、微软 Azure 和谷歌云(GCP)等。
[[IaaS]] 占据了:
- 虚拟化
- 服务器
- 存储
- 网络
传统的 VPS,就是借助 [[KVM]] 等等虚拟化技术向外提供服务。一般 IaaS 中用户可以自己选择操作系统,可以自己选择存储硬件,内存等等。而 IaaS 中软件也需要用户自己维护,比如系统更新,基础安全软件的升级等等。
PaaS
PaaS 是平台即服务(Platform as a Service)的缩写,是一种云计算服务模型,提供了用于开发、部署和运行应用程序的平台。PaaS 提供了基础设施和工具,使开发人员能够快速构建和部署应用程序,而无需担心底层的基础设施管理。这种服务模型可以帮助企业降低成本、增加灵活性,并加快应用程序的开发周期。
典型的应用有 Heroku,Vercel 等。
[[PaaS]] 则是提供了如下组件:
- 运行时
- 中间件
- 操作系统
- 虚拟化
- 服务器
- 存储
- 网络
比如 [[Heroku]] 提供了运行时服务,Vercel 提供了 Next.js 等执行环境。
PaaS 用户可以自己选择编程语言和框架来实现自己的需求。
典型的 PaaS 有:
- Heroku,Vercel,[[Netlify]]:提供了一个平台,让开发者可以轻松部署、管理和扩展应用程序。
- Google App Engine:Google 提供的 PaaS 平台,支持多种编程语言和框架,让开发者可以快速构建应用程序。
- Microsoft Azure App Service:微软提供的 PaaS 服务,支持多种语言和框架,提供了自动缩放和高可用性的功能。
开源的方案有:
- [[CapRover]] 是一个 PaaS 平台
- [[Dokku]]
- [[Dokploy]]
- [[Coolify]]
BaaS
[[BaaS]] 是 Backend-as-a-Service 的缩写,指的是一种云服务模型,通过这种模式,开发人员可以利用云端提供的基础设施和服务来构建和运行应用程序的后端部分。BaaS 提供了各种功能,如用户管理、数据存储、推送通知、文件存储等,开发人员无需自行搭建这些基础设施,只需要调用 BaaS 提供的 API 接口即可快速构建应用程序。这样可以大大减少开发时间和成本,并且能够更专注于应用程序的核心功能。
常见的 BaaS 产品有:
- [[Firebase]]
- [[Supabase]]
- [[Appwrite]]
- [[Appsmith]]
- [[Plasmic]]
- [[Hasura]]
- [[zeabur]]
- [[PocketBase]]
- [[MemFire Cloud]]
- [[202101151657-LeanCloud]]
- [[Back4app]]
SaaS
[[SaaS]] 是一种软件即服务(Software as a Service)的模式,是一种通过互联网提供软件应用程序的方法。用户无需购买、安装和维护软件,只需通过网络访问即可使用。SaaS 模式不仅可以节省用户的成本,还能提高软件的灵活性和便利性。常见的 SaaS 应用包括在线办公套件、客户关系管理系统和项目管理工具等。
SaaS 中用户只能使用其服务而不能自行选择底层的所有内容。
FaaS
[[FaaS]] 是 Function as a Service,函数即服务的缩写。这是一种云计算服务模型,允许开发者在无需管理服务器或基础架构的情况下运行代码。开发者只需编写函数并上传到云平台,平台会根据需要自动扩展和执行这些函数。这种模型可以帮助开发者更快速地部署代码并实现弹性扩展,同时也可以节省成本和资源。常见的 FaaS 提供商包括 AWS Lambda、Azure Functions 和 Google Cloud Functions 等。