有位工作6年的小伙伴,去面试架构师岗位,被问到这样一道题,说谈你对IaaS、PaaS、SaaS的理解。今天,我给大家分享一下我的理解。
1、云服务和XaaS
要理解这三者的关系,我们先了解云服务。所谓云服务,是指利用互联网提供动态易扩展的虚拟化资源整合服务。云服务的主体架构,主要有基础设施服务、平台服务、软件服务。
通过抽象和分层,在云服务领域创造了一个词,叫做“一切即服务”的概念,也就是X as a Service。
我们通常所说的:
IaaS全称为Infrastructure as a Service,也就是基础设施即服务的简称;
PaaS的全称为Platform as a Service,也就是平台即服务的简称;
SaaS的全称为Software as a Service,也就是软件即服务的简称。
除了这些以外,还衍生出了很多类似的概念,比如 DaaS(数据即服务)、OaaS(运维即服务)等等。在云服务架构中,IaaS、PaaS 和 SaaS三种架构是为最核心的架构。
2、三者对比
首先是,IaaS基础设施即服务(Infrastructure as a Service),它是面向企业或者开发者,提供基础资源支持,包括:计算、存储、网络等等。
有了IaaS以后,企业在开发APP时,只需在公有云平台上注册一个账号,花点钱,配置各种云服务器,各种大小的存储,各种带宽的网络,都配齐,不用操心诸如机房选址、设备采购、实体服务器、存储、网络等问题,只要一个账号,便解决了。
而作为程序员,只需在服务器上安装各类程序,中间件,数据库等等,包括前端与后台,测试,上线,迭代,更新的操作都要以IaaS为基础,否则,前期的工作就都需要自己来完成。
然后,就是PaaS平台即服务(Platform as a Service)它面向开发者,提供软件运行的平台环境。或者以API、SDK的形式开放给客户调用,包括:数据分析、人工智能、Docker;推送、通信、语音识别、图像识别、统计、广告等等。
PaaS是在IaaS的基础之上,解决了操作系统、数据库、运行时环境、中间件、各种框架的搭建操作问题,有了PaaS,程序员只需要专心的开发自己的APP就行了。
做PaaS需要的技术能力和资源比做SaaS要求更高,因为SaaS服务商的强项在于业务和应用,而不是平台技术和服务能力。
最后,就是SaaS 软件即服务(Software as a Service),是面向企业或个人终端用户,通过网络租用的形式提供软件,包括:管理类应用、业务类应用、行业类应用等等。SaaS可以调用PaaS层的能力,也可以使用IaaS层的资源独立开发。
SaaS就相当于是现成的了,根本用不着开发,用户只需要专注在自己的业务上就行,比如写代码、维护等各种定制化的工作,都交给SaaS厂商。用户只需要一个续费账号就能解决所有问题。
不论是 IaaS、PaaS 和 SaaS 三者都有非常庞大的产品群体和用户服务群体,三者之间的架构关系,如图所示。
从Iaas到SaaS的过程,企业需要付出的开发成本越来越小,云服务化的程度也越来越高,如图所示:
好了,以上就是我对SaaS、PaaS、IaaS的理解。