云计算三种服务模式SaaS、PaaS和IaaS及其之间关系(顺带CaaS、MaaS)

云计算架构图


很明显,这五者之间主要的区别在于第一个单词,而aaS都是as-a-service(即服务)的意思,这五个模式都是近年来兴起的,且这五者都是云计算的落地产品,所以我们先来了解一下云计算是什么。


1、云计算是什么?
云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。云计算甚至可以让你体验每秒10万亿次的运算能力,拥有这么强大的计算能力可以模拟核爆炸、预测气候变化和市场发展趋势。用户通过电脑、笔记本、手机等方式接入数据中心,按自己的需求进行运算。
通俗的来说云计算就是以前的服务器计算的升级版,其主要有扩展性强、廉价、虚拟化、计算能力强这几个特点。

2、IaaS是什么意思?
IaaS: Infrastructure-as-a-Service(基础设施即服务)
第一层叫做IaaS,有时候也叫做Hardware-as-a-Service。
几年前如果你想在办公室或者公司的网站上运行一些企业应用,你需要去买服务器,或者别的高昂的硬件来控制本地应用,让你的业务运行起来。
但是现在有了IaaS,你可以将硬件外包到别的地方去。IaaS公司会提供场外服务器,存储和网络硬件,你可以租用。节省了维护成本和办公场地,公司可以在任何时候利用这些硬件来运行其应用。
一些大的IaaS公司包括Amazon, Microsoft, VMWare, Rackspace和Red Hat.不过这些公司又都有自己的专长,比如Amazon和微软给你提供的不只是IaaS,他们还会将其计算能力出租给你来host你的网站。

3、PaaS是什么意思?
PaaS: Platform-as-a-Service(平台即服务)
第二层就是所谓的PaaS,某些时候也叫做中间件。你公司所有的开发都可以在这一层进行,节省了时间和资源。
PaaS公司在网上提供各种开发和分发应用的解决方案,比如虚拟服务器和操作系统。这节省了你在硬件上的费用,也让分散的工作室之间的合作变得更加容易。网页应用管理,应用设计,应用虚拟主机,存储,安全以及应用开发协作工具等。
一些大的PaaS提供者有Google App Engine,Microsoft Azure,Force.com,Heroku,Engine Yard。最近兴起的公司有AppFog, Mendix 和 Standing Cloud

4、SaaS是什么意思?
SaaS: Software-as-a-Service(软件即服务)
第三层也就是所谓SaaS。这一层是和你的生活每天接触的一层,大多是通过网页浏览器来接入。任何一个远程服务器上的应用都可以通过网络来运行,就是SaaS了。
你消费的服务完全是从网页如Netflix, MOG, Google Apps, Box.net, Dropbox或者苹果的iCloud那里进入这些分类。尽管这些网页服务是用作商务和娱乐或者两者都有,但这也算是云技术的一部分。
一些用作商务的SaaS应用包括Citrix的GoToMeeting,Cisco的WebEx,Salesforce的CRM,ADP,Workday和SuccessFactors。

目前三者的发展情况都不错,三者之间也有着较为密切的联系,其中IaaS是基础层、PaaS是平台层的,而SaaS是软件层的。
近年来随着团队协作的深入发展,CaaS、MaaS也不断的进入人们的视野,那CaaS、MaaS又是什么意思呢?
5、CaaS是什么意思?
CaaS是Communications-as-a-Service缩写,意思是通讯即服务(也可称为协作即服务)。CaaS是将传统电信的能力如消息、语音、视频、会议、通信协同等封装成API(Application Programming Interface,应用软件编程接口)或者SDK(Software Development Kit,软件开发工具包)通过互联网对外开放,提供给第三方(企业、SME、垂直行业、CP/SP以及个人开发者等等)使用,将电信能力真正作为服务对外提供。
也被称为云计算的第四种业务形式,目前国内华为已经在着手在建立CaaS的生态圈。

