云计算的三种效劳形式:IaaS、PaaS和SaaS
一、IaaS、PaaS、SaaS简介
根底设备即效劳 (IaaS): Infrastructure as a Service
根底设备即效劳有时缩写为 IaaS,包含云 IT 的根本构建块,通常提供对联网功能、计算机(虚拟或专用硬件)以及数据存储空间的访问。根底设备即效劳提供最高等级的灵敏性和对 IT 资源的管理控制,其机制与现今众多 IT 部门和开发人员所熟悉的现有 IT 资源最为接近。
平台即效劳 (PaaS):platform as a service
平台即效劳消除了组织对底层根底设备(一般是硬件和操作系统)的管理需要,让您可以将更多精神放在应用程序的部署和管理上面。这有助于进步效率,因为bash 您不用操心资源购置、容量规划、软件 维护、补丁装置或与应用程序运行有关的任何无差别的繁重工作。
软件即效劳 (SaaS):Software as a Service
软件即效劳提供了一种完善的产品,其运行和管理皆由效劳提供商负责。人们通常所说的软件即效劳指的是终端用户应用程序。使用 SaaS 产品时,效劳的维护和底层根底设备的管理都不用您操心,您只需要考虑怎样使用 SaaS 软件就可以了。SaaS 的常见应用是基于 Web 的电子邮件,在这种应用场景中,您可以收发电子邮件而不用管理电子邮件产品的功能添加,也不需要维护电子邮件程序运行所在的效劳器和操作系统。
IaaS形式下,只提供云计算效劳的根底设备,用户可以部署和运行任意软件PaaS形式下,用户不需要管理和控制云计算底层根底设备,直接使用和控制应用程序即可;SaaS形式下,用户可以直接通过客户端使用云计算效劳,不需要管理任何软硬件简单说,IaaS提供虚拟化硬件,可以装置操作系统;PaaS提供中间件、数据库,可以部署应用,建库;SaaS提供给用程序,可以直接使用。
二、详解
IaaS 是“Infrastructure as a Service”的首字母缩写,意思是根底设备即效劳,即把 IT 系统的根底设备层作为效劳出租进来。由云效劳提供商把 IT 系统的根底设备建立好,并对计算设备停止池化,然后直接对外出租硬件效劳器、虚拟主机、存储或网络设备(负载平衡器、防火墙、公网IP地址及诸如 DNS 等根底效劳)等。云效劳提供商负责管理机房根底设备、计算机网络、磁盘柜、效劳器和虚拟机,租户自己装置和管理操作系统、数据库、中间件、应用软件和数据信息,所以 IaaS 云效劳的消费者一般是掌握一定技术的系统管理员,如图 所示
IaaS架构
IaaS 云端的根本架构模型逻辑上分为三层:
第一层管理全局第二层管理计算机集群(一个集群内的机器地理位置上可能相距很远)第三层负责运行虚拟机。
第一层的云管理器与第二层的集群管理器之间一般通过高速网络连接,当增加数据中心为云端扩容时,就能体现网速的重要性。而集群内的计算机之间倾向于采用本地局域网(如 10Gbit/s 以太网)或者超高速广域网,假设采用局域网,则灾难容错差;假设跨广域网,则网络带宽会成为瓶颈。
云管理器是云端对外的总入口,在这里验证用户身份,管理用户权限,向合法用户发放票据(然后用户持此票据使用计算资源)、分配资源并管理用户租赁的资源。
每一个集群负责管理本集群内部的高速互联在一起的计算机,一个集群内的计算机可能有成百上千台。集群管理器接受上层的资源查询恳求,然后向下层的计算机管理器发送查询恳求,最后汇总并判断是部分满足还是全部满足上层恳求的资源,再反响给上层。假设接下来收到上层分配资源的命令,那么集群管理器指导下层的计算机管理器停止资源分配并配置虚拟网络,以便能让用户后续访问。另外,本层 PLS 中存储了本集群内的全部虚拟机镜像文件,这样一台虚拟机就能在集群内任意一台计算机上运行,并轻松实现虚拟机热迁移。
每台计算机上都有一个计算机管理器,它一方面与上层的集群管理器打交道,另一方面与本机上的虚拟机软件打交道。它把本机的状态(如正在运行的虚拟机数、可用的资源数等)反响给上层,当收到上层的命令时,计算机管理器就指导本机的虚拟机软件执行相应命令。这些命令包括启动、关闭、重启、挂起、迁移和重配置虚拟机,以及设置虚拟网络等。租赁 IaaS 云效劳,对租户而言,最大优点是其灵敏性,由租户自己决定装置什么操作系统、需不需要数据库且装置什么数据库、装置什么应用软件、装置多少应用软件、要不要中间件、装置什么中间件等,相当于购置了一台计算机,要不要使用、何时使用以及如何使用全由自己决定。
PaaS 是“Platform as a Service”的首字母缩写,意为平台即效劳,即把 IT 系统的平台软件层作为效劳出租进来,如图所示
① 相比于 IaaS 云效劳提供商,PaaS 云效劳提供商要做的事情增加了,他们需要准备机房、布好网络、购置设备、装置操作系统、数据库和中间件,即把根底设备层和平台软件层都搭建好,然后在平台软件层上划分“小块”(习惯称之为容器)并对外出租。
②PaaS 云效劳提供商也可以从其他 IaaS 云效劳提供商那里租赁计算资源,然后自己部署平台软件层。另外,为了让消费者能直接在云端开发调试程序,PaaS 云效劳提供商还得装置各种开发调试工具。相反,租户要做的事情相比 IaaS 要少很多,租户只要开发和调试软件或者装置、配置和使用应用软件即可。PaaS 云效劳的消费者主要包括以下人员:
程序开发人员:写代码、编译、调试、运行、部署、代码版本控制等,一揽子处置。程序测试人员。软件部署人员:把软件部署到 PaaS云端,便于管理不同版本之间的抵触。应用软件管理员:便于配置、调优和监视程序运行性能。应用程序最终用户:这时 PaaS云效劳相当于SaaS 云效劳。
半平台 PaaS 平台
软件层中只装置了操作系统,其他的留给租户自己处置。最为流行的半平台 PaaS应用是开启操作系统的多用户形式,为每个租户创建一个系统账号,并对他们做权限控制和计算资源配额管制。半平台PaaS更关注租户的类型,如研发型、文秘型等,针对不同类型的租户做不同的权限和资源配置。 Linux 操作系统的多用户形式和 Windows 操作系统的终端效劳都属于半平台 PaaS,私有办公云多采用半平台 PaaS。全平台 PaaS 全平台 PaaS
装置了应用软件依赖的全部平台软件(操作系统、数据库、中间件、运行库)。不同于半平台PaaS,全平台 PaaS是针对应用软件来做资源配额和权限控制的,虽然最终还需要通过账号实现。公共云多采用全平台 PaaS。
SaaS 是“Software as a Service”的首字母缩写,意为软件即效劳。简言之,就是软件部署在云端,让用户通过因特网来使用它,即云效劳提供商把 IT 系统的应用软件层作为效劳出租进来,而消费者可以使用任何云终端设备接入计算机网络,然后通过网页阅读器或者编程接口使用云端的软件。这进一步降低了租户的技术门槛,应用软件也无须自己装置了,而是直接使用软件,如图所示。
租用他人的 IaaS 云效劳,自己再搭建和管理平台软件层和应用软件层。租用他人的 PaaS 云效劳,自己再部署和管理应用软件层。自己搭建和管理根底设备层、平台软件层和应用软件层。
复杂: 软件庞大、装置复杂、使用复杂、运维复杂,单独购置价格昂贵,如 ERP 、CRM 系统及可靠性工程软件等。主要面向企业用户模块化构造:按功能划分成模块,租户需要什么功能就租赁什么模块,也便于按模块计费,如 ERP系统划分为订单 、采购、库存、消费、财物等模块。多租户:能适宜多个企业中的多个用户同时操作,也就是说,使用同一个软件的租户之间互不干扰。租户一般指单位组织,一个租户包含多个用户。多币种、多语言、多时区支持 :这一点对于公共云尤其明显,因为其消费者来自四面八方。非强交互性软件 :假设网络延时过大,那么强交互性软件作为SaaS 对外出租就不太适宜,会大大降低用户的体验度,除非改形成弱交互性软件或者批量输入/输出软件。
企事业单位的业务处置类软件:这类软件一般被单位组织用来处置提供商、员工、投资者和客户相关的业务,如开具发票、资金转账、库存管理及客户关系管理等。协同工作类软件:这类软件用于团队人员一起工作,团队成员可能都是单位组织内部的员工,也可能包含外部的人员。例如日历系统、邮件系统、屏幕分享工具、协作文档创作、会议管理及在线游戏。办公类软件:这类软件用于进步办公效率,如文字处置、制表、幻灯片编辑与播放工具,以及数据库程序等。基于SaaS云效劳的办公软件 具备协同的特征,便于分享,这是传统的本地化办公软件所没有的。软件工具类:这类软件用来处置安全性或兼容性问题,以及在线软件开发,如文档转换工具、安全扫描和分析工具、合规性检查工具及线上网页开发等。
实时处置软件 :比如飞行控制系统、工厂作业机器人控制等,这类软件要求任务完成时间非常精准(甚至到达微秒级)。假设云化,单单横亘在 SaaS云端与消费者之间的网络延时就是一个难以接受的不可控因素,更不要说其他因素了。
时时产生并处置大量消费者数据的软件:诸如视频监控、环境信息搜集处置等时时产生并要处置大规模的数据信息(可能每秒达 GB级)的软件,在目前和将来几年内的因特网宽带条件下,不适宜云化,因为如此大规模的数据很难实时传输到 SaaS 云端停止处置。关键软件:这类软件假设运行异常,将会导致人员伤亡或者严重财富损失。为了进步这类软件的可靠性,最主要的方法是降低软件的复杂度——软件自身的复杂度和运行环境的复杂度,因为越简单就越可靠。而SaaS 云效劳环境包含着复杂的软/硬件栈(9 层的 IT系统),以及不可预测的网络带宽、延时、丢包因素,绝对不适宜云化此类关键软件并以公共 SaaS 云效劳形式交付给用户使用。