【涂鸦物联网足迹】用煲仔饭来说明IaaS/PaaS/SaaS的区别
最近在准备一些科普性的知识内容,发现大家对于一些基础性的知识概念还是有点模糊。今天先来简单介绍一下IaaS/PaaS/SaaS的区别~
其实还有一个On-Premises(本地部署)的概念,也可以一并介绍。
IaaS/PaaS/SaaS的区别
先来一个简单的例子,区分一下这几个概念吧。以我的午餐“煲仔饭”为例(例子是拾人牙慧,自己基于理解,再另外举了个例子):
不管是我自己来做煲仔饭也好,还是别人帮我做煲仔饭也好,我们都需要以下原材料:
米饭、配料、菜品(肉类、蔬菜等)、电磁炉、锅、电、餐桌、饮料(煲仔饭必备)
那么,根据做煲仔饭的人的情况可以分为以下几种情况:
On-Premises:自己负责全部的流程,包括原材料的购买、制作等;
IaaS:买成品(米饭、调料和菜品已经搭配好),带回家用自己的厨具来制作;
PaaS:直接点外卖,只需要自己拿出餐桌和饮料就行;
SaaS:直接去店里吃,所有的东西由店家提供。

IaaS/PaaS/SaaS的定义
我们回过头来,再来看这个几个词的定义(来自百科):
IaaS
Infrastructure as a Service,即基础设施即服务。指把IT基础设施作为一种服务通过网络对外提供,并根据用户对资源的实际使用量或占用量进行计费的一种服务模式。
PaaS
Platform as a Service,提供软件部署平台,抽象掉了硬件和操作系统细节,可以无缝地扩展。开发者只需要关注自己的业务逻辑,不需要关注底层。即PaaS 为生成、测试和部署软件应用程序提供一个环境。
SaaS
Software as a Service,软件即服务,即通过网络提供软件服务。
SaaS目前的瓶颈
因为云计算的发展,现在这几个概念都很深入人心。不同的企业出于不同的考虑,会采用不同的商业模式,而SaaS不仅适用于中小型企业,所有规模企业都可以从SaaS中获利。但是因为技术的限制以及市场成熟度的问题,SaaS会面临以下的困境:
技术方面:
目前SaaS软件个性化的定制技术尚未成熟。SaaS提供的服务,注定了它需要在通用的SaaS平台基础上满足客户定制化的需求。传统软件的定制服务是在软件开发阶段就完成的,所以就对定制化能力要求不高。但是SaaS需要在软件使用过程中针对需求的变化更新定制,而且在定制的时候不能影响其他用户的使用。还有就是,SaaS的操作必须简单,节省客户的学习成本。上面两点,使得SaaS的技术开发更加复杂。传统软件的经验在SaaS这块推不开。
市场制度方面
目前市场上对于SaaS方面的制度还是比较混乱的。当前SaaS市场上,SaaS服务商专注于为大型客户提供服务,而忽视了中小型客户。而且,因为SaaS的盈利模式,导致一些SaaS服务商虽然占有大量的优质客户,但是却没有加速SaaS的推广。其次就是SaaS在国内的需求一直不能落地。这个情况可以参考知乎的一个回答:中国的软件为什么没有国外的发达?
数据安全方面
另外,国内对于软件这块的制度,一直不够完善。云端的数据存储问题以及数据安全问题,也是客户对于SaaS服务一直心存疑虑的主要因素。因为SaaS服务的特性,使得数据的安全需要是一种动态安全不仅要保证数据不丢失,还需要保证用户在业务增减等原因导致的安全需求发生变化时能灵活调整。同时,由于平台被多租户共享,数据信息交互复杂,对数据权限的要求极高。对于网络安全而言,互联网的稳定性给SaaS的应用提出了巨大的挑战。企业内网和互联网连接的不确定性太高,无论何种因素引起的网络稳定性的波动都会影响软件的使用,甚至造成用户数据的丢失。
总结
云计算的发展是大趋势,出于SaaS本身技术优势、客户使用SaaS的资金投入少、维护和管理成低,SaaS的发展也是一种必然。之前的发展需要:
加大研发力度,解决个性化定制问题
多方协助,共同规范SaaS市场的竞争秩序
加强数据及网络安全防范
【涂鸦物联网足迹】用煲仔饭来说明IaaS/PaaS/SaaS的区别的更多相关文章
- 【涂鸦物联网足迹】API及SDK介绍
前序系列文章>>> [涂鸦物联网足迹]物联网主流通信方式 我们系列文章,都会围绕如何完成一款智能"隔空接吻机"的开发.希望能帮到各异地恋or异国恋的情侣们! 本文 ...
- 【涂鸦物联网足迹】涂鸦云平台消息服务—顺带Pulsar简单介绍
前序系列文章>>> [涂鸦物联网足迹]涂鸦云平台标准指令集 开放消息平台主要通过 Pulsar 主动推送各种事件数据给外部合作伙伴,以满足合作伙伴对消息实时性和消息持久化的要求. 一 ...
- 制作一个有趣的涂鸦物联网小项目(涂鸦模组SDK开发 CBU BK7231N WiFi+蓝牙模组 HSV彩色控制)
实现的功能: l APP控制月球灯 l 本地月球灯控制 l APP控制"大白"颜色,实现各种颜色变身 l 门状态传感器状态APP显示 l 网络状态指示灯,连接服务器长亮, ...
- iOS的非常全的三方库,插件,大牛博客
转自: http://www.cnblogs.com/zyjzyj/p/6015625.html github排名:https://github.com/trending, github搜索:http ...
- iOS开发之资料收集
github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自github:https://github ...
- github上关于iOS的各种开源项目集合(转)
UI 下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件. SVPullToRefresh - 下拉刷新控件. MJRefresh - 仅需一行代码就可以为UITable ...
- iOS 第三方库、插件、知名博客总结
iOS 第三方库.插件.知名博客总结 用到的组件 1.通过CocoaPods安装 项目名称 项目信息 AFNetworking 网络请求组件 FMDB 本地数据库组件 SDWebImage 多个缩略图 ...
- iOS -- 开源项目和库
TimLiu-iOS 目录 UI 下拉刷新 模糊效果 AutoLayout 富文本 图表 表相关与Tabbar 隐藏与显示 HUD与Toast 对话框 其他UI 动画 侧滑与右滑返回手势 gif动画 ...
- iOS非常全的第三方库
iOS ● 非常全的三方库.插件.大牛博客等等 github排名:https://github.com/trending, github搜索:https://github.com/search. ...
随机推荐
- Folx的分类标签规则怎么自定义
一个全新的标签,没有任何对应的标签规则,只是一个空有躯壳没有灵魂的标签,是无法用于文件自动分类的,那么如何根据大家的自身需求,创建一个相对应的标签分类规则呢? 下面小编将使用Folx 5版本为大家讲解 ...
- 从维基百科等网站复制数据和公式到MathType里编辑
在我们写论文的时候,经常会需要用一些实际案例以及数据,而这些数据和案例有很大一部分可以直接在网络上找到.但是有时候也会发现我们想要的内容和公式,从网页上复制粘贴后太模糊,不适合打印和投影.就需要我们将 ...
- Spring 事件监听机制及原理分析
简介 在JAVA体系中,有支持实现事件监听机制,在Spring 中也专门提供了一套事件机制的接口,方便我们实现.比如我们可以实现当用户注册后,给他发送一封邮件告诉他注册成功的一些信息,比如用户订阅的主 ...
- Lombok之@Builder注解
Lombok之@Builder注解 前言 Lombok大家都知道,在使用POJO过程中,它给我们带来了很多便利,省下大量写get.set方法.构造器.equal.toString方法的时间.除此之外, ...
- 最全总结 | 聊聊 Python 办公自动化之 Word(下)
1. 前言 关于 Word 文档的读写,前面两篇文章分别进行了一次全面的总结 最全总结 | 聊聊 Python 办公自动化之 Word(上) 最全总结 | 聊聊 Python 办公自动化之 Word( ...
- CentOS中安装Docker步骤
1.安装仓库所需要的软件包 yum install -y yum-utils device-mapper-persistent-data lvm2 2.设置yum加速源 yum-config-mana ...
- day6(celery原理与组件)
1.Celery介绍 1.1 celery应用举例 Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理,如果你的业务场景中需要用到异步任务,就可以考 ...
- 使用django的用户表进行登录管理
改写用户基本表 ... AUTH_USER_MODEL = 'appjwt.User' ... setting.py from django.db import models from django. ...
- 第二十三章、 Model/View便利类表格部件QTableWidget详解
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 表格部件为应用程序提供标准的表格显示工具,在表格内可以管理基于行和列的数据项,表格中的最大 ...
- ES6新特性之箭头函数与function的区别
写法不同 // function的写法 function fn(a, b){ return a+b; } // 箭头函数的写法 let foo = (a, b) =>{ return a + b ...