6、MaaS是什么意思?
MaaS(Machine as a Service)物联网即服务,这个概念伴随着物联网产生,物联网常见的两种业务形式就是MAI与MaaS,因此MaaS属于物联网业务形式的一种。
随着物联网业务量的增加,对数据存储和计算量的需求将带来对“云计算”能力的要求:
云计算:从计算中心到数据中心在物联网的初级阶段,PoP即可满足需求
在物联网高级阶段,可能出现MVNO/MMO营运商(国外已存在多年),需要虚拟化云计算技术,SOA等技术的结合实现物联网的泛在服务: TaaS (everyTHING As A Service) 。

---------------------------------------------------------------------------------------------------------------------------------

它们之间的关系主要可以从两个角度进行分析:其一是用户体验角度,从这个角度而言,它们之间关系是独立的,因为它们面对不同类型的用户。其二是技术角度,从这个角度而言,它们并不是简单的继承关系。

根据现在最常用,也是比较权威的NIST(National Institute of Standards and Technology,美国国家标准技术研究院)定义,云计算主要分为三种服务模式,而且这个三层的分法重要是从用户体验的角度出发的:

Software as a Service,软件即服务,简称SaaS,这层的作用是将应用作为服务提供给客户。

Platform as a Service,平台即服务,简称PaaS,这层的作用是将一个开发平台作为服务提供给用户。

Infrastructure as a Service, 基础设施即服务,简称IaaS,这层的作用是提供虚拟机或者其他资源作为服务提供给用户。

 

一、SaaS模式

作用

通过SaaS这种模式,用户只要接上网络,并通过浏览器,就能直接使用在云端上运行的应用,而不需要顾虑类似安装等琐事,并且免去初期高昂的软硬件投入。SaaS主要面对的是普通的用户。

产品

主要产品包括:Salesforce Sales Cloud,Google Apps,Zimbra,Zoho和IBM Lotus Live等。

功能

谈到SaaS的功能,也可以认为是要实现SaaS服务,供应商需要完成那些功能?主要有四个方面:

随时随地访问:在任何时候或者任何地点,只要接上网络,用户就能访问这个SaaS服务。

支持公开协议:通过支持公开协议(比如HTML4/5),能够方便用户使用。

安全保障:SaaS供应商需要提供一定的安全机制,不仅要使存储在云端的用户数据处于绝对安全的境地,而且也要在客户端实施一定的安全机制(比如HTTPS)来保护用户。

多住户(Multi-Tenant)机制:通过多住户机制,不仅能更经济地支撑庞大的用户规模,而且能提供一定的可定制性以满足用户的特殊需求。

二、PaaS模式

作用

通过PaaS这种模式,用户可以在一个包括SDK,文档和测试环境等在内的开发平台上非常方便地编写应用,而且不论是在部署,或者在运行的时候,用户都无需为服务器,操作系统,网络和存储等资源的管理操心,这些繁琐的工作都由PaaS供应商负责处理,而且PaaS在整合率上面非常惊人,比如一台运行Google App Engine的服务器能够支撑成千上万的应用,也就是说,PaaS是非常经济的。PaaS主要的用户是开发人员。

产品

主要产品包括:Google App Engine,force.com,heroku和Windows Azure Platform等。

功能

为了支撑着整个PaaS平台的运行,供应商需要提供那么功能?主要有四大功能:

友好的开发环境:通过提供SDK和IDE等工具来让用户能在本地方便地进行应用的开发和测试。

丰富的服务:PaaS平台会以API的形式将各种各样的服务提供给上层的应用。

自动的资源调度:也就是可伸缩这个特性,它将不仅能优化系统资源,而且能自动调整资源来帮助运行于其上的应用更好地应对突发流量。

精细的管理和监控:通过PaaS能够提供应用层的管理和监控,比如,能够观察应用运行的情况和具体数值(比如,吞吐量和反映时间)来更好地衡量应用的运行状态,还有能够通过精确计量应用使用所消耗的资源来更好地计费。

三、IaaS模式

作用

通过IaaS这种模式,用户可以从供应商那里获得他所需要的虚拟机或者存储等资源来装载相关的应用,同时这些基础设施的繁琐的管理工作将由IaaS供应商来处理。IaaS能通过它上面对虚拟机支持众多的应用。IaaS主要的用户是系统管理员。

产品

主要产品包括:Amazon EC2,Linode,Joyent,Rackspace,IBM Blue Cloud和Cisco UCS等。

