本文英文原址:https://m.oursky.com/saas-paas-and-iaas-explained-in-one-graphic-d56c3e6f4606

Photo by Cathal Mac an Bheatha via Unsplash
The Pizza-as-a-Service metaphor was firstly introduced by Albert Barron in 2014 as a visualization of the differences between Infrastructure-as-a-service (IaaS), Platform-as-a-service (PaaS) and Software-as-a-service (SaaS). At first sight it looks brilliant — but if you look in depth, it falls apart. This diagram wants to illustrate that you need to do less and less, but the items that are listed and increasingly “outsourced” don’t fit the comparison. I’ll look at the services in the original diagram and suggest a better comparison for people who want to choose which services to use.
A good visualization of a false concept.Pizza as a Service — by Albert Barron
The basic concept is in each case you get a pizza, though in some cases, you do all of the work; in other cases you have other people do the work for you.
Traditional On-Premises Deployment: Made at Home
Infrastructure-as-a-Service: Take and Bake
Platform-as-a-Service: Pizza Delivery
Software-as-a-Service: Dining out
In the diagram, the amount of work you do is in the following order:
Made at home > Take and bake > Pizza delivery > Dining out
Let’s focus on two stages first: if “Traditional On-Premises Deployment = Made at home”, why does “Infrastructure-as-a-Service = Take and bake”?At first glance, it means that the service provider gives you a pre-made pizza, so you can bake it in your own kitchen without making a mess. However, this is not how Infrastructure-as-a-Service differs from Traditional On-Premises Deployment.
The X-aaS concept should be interpreted the other way round.Image generated by David Ng, Oursky
Rather than thinking of the consumer doing less and less, let’s think about a product that is increasingly customizable because less is pre-made by the service provider.
By adopting an X-aaS, you don’t need to worry about a certain “X” — be it infrastructure, platform, software or pizza. Instead of forcing the X-aaS model into existing pizza services, I will be dissecting the steps to making an increasingly customized pizza.
Enjoy your packaged meal: Pizza-as-a-Service.
Pizza-as-a-Service means you can enjoy a pizza (a fully finished product) upon order. You call the pizza delivery so the pizza is already designed, prepared and baked by somebody else and arrives hot and ready to eat.
In the world of SaaS, we only need to sign up to use the service. We can customize some features, layouts, or users (pizza toppings), but we never need to worry about the deployment and framework the project is used (just like how the service providers put our orders together for us). It also means we can’t choose this brand of cheese over that, or how long they choose to bake it for. If you don’t like their crust, you’ll have to choose another company.So what should be the service layer right below Pizza-as-a-Sevice?
Semi-customized: Ready-to-cook.
The idea of “take-and-bake” in the original diagram was close, but it misses a few key ideas. The take-and-bake doesn’t allow customization, which is what IaaS and PaaS offer. IaaS and PaaS take care of some backend things you don’t want to deal with, and probably come with API’s, but you choose what you can add.
Instead of a “take-and-bake”, the next level down is more like walking into a kitchen with a ready-to-cook package of ingredients. IaaS and PaaS are when you want to make your own pizza, but you don’t need to worry about buying ingredients, prep work, or having the right tools. You can focus on rolling out the dough, assembling the pre-washed ingredients to your taste and factors like size and thickness before sticking it into someone’s provided oven.
If you use IaaS or PaaS, you can focus on your own business logic and implement your user interface on a reliable platform. The service provider manages the hosting and hardware technologies for you.
This option might not be suitable for every end-user. At least you need some pizza-making skills to turn the dough into a pizza.
Fully customized: Kitchen-as-a-Service.
Kitchen equipment is infrastructural investment. For engineers, this is where your code runs. It also includes all the infrastructure you need (such as runtime, storage, networking). Without it, your product doesn’t go anywhere, but on the other hand, it doesn’t affect the nature of the product itself.
For a pizza, the next layer below is buying your own ingredients to prepare exactly the pizza you want, with the specific brands you like. But you don’t have to worry about the oven, rolling pin, whether you counter is big enough, or the pizza cutter.Now, you have absolute control on what pizza you are going to make, but maybe the rental kitchen doesn’t have every type of tool you want.
Fully in-house: Prepare ingredients + cooking equipment from scratch.
For hard core pizza makers — not only will you want to choose all your pizza ingredients and make it from scratch, you will also want complete control of all the tools in your kitchen: the oven that has the exact settings and capabilities you want, the pizza stone many places don’t have, or let your dough sit overnight at the most optimal corner of your fridge. And finally, you can drizzle that homemade chilli oil on top and savor it fresh out of the oven.
You may think that’s overkill — but in real world, sometimes the effort is necessary if you can’t find a service that will let you customize for that one essential deployment setting, such as a firewall configuration or that specific network setting requirements.
Examples of IaaS, Paas, and SaaS.Image generated by Oursky
SaaS (Software-as-a-Service)
You can sign up and use the software directly: e.g. Zendesk, Paypal, even more customer-oriented ones like Twitter, Facebook, Instagram
PaaS (Platform-as-a-Service)
You can build your software on top of the platform: e.g. Heroku, SalesForce, Google App Engine
Besides building everything from the platform level, you can also leverage the benefits from some Backend-as-a-Service in the market. E.g. Skygear, Firebase, Kii, Kinvey
IaaS (Infrastructure-as-a-Service)
Provides you some place (virtual machines) to deploy your app. e.g. Amazon Web Service EC2, Digital Ocean, RackSpace Cloud
On-Premises Deployment
So you have your own datacenter and servers — it’s completely customized
IaaS and PaaS save us a huge amount of preparation work, so we can customize our “pizza“ and bake it fast. The best type of service is whatever suits your product best.
Hope these examples clear up these concepts.
If you found this piece helpful, follow Oursky Publication for more startup/entrepreneurship/project management/app dev hacks! 												

