SAAS架构设计模式_第1页
SAAS架构设计模式_第2页
SAAS架构设计模式_第3页
SAAS架构设计模式_第4页
SAAS架构设计模式_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

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的成熟度模型分级可配置高性能可伸缩Level1定制开发×××Level2可配置√××Level3√√×Level4√√√第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应用下数据可配置的理想方案。CustomIDTenantIDNameExtStrExtInt11240Joy第5章Multi-Tenant应用的可配置性

数据配置方案预分配字段将所有扩展数据转换成字符串进行存储,对于租户用各字段保存的真实数据类型,由租户配置并作为配置元数据进行管理。系统可以根据元数据配置信息转换成真实的数据类型。CustomIDTenantIDExt1Ext2Ext311240ConfigIDTenantIDTableColumnDataTypeContent2040customExt1intSalary第5章Multi-Tenant应用的可配置性

数据配置方案名值对称可以将扩展数据的保存与原数据表别离,用一张统一的扩展数据表来保存。ExtIDTableDataIDConfigIDExtValue1002custom112203000ConfigIDTenantIDTableContentDataType2040customSalaryintidTenantIDName11240Joy第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个租户共享一个数据

温馨提示

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

评论

0/150

提交评论