功能

IaaS供应商需要在那些方面对基础设施进行管理以给用户提供资源?或者说IaaS云有那些功能?在《虚拟化与云计算》中列出了IaaS的七个基本功能:

资源抽象:使用资源抽象的方法(比如,资源池)能更好地调度和管理物理资源。

资源监控:通过对资源的监控,能够保证基础实施高效率的运行。

负载管理:通过负载管理,不仅能使部署在基础设施上的应用运能更好地应对突发情况,而且还能更好地利用系统资源。

数据管理:对云计算而言,数据的完整性,可靠性和可管理性是对IaaS的基本要求。

资源部署:也就是将整个资源从创建到使用的流程自动化。

安全管理:IaaS的安全管理的主要目标是保证基础设施和其提供的资源能被合法地访问和使用。

计费管理:通过细致的计费管理能使用户更灵活地使用资源。

接下来,稍微给大家介绍一下云的三种形式和云计算好处。

三种模式之间的关系

它们之间的关系主要可以从两个角度进行分析:其一是用户体验角度,从这个角度而言,它们之间关系是独立的,因为它们面对不同类型的用户。其二是技术角度,从这个角度而言,它们并不是简单的继承关系(SaaS基于PaaS,而PaaS基于IaaS),因为首先SaaS可以是基于PaaS或者直接部署于IaaS之上,其次PaaS可以构建于IaaS之上,也可以直接构建在物理资源之上。

[该部分转自] http://www.cnblogs.com/afarmer/archive/2011/11/18/2254069.html

 

Iaas和Paas之间的比较

    PaaS的主要作用是将一个开发和运行平台作为服务提供给用户,而IaaS的主要作用是提供虚拟机或者其他资源作为服务提供给用户。接下来,将在七个方面对PaaS和IaaS进行比较:

    1) 开发环境:PaaS基本都会给开发者提供一整套包括IDE在内的开发和测试环境,而IaaS方面用户主要还是沿用之前比较熟悉那套开发环境,但是因为之前那套开发环境在和云的整合方面比较欠缺,所以使用起来不是很方便。
    2) 支持的应用:因为IaaS主要是提供虚拟机,而且普通的虚拟机能支持多种操作系统,所以IaaS支持的应用的范围是非常广泛的。但如果要让一个应用能跑在某个PaaS平台不是一件轻松的事,因为不仅需要确保这个应用是基于这个平台所支持的语言,而且也要确保这个应用只能调用这个平台所支持的API,如果这个应用调用了平台所不支持的API,那么就需要对这个应用进行修改。
 3) 开放标准:虽然很多IaaS平台都存在一定的私有功能,但是由于OVF等协议的存在,使得IaaS在跨平台和避免被供应商锁定这两面是稳步前进的。而PaaS平台的情况则不容乐观,因为不论是Google的App Engine,还是Salesforce的Force.com都存在一定的私有API。
    4) 可伸缩性:PaaS平台会自动调整资源来帮助运行于其上的应用更好地应对突发流量。而IaaS平台则需要开发人员手动对资源进行调整才能应对。
    5) 整合率和经济性: PaaS平台整合率是非常高,比如PaaS的代表Google App Engine能在一台服务器上承载成千上万的应用,而普通的IaaS平台的整合率最多也不会超过100,而且普遍在10左右,使得IaaS的经济性不如PaaS。
    6) 计费和监管:因为PaaS平台在计费和监管这两方面不仅达到了IaaS平台所能企及的操作系统层面,比如,CPU和内存的使用量等,而且还能做到应用层面,比如,应用的反应时间(Response Time)或者应用所消耗的事务多少等,这将提高计费和管理的精确性。
    7) 学习难度:因为在IaaS上面开发和管理应用和现有的方式比较接近,而PaaS上面开发则有可能需要学一门新的语言或者新的框架,所以IaaS学习难度更低。

 PaaSIaaS
开发环境完善普通
支持的应用有限广
通用性欠缺稍好
可伸缩性自动伸缩手动伸缩
整合率和经济性高整合率,更经济低整合率
计费和监管精细简单
学习难度略难

