SAAS架构设计模式ppt课件.ppt_第1页
SAAS架构设计模式ppt课件.ppt_第2页
SAAS架构设计模式ppt课件.ppt_第3页
SAAS架构设计模式ppt课件.ppt_第4页
SAAS架构设计模式ppt课件.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SAAS架构设计学习笔记 第1章SAAS的前世今生软件是什么 在计算机诞生初期 软件大多数与机器融为一体的 计算机就是软件 单独提供程序的业务被分离出来 有专门的人或公司来编写程序 软件就是一种产品 将用户需要的软件统一布署在应用提供商的软件硬件环境中 产生了ASP ApplicationServiceProvider 软件不应该仅仅是提供应用托管 应该服务化 产生了SAAS 第1章SAAS的前世今生SAAS基本概念 SAAS SoftwareasaService SAAS商业模式理论的提出 将软件从基于生产制造的第二产业 转变为基于服务的第三产业 SAAS与ASP的区别 ASP已经有了为用户提供服务的初步想法 只是关注的重点在于提供软硬件环境这样的服务 而不是软件本身 第1章SAAS的前世今生SAAS的优势 从用户方面看 SAAS的优势是拿来即用 无须维护 按需使用 随处可用 风险减小 顾本降低 安全性高 从软件商方面看 SAAS的优势是节省销售成本 节省维护成本 稳健经营模式 第1章SAAS的前世今生SAAS的缺点及解决办法 依赖互联网互联网已经成为信息时代社会必不可少的基础设施 SAAS软件依赖互联网已经不是什么问题 数据安全性SAAS软件商必须提供高可靠性的数据存储环境 数据保密性一是影响和改变用户的观念二是加强SAAS软件商自身的信用建设 第2章SAAS成熟度模型SAAS的成熟度模型分级 第2章SAAS成熟度模型SAAS的成熟度模型分级 Level1定制开发 有一个客户项目 就按客户需求定制一个版本 每个客户的软件都有一份独立的代码 不同客户软件之间可以共享和重用的只有少量的可重用组件 库以及开发人员的经验Level2可配置 客户可以通过简单的配置 让通用型的软件能够满足自己的一些个性经需求 为每个客户独立部署一个运行实例 只不过每个运行实例运行的是同一份代码 第2章SAAS成熟度模型SAAS的成熟度模型分级 Level3高性能的多租户架构 多租户单实例的应用架构才是通常真正意义上的SAAS应用架构 也就是我们通常所说的Multi Tenant架构 Level4可伸缩性的多租户架构 在用户数大量增长情况下 无须更改架构 而仅通过硬件设备的增加 支撑应用规模的增长 第2章SAAS成熟度模型SAAS的成熟度模型渐进步骤 实现多租户实现多租户架构下的高性能实现可配置实现伸缩性 项目 产品 多租户 高性能的多租户 可配置的多租户 可伸缩的多租户 第3章构建Multi Tenant应用SAAS多租户模式下数据隔离方案 第3章构建Multi Tenant应用SAAS多租户设计 改造成SAAS多租户的重点在于租户管理和数据隔离 第4章高性能的Multi Tenant实践数据库层性能优化 建立合适的索引消除大数据表连接 冗余字段避免复杂SQL一般情况下 应用服务器层的水平扩展更容易实现 而数据库层的扩展则比较困难 第4章高性能的Multi Tenant实践应用层性能优化 Cache使用适当的Cache是提升性能的重要措施 MemCache是由DangaInteractive开发的高性能 分布式的内存对象缓存系统 使用Cache的应用应该具备如下特征 1 需要Cache的数据应该是读多写少的 2 Cache是易失的 还需要增加一层逻辑 当Cache访问不到时 需要访问数据库 并重新将其载入Cache 第4章高性能的Multi Tenant实践应用层性能优化 基于Tenant的索引搜索最简单是使用数据库本身的like 在开源的搜索引擎中 Lucene显然是轻量级搜索引擎的最佳选择 统计和报表计算在报表计算是针对历史数据 且历史数据不允许修改情况下 可以采用后台任务定时统计策略 第4章高性能的Multi Tenant实践应用层性能优化 异步操作有两个不同层面的异步 表现层异步 一般用Ajax技术来实现 后台业务逻辑层异步 更多采用JMS MQ技术实现 第5章Multi Tenant应用的可配置性数据配置方案 定制字段根据客户的需求在数据表上增加相应的定制字段来保存扩展数据 对于SAAS应用来说 定制的字段多如牛毛 显示不是解决SAAS应用下数据可配置的理想方案 第5章Multi Tenant应用的可配置性数据配置方案 预分配字段将所有扩展数据转换成字符串进行存储 对于租户用各字段保存的真实数据类型 由租户配置并作为配置元数据进行管理 系统可以根据元数据配置信息转换成真实的数据类型 第5章Multi Tenant应用的可配置性数据配置方案 名值对称可以将扩展数据的保存与原数据表分离 用一张统一的扩展数据表来保存 第5章Multi Tenant应用的可配置性功能配置方案 功能分解 每个功能都是有价值的 每个功能都是不可再分的 功能间不相互重叠 功能间不循环依赖 整个系统是完整的 功能定义及依赖 所谓功能依赖是指一个功能在没有另外功能情况下不能使用 功能包设计 根据用户的类型和系统的业务逻辑 综合考虑用户的使用场景和使用习惯 将原子功能进行组合成功能包 销售包设计 功能包不能完全的独立使用 还需要按不同的商业意图构造适宜于用户使用的销售包 功能使用校验 在原子功能使用前 对当前用户是否可以使用该原子功能进行校验 第5章Multi Tenant应用的可配置性界面配置方案 系统菜单可配置 一个租户一套菜单 一个菜单关联一个原子功能 组织成树状结构 同级菜单之间存在顺序问题 页面元素可配置 第6章可伸缩的SAAS应用架构伸缩性 Scalable 的概念 Scalable有时被翻译成 可扩展 容易被误解为功能可扩展 实际上Scalable更多强调性能 容量方面可扩展 Scalable伸缩性要求 系统规模 容量小时 系统可缩小 大时可增加 而不需要更改系统整体架构 最理想状态是随着用户数的增加 系统架构不用做调整 而仅需要增加 增强硬件设备 可伸缩的最简单方式就是Scaleup 译为垂直扩展 也就是增强硬件设备 例如一个普通Server不行 换成小型机 此种扩展面临高成本问题 通常强调的应用架构可伸缩 一般是指Scaleout 即水平扩展 例如Google搜索引擎是由数千数万台普通PCServer构建的 第6章可伸缩的SAAS应用架构应用服务器层的水平扩展 应用服务器层的负载均衡 是实现应用服务器层水平扩展的最主要手段 具体策略有 1 基于硬件负载均衡设备实现负载均衡 如F5设备 2 基于软件的方式实现负载均衡 例如我们通过配置WebLogicServer集群 Cluster 可以实现服务网络的负载均衡 失败转移 第6章可伸缩的SAAS应用架构基于软件的方式实现负载均衡 我们通过配置WebLogicServer集群 Cluster 可以实现服务网络的负载均衡 失败转移功能 WebLogic集群用一台WebLogicServer做HttpProxyServer 将负载分配到集群中所有的实例 实现负载均衡 WebLogic集群用一台WebLogicServer作为AdministratorServer 这台AdministratorServer不处理请求 专门做管理 WebLogic集群中ManagedServer之间通过Scoket通讯 集群的所有Server位于同一网段中 失败转移与Session复制 WebLogicServer通过Session复制在失败转移的时候保存用户数据 默认支持3种复制方式 InMemory Database File 我们采用InMemory的方式 第6章可伸缩的SAAS应用架构数据库层的水平扩展 相对于应用服务器层的水平扩展 数据库层的水平扩展更难实现 实现数据库层的水平扩展有多种方式 1 数据库的垂直切分 将不同的功能模块所涉及到的表划分表不同的物理数据库中 从而将对这些表的访问压力分担到不同物理数据库 2 数据库的读 写分离 同一数据库在多个物理服务器上具有多份Copy 彼此同步 写操作都统一到一个主服务器上 读操作则分担到多台从服务器上 3 数据库的水平切分 将原来存储在一个数据表中的数据 按一定规则切分到不同物理数据库中 每个数据库结构相同 数据不相同 第6章可伸缩的SAAS应用架构数据库的垂直切分 对于大部分应用而言 除非模块间关联很少 实现重直切分很难 1 原来可能存在的表关联需要去除 2 同一个数据库的事务操作 可能需要跨库 结论 垂直切分可以适当采用 但很难广泛使用 第6章可伸缩的SAAS应用架构数据库的读 写分离 对于读多写少的互联网应用 会广泛采用数据分离技术 例如MySQL的Replication技术 从数据库也不是越多越好 从数据库服务器过多分造成主数据库服务器同步性能下降 读写比例为4 1 主从数据库服务器比例也为4 1较好 当应用的性能瓶颈出现在写操作上时 读 写分离技术对伸缩性的提升就非常有限了 第6章可伸缩的SAAS应用架构数据库的水平切分 可以每10000个租户共享一个数据库 再增加10000个租户则增加一个数据库 水平切分对于大部分SAAS应用都适用 因为SAAS的不同租户之间业务上没有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论