前一阵子这几个概念炒得很火,时不时有有叫XaaS的产品上市,这几个概念本身也不容易理解,所以很多人都是云里雾里,不知道有什么区别。因此本文以通俗的例子和语言来解释一下这几个概念到底是什么意思。

一个例子

很多人举例子,都使用了一个做披萨的例子,但是这个例子实际上是不太恰当了,完全脱离了本意,与实际场景也很难对应上。为了更好地理解,我直接以这些概念本身应用的场景作为例子来讲解。

比如说,你有一家制造衣服的工厂,你准备把工厂里面的衣服通过网上渠道卖出去。这是这件事情的出发点。

接下去,你从朋友那里了解到,弄一个电商系统就可以了,这样就可以把衣服放到网上去卖,顾客可以在你的电商系统上面买衣服。

再接下去,你继续了解到,要找一个产品经理设计一个电商系统。所以这时候你找了一个产品经理。

之后,产品经理把电商系统设计好了,他告诉你,需要程序员把设计好的东西开发出来,他还告诉你,分别至少需要一个前端程序员和一个后端程序员。

你又问什么要这么多人,产品经理告诉你,后端程序员写业务逻辑,前端程序员写页面展示,他们通过接口传输数据,这叫前后端分离。

再接下来,你找了程序员,东西也开发好了,程序员告诉你,这东西还不能直接用,要放到服务器上面。

接下去你又买了服务器,程序员有告诉你,他不会部署服务器,要找专门的运维,才能部署服务器。

于是你又招了运维人员来,服务器也部署好了,这时候程序员告诉你,还是不能用,还要搭软件的环境,因为是他是用PHP语言写的,还要搭一个PHP的环境才能运行程序。

最后,环境搭好了,程序终于跑起来了,你也终于累瘫了。为了弄一个电商系统,你总共招了1个产品经理,1个前端工程师,1个后端工程师,1个运维工程师,还买了一台服务器。

SaaS

这个时候,你意识到,自己只是想要建立网上渠道来卖衣服,只要弄个别人已经开发好的电商系统就够了,完全没必要自己去开发一套新的,能用就好,管他谁开发的呢。

这就是SaaS(Software as a Service,软件即服务)的概念,直接购买第三方服务商已经开发好的软件来使用,从而免去了自己去组建一个团队来开发的麻烦。

我们可以算一笔账,来计算使用SaaS节省下来的费用,以上面的这个例子,搭建这样一个团队,按最低配置算,需要至少4人,开发周期至少2月,人力成本算平均1.5W/人·月,那就至少需要12W,这还不包括后期维护的成本。但是如果使用SaaS,每年只需要付几百到几千的费用,就能达到更好的效果,两者相比,差距很明显。

实际上,第三方服务商开发这样一套软件,也需要这样多的成本,为什么他就能挣钱呢?原因在于,他开发出来的软件,不是只卖给一个人用的,可能卖给了成千上万的人使用。可以按照一个用户一年1000元计算,只要能够卖给120个用户以上,就稳赚不赔了。这就是SaaS的商业模式。

需要注意的是,SaaS卖的不仅是软件,而是对软件开箱即用的服务,软件是部署在SaaS服务商那里的,不需要客户自行部署软件运营的环境和服务器等。像有赞、十二赞、微盟等,就是典型的SaaS服务商,注册账号后就可以直接使用一套完整的电商系统,无需自己进行任何开发工作。

你发现,使用SaaS,上面原本要招的4个人你一个都不用招了,服务器也不用买了,省了一大笔开支。

BaaS

用了一段时间的SaaS后,你发现,SaaS好是好,但是缺点也有,那就是东西都被定好了,自己没得改。自己想在某个页面加一个亮闪闪的东西上去,结果被告知没得改,SaaS服务商答复说,那么多用户在用,不能为了你一个人而改。

你了解到,自己要改的东西,只需要前端改了就可以了,后端部分完全不需要改。这时候你动脑筋,可以招了前端工程师,前端页面自己做,后端部分还是用服务商的。

这就是BaaS(Backend as a Service,后端即服务),自己只需要开发前端部分,剩下的所有都交给了服务商。经常说的“后端云”就是BaaS的意思,例如像LeanCloud、Bomb等就是典型的BaaS服务商。

BaaS模式跟SaaS模式比较,多出了需要自己开发前端。这就至少需要1个前端工程师了,但是这种方案跟最初的方案比,还是能够省下1个产品经理,1个后端工程师,1个运维和1台服务器。

PaaS

随着业务规模的变大,你发现,即便是使用BaaS,也有很多不能满足的地方,因为后端被完全限制了,后端部分决定了你的系统能够做什么事情,前端只是做一个展现以及作为做这些事情的一个渠道,后端做不到的事情,前端无论怎么改都做不到。

于是你又招了1个后端工程师来进行开发,考虑到需要自行设计业务逻辑,同时也招了1个产品经理,自行设计开发一个电商系统。但是软件运行的环节还是使用服务商的。

这就是PaaS(Platform as a Service,平台即服务),自己只需关心软件本身,至于软件运行的环境由服务商提供。我们常说的云引擎、云容器等就是PaaS。例如你的程序是用PHP写的,你就可以选一个已经搭建好PHP运行环境的平台,如果是用Python写的,就选一个搭建好Python环境的,以此类推。

使用PaaS跟最初的方案比,能够省下1个运维和1台服务器。

IaaS