表1. PaaS和IaaS之间的比较

未来的PK

    在当今云计算环境当中,IaaS是非常主流的,无论是Amazon EC2还是Linode或者Joyent等,都占有一席之地,但是随着Google的App Engine,Salesforce的Force.com还是微软的Windows Azure等PaaS平台的推出,使得PaaS也开始崭露头角。谈到这两者的未来,特别是这两者之间的竞争关系,我个人认为,短期而言,因为IaaS模式在支持的应用和学习难度这两方面的优势,使得IaaS将会在短期之内会成为开发者的首选,但是从长期而言,因为PaaS模式的高整合率所带来经济型使得如果PaaS能解决诸如通用性和支持的应用等方面的挑战,它将会替代IaaS成为开发者的“新宠”。

[该部分原文链接] http://www.leiphone.com/iaas-paas-and-saas.html        http://www.svnclub.com/?q=node/137

转载于:https://www.cnblogs.com/onduty/p/5672010.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/470393.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python多线程和异步性能对比_python对比线程,进程,携程,异步,哪个快

目录概念介绍测试环境开始测试测试【单进程单线程】测试【多进程 并行】测试【多线程 并发】测试【协程 异步】结果对比绘图展示概念介绍首先简单介绍几个概念:进程和线程进程就是一个程序在一个数据集上的一次动态执行过程(数据集是程序在执行过程中所需要使用的资…

uni-ui介绍uni-api

一、uni-ui介绍 安装 二、uni-api 解决uni-app中的跨域问题: "h5" : {"router" : {"mode" : "hash"},"devServer": {"https": false,"proxy": {"/web": {"target": …

推算生日的故事

小明和小强都是张老师的学生,张老师的生日是某月某日,2人都不知道张老师的生日。 生日是下列10组中一天: 3月4日 3月5日 3月8日 6月4日 6月7日 9月1日 9月5日 12月1日 12月2日 12月8日 张老师把月份告诉了小明,把日子告诉了小强…

ubuntu18.04安装python3_在 Ubuntu 18.04 上安装 Python 3.7

扩展源安装sudo apt updatesudo apt install software-properties-commonsudo add-apt-repository ppa:deadsnakes/ppa# 按回车继续sudo apt install python3.7python3.7 --version#安装pipwget https://bootstrap.pypa.io/get-pip.pypython3.7 get-pip.py#安装python3.7-devel…

一、uniapp项目(封装异步请求、moment.js时间处理、封装手势滑动组件、下载图片到本地)

一、封装异步请求: 1. 为什么要封装? 2. 封装的思路 export default (params) > {// 显示加载中uni.showLoading({title: "加载中"})return new Promise((resolve, reject) > {wx.request({...params,success(res) {resolve(res)},fail…

.net中如何发送HTTP请求网络资源

应用场景 应该说只要是需要通过发送Http请求获取网络资源的地方都要使用它,网络资源可以是指以URI来表示的资源,比如web api接口等。 HttpWebRequest .net2.0 ~ .net4.0使用HttpWebRequest 代码如下: 1 //.net2.0 ~ .net4.0使用HttpWebReque…

python ftplib_python:使用ftplib编写FTP客户端

Python中的ftplib模块Python中默认安装的ftplib模块定义了FTP类,其中函数有限,可用来实现简单的ftp客户端,用于上传或下载文件FTP的工作流程及基本操作可参考协议RFC959ftp登陆连接from ftplib import FTP #加载ftp模块ftpFTP() #设置变量ftp…

二、uniapp项目(分段器的使用、scroll-view、视频下载、转发)

一、分段器组件的使用 uniapp官方文档 <template><view class"category"><view class"category_tab"> <view class"category_tab_title"><view class"title_inner"><uni-segmented-control :curr…

HTTP 请求头中的 X-Forwarded-For

本文转载自https://imququ.com/post/x-forwarded-for-header-in-http.html 我一直认为&#xff0c;对于从事 Web 前端开发的同学来说&#xff0c;HTTP 协议以及其他常见的网络知识属于必备项。一方面&#xff0c;前端很多工作如 Web 性能优化&#xff0c;大部分规则都跟 HTTP、…

【Bash/Shell】知识总结

文章目录 1. 总体认识1.1. Shell概述1.2. 第一个Shell脚本1.3. 注释 2. 变量2.1. 定义变量2.2. 使用变量2.3. 只读变量2.4. 删除变量2.5. 变量类型2.5.1. 字符串变量2.5.2. 整数变量2.5.3. 数组变量2.5.4. 环境变量2.5.5. 特殊变量 3. 输出3.1. echo命令3.2. printf命令 4. 运算…

problem b: 一年中的第几天_第九届蓝桥杯B组试题

1.标题&#xff1a;第几天2000年的1月1日&#xff0c;是那一年的第1天。那么&#xff0c;2000年的5月4日&#xff0c;是那一年的第几天&#xff1f;注意&#xff1a;需要提交的是一个整数&#xff0c;不要填写任何多余内容。“手动分割”大小月判断&#xff1a;https://jingyan…

一、express 路由 todos案例

一、express路由 动态路由参数 params 路径参数 query 二、 todos案例 2.1 准备工作 新建一个文件夹01-demo执行npm init -y 生成package.json配置文件执行npm install express --save 安装express新建app.js文件&#xff0c;这是程序的入口文件新建db.json文件&#xff0…

Spiral Matrix I II

Spiral Matrix I Given an integer n, generate a square matrix filled with elements from 1 to n^2 in spiral order. Example Given n 3, You should return the following matrix: [[ 1, 2, 3 ],[ 8, 9, 4 ],[ 7, 6, 5 ] ]分析&#xff1a;从上&#xff0c;右&#xff0c…

二、express中间件

一、中间件引入 实现加入日志模块功能&#xff1a; 1. 我们能想到的方案&#xff1a; 将日志输出代码封装到函数中&#xff0c;然后需要日志输出的地方调用这个函数即可。 app.js文件&#xff1a; const express require(express)const app express()const myLogger (r…

移动端中如何检测设备方向的变化?

除非你的应用程序限定了只在移动设备直立状态或水平状态下使用&#xff0c;一般情况下&#xff0c;你需要调整一些设定。即便你设计的布局流畅时尚&#xff0c;你可能需要改变某些编程代码。通常有以下一些小的策略用于检测移动设备方向的改变。 orientationchange事件 你等待一…

python函数名与变量名可以一样吗_python--第一类对象,函数名,变量名

一 . 第一类对象函数对象可以像变量一样进行赋值 , 还可以作为列表的元素进行使用可以作为返回值返回 , 可以作为参数进行传递def func():def people():print(金_卡戴珊)print(oh,yes!)print(oh,baby!)return peopleret func()ret()二 . 闭包闭包 -> 函数的嵌套内层函数对外…

Mac Pro 修改环境变量

参考&#xff1a;Ubuntu 12 修改环境变量 【实战】 把 php、php-fpm、nginx、mysql 的相关命令路径添加到 用户环境变量 $ vim ~/.bash_profile alias llls -alF alias lals -A alias lls -CFexport GOROOT/usr/local/go export GOPATH/Users/jianbao/GoProjects/go-studyexpor…

三、Express 路由

一、路由 路由是指应用程序的端点(URI)如何响应客户端请求. 你可以使用app与HTTP方法相对应的Express对象的方法来定义路由. 例如,app.get()处理GET请求和app.post POST 请求。 你还可以使用app.all()处理所有HTTP方法,并使用app.use()将中间件指定为回调函数. 这些路由方法…

python程序操作的核心_python核心编程-第五章-个人笔记

1.用del删除对对象的引用>>> a 123>>>a123>>> dela>>>aTraceback (most recent call last):File"", line 1, in NameError : namea is not defined2.整型(1)布尔型 该类型取值范围只要两个值&#xff1a;布尔值True 和 布尔…

辅助同步器

java除了提供锁之外&#xff0c;还提供了一些辅助的同步器。 一、CountDownLatch 作用&#xff1a;常常要有一个线程&#xff08;master&#xff09;做汇总&#xff0c;等n个子步骤&#xff08;线程slave&#xff09;完成后才能继续操作。用join写只能等子线程完成&#xff0c;…