【DA基础】如何区分 PaaS、IaaS 、SaaS?
建议回顾的时候直接看PART2就行了
一、官方定义
1.1 共性
- SaaS、PaaS、IaaS简单的说都属于云计算服务,也就是云计算+服务。
-
云计算概念:
-
Cloud computing is a new form of Internet-based computing that provides shared computer processing resources and data to computers and other devices on demand. 云计算是一种按照需求通过Internet获取计算资源的形态,这些计算资源被包装成为服务,提供给用户。而提供这些服务的主体,我们称之为云服务供应商(Cloud Service Provider)
-
1.2 区别
-
1. 基础设施即服务(IaaS,Infrastructure as a Service)
- 把计算基础(服务器、网络技术、存储和数据中心空间)作为一项服务提供给客户,也包括提供操作系统和虚拟化技术等管理资源。
- IaaS的用户可以在云服务提供商提供的基础设施上部署和运行任何软件,包括操作系统和应用软件。用户没有权限管理和访问底层的基础设施,如服务器、交换机、硬盘等,但是有权管理操作系统、存储内容,可以安装管理应用程序,甚至是有权管理网络组件。简单的说用户使用IaaS,有权管理操作系统之上的一切功能。
- 常见的IaaS服务:虚拟机、虚拟网络、以及存储。
-
2. 平台即服务(PaaS:Platform as a Service)
- 把软件研发的平台作为一种服务提供给客户,即提供一种超过基础设施的服务
- PaaS给用户提供的能力是使用由云服务提供商支持的编程语言、库、服务以及开发工具来创建、开发应用程序并部署在相关的基础设施上。用户无需管理底层的基础设施,包括网络、服务器,操作系统或者存储。他们只能控制部署在基础设施中操作系统上的应用程序,配置应用程序所托管的环境的可配置参数。
- 常见的PaaS服务:数据库服务、web应用以及容器服务。
- 成熟的PaaS服务会简化开发人员,提供完备的PC端和移动端软件开发套件(SDK),拥有丰富的开发环境(Inteli、Eclipse、VS等),完全可托管的数据库服务,可配置式的应用程序构建,支持多语言的开发,面向应用市场。
-
3.软件即服务(SaaS:Software as a Service)
- 把最终的应用作为一项服务托管,通过网络交付给客户,帮助客户更好地管理它们的IT项目和服务、确保它们IT应用的质量和性能,监控它们的在线业务。
- SaaS给用户提供的能力是使用在云基础架构上运行的云服务提供商的应用程序。可以通过轻量的客户端接口(诸如web浏览器(例如,基于web的电子邮件))或程序接口从各种客户端设备访问应用程序。用户无需管理或控制底层云基础架构,包括网络,服务器,操作系统,存储甚至单独的应用程序功能,可能的例外是有限的用户特定应用程序配置设置。
- 常见的SaaS服务:各类的网盘(Dropbox、百度网盘等),JIRA,GitLab等服务。
- 应用的提供者不仅仅是云服务提供商,还有众多的第三方提供商(ISV: independent software provider)。
二、类比记忆
2.1 Pizza理解法
2.2 正经理解
-
汇总
- 本地部署 On-Premises:基础设施、平台、软件均自己架构
-
云计算:
- IaaS:无需自己提供基础设施
- PaaS:无需自己提供平台、基础设施
- SaaS:无需自己提供软件、平台、基础设施
致谢:
- Pizza比喻参考某知乎问题(忘记是谁写的了,抱歉)
- 图源:https://new.qq.com/omn/20210118/20210118A032DN00.html
- 定义部分:https://new.qq.com/omn/20210209/20210209A02K0800.html