使用了一段时间的PaaS,你发现缺点是,可能有的环境服务商没提供或者支持不好,于是你决定环境还是自己进行搭配,服务商只需要提供能够运行的服务器就可以了。

这就是IaaS(Infrastructure as a Service,基础设施即服务),由服务商提供服务器,一般为云主机,客户自行搭建环境部署软件。例如阿里云、腾讯云等就是典型的IaaS服务商。

总结

从上面的过程中可以看出,这些服务跟最初的方案比较,只是将一部分工作交给了第三方服务商去完成,也就是将一部分不重要的工作交给更为专业的第三方服务商,我们可以做出一个以下的对比图(打勾表示需要自己做的部分,打叉表示交给第三方服务商做的部分):

从上图中应该就可以很明显看出,各种服务的区别,下次要辨别某个服务属于什么类型,就直接拿出这张图比较吧。

一文搞懂什么是SaaS、BaaS、PaaS和IaaS相关推荐

  1. 一文搞懂RNN(循环神经网络)

    基础篇|一文搞懂RNN(循环神经网络) https://mp.weixin.qq.com/s/va1gmavl2ZESgnM7biORQg 神经网络基础 神经网络可以当做是能够拟合任意函数的黑盒子,只 ...

  2. 一文搞懂 Python 的 import 机制

    一.前言 希望能够让读者一文搞懂 Python 的 import 机制 1.什么是 import 机制? 通常来讲,在一段 Python 代码中去执行引用另一个模块中的代码,就需要使用 Python ...

  3. python语言语句快的标记是什么_一文搞懂Python程序语句

    原标题:一文搞懂Python程序语句 程序流 Python 程序中常用的基本数据类型,包括: 内置的数值数据类型 Tuple 容器类型 String 容器类型 List 容器类型 自然的顺序是从页面或 ...

  4. 一文搞懂 Java 线程中断

    转载自   一文搞懂 Java 线程中断 在之前的一文<如何"优雅"地终止一个线程>中详细说明了 stop 终止线程的坏处及如何优雅地终止线程,那么还有别的可以终止线程 ...

  5. 一文搞懂HMM(隐马尔可夫模型)-Viterbi algorithm

    ***一文搞懂HMM(隐马尔可夫模型)*** 简单来说,熵是表示物质系统状态的一种度量,用它老表征系统的无序程度.熵越大,系统越无序,意味着系统结构和运动的不确定和无规则:反之,,熵越小,系统越有序, ...

  6. 一文搞懂如何使用Node.js进行TCP网络通信

    摘要: 网络是通信互联的基础,Node.js提供了net.http.dgram等模块,分别用来实现TCP.HTTP.UDP的通信,本文主要对使用Node.js的TCP通信部份进行实践记录. 本文分享自 ...

  7. 【UE·蓝图底层篇】一文搞懂NativeClass、GeneratedClass、BlueprintClass、ParentClass

    本文将对蓝图类UBlueprint的几个UClass成员变量NativeClass.GeneratedClass.BlueprintClass.ParentClass进行比较深入的讲解,看完之后对蓝图 ...

  8. 一文搞懂AWS EC2, IGW, RT, NAT, SG 基础篇下

    B站实操视频更新 跟着拉面学习AWS--EC2, IGW, RT, NAT, SG 简介 长文多图预警,看结论可以直接拖到"总结"部分 本文承接上一篇文章介绍以下 AWS 基础概念 ...

  9. 一文搞懂CAN FD总线协议帧格式

    目录 1.为什么会出现CAN FD? 2.什么是CAN FD? 3.CAN FD和CAN总线协议帧异同 4.解析CAN FD帧结构 4.1.帧起始 4.2.仲裁段 4.3.控制段 4.4.数据段 4. ...

最新文章

  1. oracle数据库dba密码,Oracle数据库的找回DBA账户的密码
  2. 能否把指针变量本身传递给一个函数?
  3. ASP.NETSpring.NETNHibernate最佳实践(三)——第2章环境准备
  4. 2016 年 Linux 领域的十大新闻,你有关注吗?
  5. C / C++ 软件项目的目录结构
  6. 2016年第七届蓝桥杯 - 省赛 - C/C++大学A组 - I. 密码脱落
  7. Ubuntu下命令行cd进不了/home/用户目录
  8. 聊聊Interlocked.CompareExchange吧?
  9. 力扣:组合总和 II DFS剪枝
  10. javascript自定义事件应用实例
  11. C++对单向链表进行排序
  12. tkinter的可视化拖拽工具_拒绝丑图表,教你用最简单的方法做最炫酷的可视化图表!附教程...
  13. 自己动手实现一个简单的 IOC,牛皮!!
  14. window7磁盘分区
  15. javaweb单点登录的三种实现方式
  16. springboot毕设项目流浪动物救助和领养平台e1yqy(java+VUE+Mybatis+Maven+Mysql)
  17. 协同办公“战役”,华为输了吗?
  18. ShareSDK QQ平台注册
  19. Twincat NC PTP
  20. 边缘计算网关的定制方案

热门文章

  1. 如何写一份项目计划书PPT
  2. 《NoSQL入门》关于NoSQL
  3. 简易 J-Link 3.3V 兼容 5V 目标系统
  4. 一键图片去水印工具,两秒去除水印!
  5. 腾讯暑期实习生提前批面试(一面)
  6. LeetCode-13. 罗马数字转整数(java)
  7. android系列刘海屏适配
  8. Macfee 删除办法
  9. 【智能优化算法之GOA优化】
  10. 计算机网络连接在哪,本地连接在哪里找【四种方法】