SAAS架构设计模式ppt课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8
第2章 SAAS成熟度模型 SAAS的成熟度模型渐进步骤
实现多租户 实现多租户架构下的高性能 实现可配置 实现伸缩性
项目
产品
多租户
高性能的 可配置的 可伸缩的
多租户
多租户
多租户
9
第3章 构建Multi-Tenant应用 SAAS多租户模式下数据隔离方案
模式
隔离级别 共享级别 安全级别 成本
预分配字段
将所有扩展数据转换成字符串进行存储,对于租户用各 字段保存的真实数据类型,由租户配置并作为配置元 数据进行管理。系统可以根据元数据配置信息转换成 真实的数据类型。
CustomID TenantID Ext1 Ext2 Ext3
112
40
ConfigID TenantID Table Column DataType Content
一般情况下,应用服务器层的水平扩展更容易 实现,而数据库层的扩展则比较困难。
12
第4章 高性能的Multi-Tenant实践 应用层性能优化
Cache 使用适当的Cache是提升性能的重要措施; MemCache是由Danga Interactive开发的高性能、
分布式的内存对象缓存系统。 使用Cache的应用应该具备如下特征 (1)需要Cache的数据应该是读多写少的; (2)Cache是易失的,还需要增加一层逻辑,
修改情况下,可以采用后台任务定时统计策略。
14
第4章 高性能的Multi-Tenant实践 应用层性能优化
异步操作 有两个不同层面的异步: 表现层异步,一般用Ajax技术来实现; 后台业务逻辑层异步,更多采用JMS、MQ技
术实现
15
第5章 Multi-Tenant应用的可配置性 数据配置方案
3
第1章 SAAS的前世今生 SAAS的优势
从用户方面看,SAAS的优势是拿来即用,无 须维护,按需使用,随处可用,风险减小、顾 本降低、安全性高;
从软件商方面看,SAAS的优势是节省销售成 本、节省维护成本、稳健经营模式
4
第1章 SAAS的前世今生 SAAS的缺点及解决办法
依赖互联网 互联网已经成为信息时代社会必不可少的基础设施,
SAAS架构设计学习笔记
1
第1章 SAAS的前世今生 软件是什么
在计算机诞生初期,软件大多数与机器融为一 体的,计算机就是软件。
单独提供程序的业务被分离出来,有专门的人 或公司来编写程序,软件就是一种产品。
将用户需要的软件统一布署在应用提供商的软 件硬件环境中,产生了ASP(Application Service Provider)
可配置
Level3
√
√
×
Level4
√
√
√
6
第2章 SAAS成熟度模型 SAAS的成熟度模型分级
Level1定制开发:有一个客户项目,就按客户需 求定制一个版本,每个客户的软件都有一份独 立的代码,不同客户软件之间可以共享和重用 的只有少量的可重用组件、库以及开发人员的 经验
Level2可配置:客户可以通过简单的配置,让通 用型的软件能够满足自己的一些个性经需求。 为每个客户独立部署一个运行实例,只不过每 个运行实例运行的是同一份代码。
定制字段 根据客户的需求在数据表上增加相应的定制字段来保存
扩展数据。对于SAAS应用来说,定制的字段多如牛 毛,显示不是解决SAAS应用下数据可配置的理想方 案。
CustomID TenantID Name
112
40
Joy
ExtStr
ExtInt
16
第5章 Multi-Tenant应用的可配置性 数据配置方案
7
第2章 SAAS成熟度模型 SAAS的成熟度模型分级
Level3高性能的多租户架构:多租户单实例的应 用架构才是通常真正意义上的SAAS应用架构, 也就是我们通常所说的Multi-Tenant架构。
Level4可伸缩性的多租户架构:在用户数大量 增长情况下,无须更改架构,而仅通过硬件设 备的增加,支撑应用规模的增长。
独立数据 高
低
高
高
库
共享数据 中
中
中
中
库、隔离
表架构
共享数据 低
高
低
低
库、共享
表、隔离
数据架构
10
第3章 构建Multi-Tenant应用 SAAS多租户设计
改造成SAAS多租户的重点在于租户管理和数 据隔离
11
第4章 高性能的Multi-Tenant实践 数据库层性能优化
建立合适的索引 消除大数据表连接:冗余字段 避免复杂SQL
当Cache访问不到时,需要访问数据库,并重 新将其载入Cache.
13
第4章 高性能的Multi-Tenant实践 应用层性能优化
基于Tenant的索引搜索 最简单是使用数据库本身的like; 在开源的搜索引擎中,Lucene显然是轻量级搜
索引擎的最佳选择。 统计和报表计算 在报表计算是针对历史数据,且历史数据不允许
软件不应该仅仅是提供应用托管,应该服务化, 产生了SAAS。
2
第1章 SAAS的前世今生 SAAS基本概念
SAAS(Software as a Service) SAAS商业模式理论的提出,将软件从基于生
产制造的第二产业,转变为基于服务的第三产 业。 SAAS与ASP的区别:ASP已经有了为用户提 供服务的初步想法,只是关注的重点在于提供 软硬件环境这样的服务,而不是软件本身。
SAAS软件依赖互联网已经不是什么问题。 数据安全性 SAAS软件商必须提供高可靠性的数据存储环境。 数据保密性 一是影响和改变用户的观念 二是加强SAAS软件商自身的信用建设。
5
第2章 SAAS成熟度模型 SAAS的成熟度模型分级
可配置
高性能
可伸缩
Level1
×
×
×
定制开发
Level2
√
×
×
20
40
custo Ext1 int m
Salary
17
第5章 Multi-Tenant应用的可配置性 数据配置方案
名值对称
可以将扩展数据的保存与原数据表 分离,用一张统一的扩展数据表 来保存。
id TenantID 112 40
Name Joy
ConfigID TenantID Table Content DataType
20
40
custom Salary int
ExtID Table DataID ConfigID ExtValue
1002 custom 112 20
3000
Biblioteka Baidu
18
第2章 SAAS成熟度模型 SAAS的成熟度模型渐进步骤
实现多租户 实现多租户架构下的高性能 实现可配置 实现伸缩性
项目
产品
多租户
高性能的 可配置的 可伸缩的
多租户
多租户
多租户
9
第3章 构建Multi-Tenant应用 SAAS多租户模式下数据隔离方案
模式
隔离级别 共享级别 安全级别 成本
预分配字段
将所有扩展数据转换成字符串进行存储,对于租户用各 字段保存的真实数据类型,由租户配置并作为配置元 数据进行管理。系统可以根据元数据配置信息转换成 真实的数据类型。
CustomID TenantID Ext1 Ext2 Ext3
112
40
ConfigID TenantID Table Column DataType Content
一般情况下,应用服务器层的水平扩展更容易 实现,而数据库层的扩展则比较困难。
12
第4章 高性能的Multi-Tenant实践 应用层性能优化
Cache 使用适当的Cache是提升性能的重要措施; MemCache是由Danga Interactive开发的高性能、
分布式的内存对象缓存系统。 使用Cache的应用应该具备如下特征 (1)需要Cache的数据应该是读多写少的; (2)Cache是易失的,还需要增加一层逻辑,
修改情况下,可以采用后台任务定时统计策略。
14
第4章 高性能的Multi-Tenant实践 应用层性能优化
异步操作 有两个不同层面的异步: 表现层异步,一般用Ajax技术来实现; 后台业务逻辑层异步,更多采用JMS、MQ技
术实现
15
第5章 Multi-Tenant应用的可配置性 数据配置方案
3
第1章 SAAS的前世今生 SAAS的优势
从用户方面看,SAAS的优势是拿来即用,无 须维护,按需使用,随处可用,风险减小、顾 本降低、安全性高;
从软件商方面看,SAAS的优势是节省销售成 本、节省维护成本、稳健经营模式
4
第1章 SAAS的前世今生 SAAS的缺点及解决办法
依赖互联网 互联网已经成为信息时代社会必不可少的基础设施,
SAAS架构设计学习笔记
1
第1章 SAAS的前世今生 软件是什么
在计算机诞生初期,软件大多数与机器融为一 体的,计算机就是软件。
单独提供程序的业务被分离出来,有专门的人 或公司来编写程序,软件就是一种产品。
将用户需要的软件统一布署在应用提供商的软 件硬件环境中,产生了ASP(Application Service Provider)
可配置
Level3
√
√
×
Level4
√
√
√
6
第2章 SAAS成熟度模型 SAAS的成熟度模型分级
Level1定制开发:有一个客户项目,就按客户需 求定制一个版本,每个客户的软件都有一份独 立的代码,不同客户软件之间可以共享和重用 的只有少量的可重用组件、库以及开发人员的 经验
Level2可配置:客户可以通过简单的配置,让通 用型的软件能够满足自己的一些个性经需求。 为每个客户独立部署一个运行实例,只不过每 个运行实例运行的是同一份代码。
定制字段 根据客户的需求在数据表上增加相应的定制字段来保存
扩展数据。对于SAAS应用来说,定制的字段多如牛 毛,显示不是解决SAAS应用下数据可配置的理想方 案。
CustomID TenantID Name
112
40
Joy
ExtStr
ExtInt
16
第5章 Multi-Tenant应用的可配置性 数据配置方案
7
第2章 SAAS成熟度模型 SAAS的成熟度模型分级
Level3高性能的多租户架构:多租户单实例的应 用架构才是通常真正意义上的SAAS应用架构, 也就是我们通常所说的Multi-Tenant架构。
Level4可伸缩性的多租户架构:在用户数大量 增长情况下,无须更改架构,而仅通过硬件设 备的增加,支撑应用规模的增长。
独立数据 高
低
高
高
库
共享数据 中
中
中
中
库、隔离
表架构
共享数据 低
高
低
低
库、共享
表、隔离
数据架构
10
第3章 构建Multi-Tenant应用 SAAS多租户设计
改造成SAAS多租户的重点在于租户管理和数 据隔离
11
第4章 高性能的Multi-Tenant实践 数据库层性能优化
建立合适的索引 消除大数据表连接:冗余字段 避免复杂SQL
当Cache访问不到时,需要访问数据库,并重 新将其载入Cache.
13
第4章 高性能的Multi-Tenant实践 应用层性能优化
基于Tenant的索引搜索 最简单是使用数据库本身的like; 在开源的搜索引擎中,Lucene显然是轻量级搜
索引擎的最佳选择。 统计和报表计算 在报表计算是针对历史数据,且历史数据不允许
软件不应该仅仅是提供应用托管,应该服务化, 产生了SAAS。
2
第1章 SAAS的前世今生 SAAS基本概念
SAAS(Software as a Service) SAAS商业模式理论的提出,将软件从基于生
产制造的第二产业,转变为基于服务的第三产 业。 SAAS与ASP的区别:ASP已经有了为用户提 供服务的初步想法,只是关注的重点在于提供 软硬件环境这样的服务,而不是软件本身。
SAAS软件依赖互联网已经不是什么问题。 数据安全性 SAAS软件商必须提供高可靠性的数据存储环境。 数据保密性 一是影响和改变用户的观念 二是加强SAAS软件商自身的信用建设。
5
第2章 SAAS成熟度模型 SAAS的成熟度模型分级
可配置
高性能
可伸缩
Level1
×
×
×
定制开发
Level2
√
×
×
20
40
custo Ext1 int m
Salary
17
第5章 Multi-Tenant应用的可配置性 数据配置方案
名值对称
可以将扩展数据的保存与原数据表 分离,用一张统一的扩展数据表 来保存。
id TenantID 112 40
Name Joy
ConfigID TenantID Table Content DataType
20
40
custom Salary int
ExtID Table DataID ConfigID ExtValue
1002 custom 112 20
3000
Biblioteka Baidu
18