最近在准备一些科普性的知识内容,发现大家对于一些基础性的知识概念还是有点模糊。今天先来简单介绍一下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的区别的更多相关文章

  1. 【涂鸦物联网足迹】API及SDK介绍

    前序系列文章>>> [涂鸦物联网足迹]物联网主流通信方式 我们系列文章,都会围绕如何完成一款智能"隔空接吻机"的开发.希望能帮到各异地恋or异国恋的情侣们! 本文 ...

  2. 【涂鸦物联网足迹】涂鸦云平台消息服务—顺带Pulsar简单介绍

    前序系列文章>>> [涂鸦物联网足迹]涂鸦云平台标准指令集 开放消息平台主要通过 Pulsar 主动推送各种事件数据给外部合作伙伴,以满足合作伙伴对消息实时性和消息持久化的要求. 一 ...

  3. 制作一个有趣的涂鸦物联网小项目(涂鸦模组SDK开发 CBU BK7231N WiFi+蓝牙模组 HSV彩色控制)

    实现的功能: l  APP控制月球灯 l  本地月球灯控制 l  APP控制"大白"颜色,实现各种颜色变身 l  门状态传感器状态APP显示 l  网络状态指示灯,连接服务器长亮, ...

  4. iOS的非常全的三方库,插件,大牛博客

    转自: http://www.cnblogs.com/zyjzyj/p/6015625.html github排名:https://github.com/trending, github搜索:http ...

  5. iOS开发之资料收集

    github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自github:https://github ...

  6. github上关于iOS的各种开源项目集合(转)

    UI 下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件. SVPullToRefresh - 下拉刷新控件. MJRefresh - 仅需一行代码就可以为UITable ...

  7. iOS 第三方库、插件、知名博客总结

    iOS 第三方库.插件.知名博客总结 用到的组件 1.通过CocoaPods安装 项目名称 项目信息 AFNetworking 网络请求组件 FMDB 本地数据库组件 SDWebImage 多个缩略图 ...

  8. iOS -- 开源项目和库

    TimLiu-iOS 目录 UI 下拉刷新 模糊效果 AutoLayout 富文本 图表 表相关与Tabbar 隐藏与显示 HUD与Toast 对话框 其他UI 动画 侧滑与右滑返回手势 gif动画 ...

  9. iOS非常全的第三方库

    iOS ● 非常全的三方库.插件.大牛博客等等   github排名:https://github.com/trending, github搜索:https://github.com/search. ...

随机推荐

  1. ATM管理系统(三)

    一.作业信息 博客班级 软件工程 作业要求 作业要求 作业目标 你理解的作业目标具体内容 学号 3180701218 二.题目要求 编写一个ATM管理系统,语言不限,要求应包括以下主要功能:(1)开户 ...

  2. window下开启关闭mysql服务

    cmd:管理员模式 net start mysql net stop mysql

  3. Java基础教程——序列化

    序列化 序列化:Serialize,将Java对象写入IO流(可以保存在数据库,文件等) 反序列化:Deserialize,从IO流中读取并恢复Java对象. 这么理解:序列化就是把对象封印起来,反序 ...

  4. linux下安装python3.7.1

    一.安装依赖环境 输入命令:yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readlin ...

  5. 下载配置VNC

    VNC通常使用连接图形化系统电脑可以安装了Gnome或者KDE yum autoremo ve tigervnc-server //移除 vncreboot //重启yum install tiger ...

  6. 一条 sql 的执行过程详解

    写操作执行过程 如果这条sql是写操作(insert.update.delete),那么大致的过程如下,其中引擎层是属于 InnoDB 存储引擎的,因为InnoDB 是默认的存储引擎,也是主流的,所以 ...

  7. moviepy音视频剪辑:使用fl_time进行诸如快播、慢播、倒序播放等时间特效处理的原理和可能遇到的坑

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt+moviepy音视频剪辑实战 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一. ...

  8. 老猿Python重难点知识博文汇总

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 除了相关教程外,老猿在学习过程中还写了大量的学习随笔,内容比较杂,文章内容也参差不齐,为了方便,老猿 ...

  9. PyQt(Python+Qt)学习随笔:model/view架构中的两个标准模型QStandardItemModel和QFileSystemModel

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.PyQt中的标准模型 PyQt和Qt提供了两个标准模型QStandardItemModel和QF ...

  10. PyQt Designer中带参数的信号为什么匹配不到带参数的槽函数?

    老猿在学习ListView组件时,想实现一个在ListView组件中选中一个选择项后触发消息给主窗口,通过主窗口显示当前选中的项的内容. 进入QtDesigner后,设计一个图形界面,其中窗口界面使用 ...