图解架构 | SaaS、PaaS、IaaS
The following article is from 悟空聊架构 Author 悟空聊架构
上次聊到了架构图如何画,其中涉及到了云服务的架构图,里面提到了很重要的三个概念 PaaS、IaaS、SaaS,很有必要在这里总结一波。
本文内容如下:
随着互联网行业的飞速发展,云服务也变得尤为重要,几乎每个企业都需要使用云计算服务,来管理大量敏感和机密数据,因此,在任何类型的企业中使用云服务都是不可避免的。
定义
这里我想到了一个比较通俗易懂的解释:
SaaS:租的房子,只能住人和存放物品,不能修改房间的设施。
PaaS:买的精装修房,可以布置一些家电(如电视机、空调等等)、墙上挂一些装饰等等,俗称软装。
IaaS:买来的毛坯房,可以自己装修水电、安装柜子,家电等等,俗称硬装。
一般而言,企业有三种云计算服务模式可以选择.
软件即服务(SaaS):这是一个完整的软件应用程序,具有用户界面;
平台即服务(PaaS):开发人员可以在其中部署自己的应用程序的平台;
基础设施即服务(IaaS):提供机器、存储和网络资源,开发人员可以通过安装自己的操作系统、应用程序和支持资源来管理。
IaaS
英文就是 Infrastructure-as-a-Service(基础设施即服务)。
IaaS 提供给消费者的服务是对所有计算基础设施的利用,包括处理 CPU、内存、存储、网络和其它基本的计算资源,用户能够部署和运行任意软件,包括操作系统和应用程序。
消费者不管理或控制任何云计算基础设施,但能控制操作系统的选择、存储空间、部署的应用,也有可能获得有限制的网络组件(例如路由器、防火墙、负载均衡器等)的控制。
PaaS
英文就是 Platform-as-a-Service(平台即服务)。
PaaS,某些时候也叫做中间件。就是把客户采用提供的开发语言和工具(例如Java,python, .Net等)开发的或收购的应用程序部署到供应商的云计算基础设施上去。
客户不需要管理或控制底层的云基础设施,包括网络、服务器、操作系统、存储等,但客户能控制部署的应用程序,也可能控制运行应用程序的托管环境配置。
SaaS
英文就是 Software-as-a-Service(软件即服务)
SaaS提供给客户的服务是运行在云计算基础设施上的应用程序,用户可以在各种设备上通过客户端界面访问,如浏览器。
消费者不需要管理或控制任何云计算基础设施,包括网络、服务器、操作系统、存储等等。
应用
IaaS
IaaS 会提供场外服务器,存储和网络硬件,你可以租用。节省了维护成本和办公场地,公司可以在任何时候利用这些硬件来运行其应用。我们最熟悉的IaaS服务是我们服务器托管业务,多数的IDC都提供这样的服务,用户自己不想要再采购价格昂贵的服务器和磁盘阵列了,所有的硬件都由 IaaS 提供,你还能获得品质更高的网络资源。
PaaS
PaaS 在网上提供各种开发和分发应用的解决方案,比如虚拟服务器和特定的操作系统。底层的平台3/4帮你铺建好了,你只需要开发自己的上层应用。这即节省了你在硬件上的费用,也让各类应用的开发更加便捷,不同的工作互相打通也变得容易,因为在同一平台上遵循的是同样的编程语言、协议和底层代码。
很多网页应用,应用虚拟主机,存储,安全以及应用开发协作工具等。我们最熟悉的 PaaS 平台就有百度 BAE、新浪 SAE、阿里 Ali、腾讯云等等。很多电商平台、视频网站等都可以通过PaaS实现快速部署。
SaaS
SaaS 与我们普通使用者联系可能是最直接的,简单地说任何一个远程服务器上的应用都可以通过网络来运行,就是SaaS了。
我们最容易接触到的是挂在网页或微信上的各类小程序,比如H5的应用如火如荼,这些应用给了IT的门外汉实现自己愿望的机会。
国内的互联网巨头竭力推荐的 SaaS 应用想必大家已经耳熟能详了,比如阿里的钉钉,腾讯的企业微信,这些软件里面应用平台上的可供使用的各类SaaS小软件数不胜数,从OA,到ERP到CRM等等,涵盖了企业运行所需的几乎所用应用。
原理
软件即服务(SaaS)
软件即服务(也称为云应用程序服务)代表了云市场中企业最常用的选项。SaaS 利用互联网向其用户提供应用程序,这些应用程序由第三方供应商管理。大多数 SaaS 应用程序直接通过 Web 浏览器运行,不需要在客户端进行任何下载或安装。
如下图所示,数据信息由租户自己管理,提供 SaaS 服务的企业会将应用软件、平台软件、基础设施都集成好,不需要租户关心底层这些架构。
平台即服务(PaaS)
PaaS 的交付模式类似于 SaaS,除了通过互联网提供软件,PaaS 提供了一个软件创建平台。该平台通过 Web 提供,使开发人员可以自由地专注于创建软件,同时不必担心操作系统、软件更新,存储或基础架构。PaaS 允许企业使用特殊的软件组件设计和创建内置于 PaaS 中的应用程序。由于具有某些云特性,这些应用程序或中间件具有可扩展性和高可用性。
PaaS 示意图
基础设施即服务(IaaS)
IaaS 通过虚拟化技术为组织提供云计算基础架构,包括服务器、网络,操作系统和存储等。这些云服务器通常通过仪表盘或API提供给客户端,IaaS 客户端可以完全控制整个基础架构。IaaS 提供与传统数据中心相同的技术和功能,而无需对其进行物理上的维护或管理。IaaS 客户端仍然可以直接访问其服务器和存储,但它们都通过云中的“虚拟数据中心”。
与 SaaS 或 PaaS 相反,IaaS 客户端负责管理应用程序、运行时、操作系统,中间件和数据等方面。但是,IaaS 的提供商管理服务器、硬盘驱动器、网络,虚拟化和存储。一些提供商甚至在虚拟化层之外提供更多服务,例如数据库或消息队列。
IaaS 示意图
每种云服务(IaaS,PaaS 和 SaaS)都是针对其目标受众的业务需求量身定制的。从技术角度来看,IaaS 可以为你提供最大的控制权,但需要广泛的专业知识来管理计算基础架构,而 SaaS 允许你使用基于云的应用程序而无需管理基础架构,而 PaaS 提供了用于开发,测试和管理应用程序的环境,因此,PaaS 是软件开发公司的理想选择。
综上所述,IaaS,PaaS 和 SaaS,哪种云服务适合你?
现在该选择所需的基于云的服务了,实际上,选择完全取决于业务目标,因此首先要考虑自身的需求。
往期推荐