初学架构 : 云交付模型之Saas , Paas , Iaas

2,154 阅读8分钟

首先分享之前的所有文章 , 欢迎点赞收藏转发三连下次一定 >>>> 😜😜😜
文章合集 : 🎁 juejin.cn/post/694164…
Github : 👉 github.com/black-ant
CASE 备份 : 👉 gitee.com/antblack/ca…

一 . 前言

这一篇主要来了解一些架构中的专业术语 , 他们的展现形式以及大概的使用场景.

首先先学习一些前置知识点 :

云计算

在一些书籍里面 , 云计算被看作一种可远程提供可扩展可测量的资源的分布式计算的特殊形式 , 以我个人的见解 , 云计算核心是三个概念 : 云 -> 资源 -> 计算

首先是云 , 当初看到这个概念还有点费解 , 云在哪 , 云是什么结构. 现在想一想 , 云就是一种互联网换种概念的叫法 , 只不过它的特点在于有私有有限的边界.

其次是资源 , 资源是个很广义的概念 , Rest 协议中的一切都被看成一种资源 . 在IT的世界里 , 资源无处不在 , 连程序员本身也被看成资源 : 什么 ? 加需求 ? 对不起 , 资源不够 , 排期吧

最后是计算 , 当资源和计算绑定的时候 , 资源就意味着是一种能提供算力的存在 , 具现出来就是服务器 , 远程电脑 , 一些运行的远程方法.

联想到早期计算机的使用中 , 主要就是为了做复杂的数学运算 , 而由于运算能力较差 , 往往几个部门共用同一台计算机

而云计算 , 就是一些挂载在互联网上面的计算机 , 有权限的用户可以通过互联网获得这些计算能力.

组织边界

组织边界是一种物理概念 , 是一家组织拥有的资源集合 . 基于各种角色 , 为用户提供能力 (没有免费的资源).

这可以联想到一种叫BT的资源下载方式, 这种方式是每一个下载的指定资源的用户 , 都会被当成一个资源节点 , 这些节点组成一个网状结构 , 互相从对方的资源中获取自己缺的资源包 , 从而完成整个下载 , 往往一个资源被下载的越多 , 那么后面的人下载的速度就越快 .

二 . 云计算模式

2.1 Iaas 基础架构即服务 (Infrastructure-as-a-service)

特点 : 以基础设置为中心的IT资源
案例 : 提供各类基础设施 , 云服务器 , MySQL 服务器等等
访问方式 : 远程桌面 , SSH 客户端

// Iaas 平台核心提供的应用如下 : 
- 云厂商提供的服务器, 基础组件

// 如何定性 : 
- 通常 Iaas 是一些基础IT设施 , 本身只有功能 , 而不设计业务体现 . 
- 单个的 Iaas 无法构成一个系统或者 Paas 模型 

// 优势 : 
- 可扩展性和可靠性 : 专业的事交给专业的团队
- 整体监控 : 无需自己搭建监控平台
- 安全 : 模型一致 , 安全控制可以更加高效 


2.2 Paas 平台即服务 (Platform-as-a-service)

特点 : 已就绪环境 , 即不需要用户自己去安装部署基础设施的环境
案例 : 微信小程序开放平台 , 各种开发平台 , 通常都携带各种软件开发工具包

// Paas 平台核心提供的应用如下 : 
小程序开放平台 , 微应用 , 低代码平台 , Gooled App Engine (App 运行环境) , RDS 云数据库体现

// 如何定性 : 
- Paas 平台中已经包含了全量的基础组件 (已就绪环境) , 用户直接在平台上开发自己的业务
- Paas 平台已经集成了很多功能 , 用户通过调用 API 来实现功能的调用
- Paas 本身没有业务场景 , 用户基于 Paas 自行构建业务场景

// 一句话 : 
不需要关心底层 , 只需要开发业务的系统

2.3 Saas 软件即服务 (Software-as-a-service)

特点 : 把软件服务定位成共享的云服务
案例 : 低代码平台 , 内容发布平台

// Saas 平台核心提供的应用如下 : 
ERP , HR 等等

// 定性 : 
- 位于云环境中 , 在云环境上进行搭建
- 提供成熟的 IT 业务 , 


// 心得 : 
Saas 平台的定义其实很宽泛 , 基本上位于云上的服务大概率可以定义为 Saas