SaaS,PaaS和IaaS在一张图中进行了解释相关推荐

  1. R语言可视化包ggplot2在一张图中画出两条线实战

    R语言可视化包ggplot2在一张图中画出两条线实战 目录 R语言可视化包ggplot2在一张图中画出两条线实战

  2. python 子图_python 实现在一张图中绘制一个小的子图方法

    有时候为了直观展现图的信息,可以在大图中添加小子图的方式进行数据分析,如下图所示: 具体的代码如下:该图连接了数据库,当然重要的不是数据展示,而是添加子图的方法. import matplotlib. ...

  3. python画50个图-python 实现在一张图中绘制一个小的子图方法

    有时候为了直观展现图的信息,可以在大图中添加小子图的方式进行数据分析,如下图所示: 具体的代码如下:该图连接了数据库,当然重要的不是数据展示,而是添加子图的方法. import matplotlib. ...

  4. python画简便的图-python 实现在一张图中绘制一个小的子图方法

    有时候为了直观展现图的信息,可以在大图中添加小子图的方式进行数据分析,如下图所示: 具体的代码如下:该图连接了数据库,当然重要的不是数据展示,而是添加子图的方法. import matplotlib. ...

  5. MATLAB中利用cftool导出代码实现一张图中拟合多条平滑曲线

    MATLAB中自带的cftool拟合工具箱不能将多条曲线同时画在同一副图中,而常规的plot()函数又不能拟合平滑直线,接下来总结一种可以利用cftool导出的代码,在一张图中拟合多条平滑曲线. 首先 ...

  6. R语言ggplot2可视化、在一张图中画出两条曲线(two lines in same ggplot2 graph)、使用pdf函数将ggplot2可视化图像保存到指定目录的pdf格式文件中

    R语言ggplot2可视化.在一张图中画出两条曲线(two lines in same ggplot2 graph).使用pdf函数将ggplot2可视化图像保存到指定目录的pdf格式文件中 目录

  7. 【实践】origin画局部放大图,并和原图在一张图中

    [实践]origin画局部放大图,并和原图在一张图中 新建项目只有两列,列数不够通过右键选择Add New Column增加新列. 新增的列默认为Y(对应纵坐标),可以选中新增列右键,选择Set As ...

  8. python一张图-python 实现在一张图中绘制一个小的子图方法

    有时候为了直观展现图的信息,可以在大图中添加小子图的方式进行数据分析,如下图所示: 具体的代码如下:该图连接了数据库,当然重要的不是数据展示,而是添加子图的方法. import matplotlib. ...

  9. LeetCode 2065. 最大化一张图中的路径价值

    文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述   给你一张无向图,图中有 ...

最新文章

  1. 欢迎参与2020年云栖大会——引领企业基础设施云化
  2. P1111 修复公路 (prim)
  3. 欢乐纪中某B组赛【2019.1.26】
  4. 修改mysql文件的存储路径
  5. 管理感悟:深入理解软件
  6. 【Java与智能设备】4_1 Activity的创建和跳转
  7. linux 转换格式,linux下常见音频格式之间的转换
  8. MySQL学习笔记——多表查询
  9. 大盘为何回血以及盐湖股份和科达制造
  10. 风决定要走,云如何挽留!程序员朋友离职有感
  11. CentOS 7下的软件安装方法及策略
  12. EMV技术学习和研究(五)脱机数据认证之DDA
  13. ubuntu 安装软件 tar.gz deb
  14. ngnix配置cgi和fastcgi
  15. Spring Boot与Shiro实现权限管理02
  16. 阿里巴巴并购雅虎意愿耐人寻味 或迎来转机
  17. Excel·VBA一键计算每月合计
  18. Python数据分析实战之葡萄酒质量分析
  19. jt808终端鉴权_驾培协议和jt808协议的区别 | 车载GPS和视频平台产品经理
  20. iOS 技术 info.plist文件的常用配置总结

热门文章

  1. Animation动画效果的实现
  2. 计算机知识培训感言,关于计算机培训心得体会
  3. 制作自己的Web地图
  4. Wave Driver介绍-7(驱动中对音量的控制操作-非硬件音量控制)
  5. 【精读文献】1 用于改进脑电图癫痫分析的自监督图神经网络
  6. HTML、CSS中雪碧图的使用
  7. Linux文件系统体系结构
  8. 回溯法n后问题(具体代码实现,详细分析)
  9. 首架无人机运送移植器官 有助于克服延误状况
  10. 吻过你这三个地方的男人,定是对你动了真情,错不了