2.4 不同基础设施的比较

三 . 组合和延展

3.1 组合

Iaas + Paas

Paas 系统通常也是基于基础设置的 , 这些设置可能会自己搭建 , 当时也有很大的可能会和其他的Iaas服务商组成最常见的 Iaas + Paas 的组合模式

image.png

Iaas + Paas + Saas

和上一个的处理方式一样 , 三种交付模型组合起来 , 一层建立在另一层上, 形成IT资源的层次结构.

image.png

组合的本质

不同模型的组合本质上是对云用户和云提供者的定义 . 当云用户使用云提供提供的服务也成为一个云提供者时 , 组合就产生了.

3.2 延展

相对于其他几个 ,Paas 和 Saas

APaaS :

应用平台即服务 : 让应用在封装好的平台上运行,而不再进行代码的编译和分发 .

  • PaaS 是任何基于云的中间件,包括BPM、消息应用和其他工具
  • aPaaS则特指专门从事云端应用开发的PaaS平台

Daas

Daas 有两种解释 : 数据即服务 (Data as a Service) 和 桌面即服务 (Desktop as a service) .

  • 数据即服务可以理解为数据集散中心 , 将数据进行分析 , 清洗后提供给不同的系统或用户 , 用户无需考虑数据的来源 . 用户不需要关注多个数据源而只需要关注 Daas 提供的数据更新点即可
  • 桌面即服务就是我们经常接触到的桌面云 , 云端桌面. 其核心其实就是把 Iaas 架构里面的桌面分发给用户使用

其他

  • Naas : 网络即服务 , 提供虚拟网络作为服务
  • Faas : 功能即服务 , 以云函数平台 , 通过云函数来提供功能 , 以及计算能力

当然还有一些 出行即服务 (Maas) , 零售即服务等等 , 但是这些概念本身不是搭建在云环境之上 , 所以也不叫云架构模型.

四 . 价值与指向

价值

之前和朋友聊天的时候 , 发现很多企业相对于产品和平台 , 往往更喜欢做平台 , 也就是 Saas 系统 .

甚至于有的团队 , 在做某个项目的时候 , 就是把软件当成平台在做 , 项目落地后 , 改一改就能让平台上线.

其实想一想就能理解 , 平台的价值很明显.

产品做好了 , 在不同的项目中可以实现复刻 , 快速上线 , 节约资源成本.
而一个平台做好了 , 成本会更低 , 资源的利用率会达到最大化

PS : 当然 , 这里面往往还涉及到资源承担方等等 . 但是产品不容易转换成平台 , 平台却比较容易转换成产品 , 单租户多租户的问题而已.

指向

做平台可以让收益最大化 , 但是也意味着种种挑战 .

  • 通用性 : 平台能否得到大部分用户的认可
  • 高性能 : 平台往往意味着极高的性能和良好的设计 , 但是也意味着更复杂的代码 , 更高的成本
    • 例如最简单的分库分表 , 要分多少个合适 ,怎么分 , 以后业务量起来了怎么扩容 , 要不要一步到位
  • 高可用 : 你平台隔三岔五就挂断 , 谁还用你平台
  • 高成本 : 以上这些往往都能通过钱能解决

相对于产品的便捷 , 平台也意味复杂度大大提升 , 不是所有的企业都能玩的转.

五. 成本和付出

不同的云计算模型反映着不同的成本特性.

这是一种研发成本和软件成本之间的取舍 , 部分公司会选择金钱换时间 , 从而直接选择 Saas 系统

而有的公司业务有自己的特色 , 从而选择在 Paas 系统上搭建自己的项目 , 省去运维的成本.

而某些平台会为了自己的生态场景 , 鼓励用户搭建自己的微程序.

但是 , 这些并不是绝对的平衡关系 . 风险和成本也在考虑范围内

总结

云交付模型是云时代后对云的使用方式. 基于云的特性 , 云提供者可以提供不同程度不同能力的服务给云用户.

基于这种灵活的方式 , 使产品变成了平台 , 资源得到了集中 . 而云服务商基于Iaas 用户量也能提供更完善得基础能力.

能力有限 , 接触到的成本支出比较少 , 很难判断成本曲线 , 有机会需要了解这一块 , 从而了解Saas平台有多大的价值和支出.

参考

<云计算-概念.技术和架构>