SaaS 架构设计详解

上传人:痛*** 文档编号:86653329 上传时间:2022-05-08 格式:DOC 页数:8 大小:69KB
收藏 版权申诉 举报 下载
SaaS 架构设计详解_第1页
第1页 / 共8页
SaaS 架构设计详解_第2页
第2页 / 共8页
SaaS 架构设计详解_第3页
第3页 / 共8页
资源描述:

《SaaS 架构设计详解》由会员分享,可在线阅读,更多相关《SaaS 架构设计详解(8页珍藏版)》请在装配图网上搜索。

1、wordSaaS架构设计SaaS架构设计1SaaS成熟度模型分级1RUP “4+1视图模式逻辑视图/过程视图/开发视图/物理视图+场景视图2MDA(Model Driven Architecture)模型驱动架构2SaaS的安全性设计2安全性3SaaS下的安全性设计很重要。一般常见的安全性设计分为两类:系统级和程序级。31系统级:32程序级:3现在SaaS Multi-Tenant在数据存储上存在三种主要的方案31方案一:独立数据库42方案二:共享数据库,隔离数据架构43方案三:共享数据库,共享数据架构4数据库层性能优化5建立适宜的索引5消除大数据表连接5应用层性能优化:Cache5日志记录6

2、1行为日志记录62数据日志记录63日志记录的安全6数据加密算法会牺牲一定性能6基于SaaS云计算网络性能测试指标71新建速率72并发数73吞吐量74响应时间8SaaS成熟度模型分级根据SaaS应用是否具有可配置性、高性能、可伸缩性的特性,SaaS成熟度模型被分成四级。每一级都比前一级增加以上三种特性的一种。可配置高性能可伸缩性特点Level 1定制开发设备托管Level 2可配置设备共享、可配置化Level 3高性能的多租户架构Multi-Tenant多租户、数据隔离、高性能Level 4可伸缩性的多租户架构RUP “4+1视图模式逻辑视图/过程视图/开发视图/物理视图+场景视图l 场景视图:

3、用例图,描述用户的业务场景,从用户的角度标识出业务需求,它是架构设计的起点和终点;l 逻辑视图:就是对象模型。逻辑视图重点在于功能,功能包括可见的业务功能,也包括不可见的系统功能如日志、权限、事务等。同时更重要的是确立逻辑分层、模块划分和模块之间的依赖关系;l 开发视图:用于描述开发环境下的静态组织。从开发环境、技术架构、分层策略和目录结构4个方面阐述;l 过程视图:聚焦在进程、线程等运行时概念,以与相关的并发、同步、通信等问题。如果本系统不需要考虑这些方面,本视图可以省略;l 物理视图:也叫部署视图描述软件如何映射到硬件,反映系统在分布/部署上的设计。MDA(Model Driven Arc

4、hitecture)模型驱动架构MDA利用元数据模型,可以方便灵活地实现可配置化。MDA(Model Driven Architecture)是模型驱动架构,它是由OMG定义的一个软件开发框架。它是一种基于UML以与其他工业标准的框架,支持软件设计和模型的可视化、存储和交换。和UML相比,MDA能够创建出机器可读和高度抽象的模型,这些模型独立于实现技术,以标准化的方式储存。MDA把建模语言用作一种编程语言而不仅仅是设计语言。MDA的关键之处是模型在软件开发中扮演了非常重要的角色。SaaS的安全性设计一般常见的安全性设计分为两类:系统级和程序级。系统级:l 使用S协议以SSLSecurity S

5、ocket Layer交换数据,增强通信安全;l 通过数字签名防止传输过程篡改;l 对用户身份识别的UserToken使用DES算法数据加密;l 业务数据定时自动备份;程序集:l 完整的权限配置,包括功能权限和数据权限;l 客户端输入校验,防止JS攻击、XSS攻击、SQL注入等;l 辅助安全设计,比如密码控件、图片验证码、手机确认码等;安全性安全压倒一切。大多数用户只是问问SaaS厂商是不是采用了安全套接层(SSL)技术,而安全性涵盖的不仅仅只有这个方面。要向潜在的SaaS厂商询问如下问题:放置服务器的数据中心有没有247全天候的物理安全措施?数据中心有没有得到保护(保安是不是24小时在周围至

6、少巡视一次)?谁有权访问这些服务器(只有内部员工可以访问,还是承包商也可以访问?)有没有日志记录谁何时进入、何时离开?如果有日志,那么隔多长时间审计这些日志?应用程序有没有使用基于行业标准的128位加密技术?如果多个客户使用的应用程序放在同一台服务器上,那么它们有没有采用逻辑或物理分隔,从而确保你的数据不被未授权的人所看到?SaaS厂商中可以访问你企业数据的工作人员有没有经过犯罪背景调查?知道被定罪的重罪犯是不能访问你企业那些敏感的个人数据,这很重要。厂商有没有正规的业务连续性方案(BCP)?对方愿不愿意与你共享该方案、它能消除你的担忧吗?SaaS下的安全性设计很重要。一般常见的安全性设计分为

7、两类:系统级和程序级。(1) 系统级: 使用S协议以SSLSecurity Socket Layer交换数据,增强通信安全; 通过数字签名防止传输过程篡改; 对用户身份识别的UserToken使用DES算法数据加密; 业务数据定时自动备份。(2) 程序级: 完整的权限配置,包括功能权限和数据权限; 客户端输入校验,防止JS攻击、XSS攻击、SQL注入等; 辅助安全设计,比如密码控件、图片验证码、手机确认码等。现在SaaS Multi-Tenant在数据存储上存在三种主要的方案(1) 方案一:独立数据库这是第一种方案,即一个Tenant一个Database见图3-14,这种方案的用户数据隔离级别

8、最高,安全性最好,但本钱也高。优点:为不同的租户提供独立的数据库,有助于简化数据模型的扩展设计,满足不同租户的独特需求;如果出现故障,恢复数据比拟简单。缺点:增大了数据库的安装数量,随之带来维护本钱和购置本钱的增加。这种方案与传统的一个客户、一套数据、一套部署类似,差异只在于软件统一部署在运营商那里。如果面对的是银行、医院等需要非常高数据隔离级别的租户,可以选择这种模式,提高租用的定价。如果定价较低,产品走低价路线,这种方案一般对运营商来说是无法承受的。(2) 方案二:共享数据库,隔离数据架构这是第二种方案,即多个或所有租户共享Database,但一个Tenant一个Schema。优点:为安全

9、性要求较高的租户提供了一定程度的逻辑数据隔离,并不是完全隔离;每个数据库可以支持更多的租户数量。缺点:如果出现故障,数据恢复比拟困难,因为恢复数据库将牵扯到其他租户的数据;如果需要跨租户统计数据,存在一定困难。(3) 方案三:共享数据库,共享数据架构这是第三种方案,即租户共享同一个Database、同一个Schema,但在表中通过TenantID区分租户的数据。这是共享程度最高、隔离级别最低的模式。优点:三种方案比拟,第三种方案的维护和购置本钱最低,允许每个数据库支持的租户数量最多。缺点:隔离级别最低,安全性最低,需要在设计开发时加大对安全的开发量;数据备份和恢复最困难,需要逐表逐条备份和复原

10、。如果希望以最少的服务器为最多的租户提供服务,并且租户承受以牺牲隔离级别换取降低本钱,这种方案最适合。数据库层性能优化建立适宜的索引l 索引应该创建在条件where、排序order by、分组group by等操作所涉与的列上;l 索引应该有较强的选择性,即应尽可能建立在重复数据少的数据列中;l 如果多个条件经常需要组合起来查询,应合理使用联合索引;l 一次查询中只能使用一个索引,可使用相应的分析工具分析索引效果;l 索引不是越多越好一个表最好在5个索引以内,过多的索引可能导致CUD新增、修改、删除的性能降低,并且占用更多的空间。消除大数据表连接消除表连接的几种解决方案解决方案适用场景示例场景

11、冗余存储关联字段业务需求上可以承受冗余导致的不一致,或者冗余数据可以很容易被同步更新订单列表查询时,希望查看到订单的客户名称,原本订单上只记录了客户ID,通过关联客户表查询客户名称Cache缓存变动概率不高,但是对于数据一致性要求较高用户名USER_NAME被很多业务所关联查询,但是也不适用于冗余方案业务上不允许不一致,并且要保持所有冗余存储的地方同步更新很困难直接删除关联字段不是必须包含的被关联表的字段,可以直接从列表查询中去除订单列表中的产品型号等非关键字段,其实并不一定要包含在订单列表中拆分成屡次查询对于单个数据的查询,如果涉与多X关联表,有时分屡次查询会比一次复杂的关联查询更为适宜订单

12、表单中需要查询到关联产品的编码、型号等很多字段应用层性能优化:Cache其实很难说Cache就是应用层性能的优化策略。因为大局部情况下,Cache所缓存的内容就是数据库中存储的内容。采用Cache策略其实也是对数据库层的一种优化,因为其防止了对于数据库的频繁访问。MemCached和oss Cache应该是两类比拟典型的Cache。MemCachedoss Cache特性1、 基于Client/Server架构2、 只有一份数据Copy,不需要数据同步基于JGroup多播的分布式Cache优势不需要数据同步,防止复杂的多播等技术Cache读取基于本地Memory,性能更高日志记录日志记录就是要

13、对用户在系统中的操作行为和操作的数据等进展记录,以便对用户在系统中的操作进展查证,以保证用户行为是不可伪造的、不可销毁的、不可否认的。也就是说,用户在系统中的行为是有据可查的,不能在系统中伪造自己的行为,或者伪造其他用户的行为;同时,用户是不能销毁这些证据的,不能否认自己的行为。日志记录具体包括两局部:行为日志记录和数据日志记录。(1) 行为日志记录行为日志记录就是要对用户在系统中所访问的每一个页面,在各页面中所做的每一个行为都记录下来,记录用户的身份和行为的时刻。例如,租户A的用户A1在2011年7月13日 17:07:50访问了XXX系统的重要客户列表页面,做了删除客户信息的操作。行为日志

14、记录的实现,可以采用面向方法的方案来实现,例如,通过过滤器或拦截器的方式Spring前置装备,来对所有的页面请求行为与页面里的提交行为多进展拦截,然后将其记录在日志文件里或数据库里。行为日志记录是区分用户在系统中行为的一个重要依据,对于系统使用与系统运营分开的SaaS系统就显得尤为重要。(2) 数据日志记录数据日志记录,就是要对用户在系统中所操作的数据进展记录,记录数据的变更过程与变更的历史。这在多人操作同一个数据的系统中显得尤为重要。可以通过流程引擎记录流程日志。例如,用户A在财务系统中提交了一X财务报销单,报销金额是1000元,在经过了用户B、C、D等一系列人的修改和审批后,用户A看到的报

15、销金额变成了500元,如果没有报销金额的变更日志记录,用户A一定会很疑惑,是谁因为什么原因修改了这个报销金额。那么,系统就很有必要对报销金额的变更进展日志记录。(3) 日志记录的安全日志记录是对用户在系统中行为进展查证的依据,是用来跟踪和保障系统安全的,那么,日志记录本身的安全性也是需要重点考虑的。首先,日志记录应该是只读的,最好能加上时间戳,不应该被认为修改或者伪造;其次,日志记录涉与用户的隐私,应该是某某的,要防止被非法使用。租户的日志只向Tenant管理员开发,并且Tenant管理员也只能查询租户自己的日志。数据加密算法会牺牲一定性能1、 使用AES对称加密算法;2、 每个企业生成一个数

16、据密钥生成后不能改变,否如此先前加密过的数据无法进展解密;3、 企业key是利用企业管理员的密码明文去加密存储的,这就要求每个企业在建立时,必须先建立一个管理员;4、 该企业下的每个用户使用其自身的登录密码原文对数据密码进展AES加密,并存储到用户表中。密钥加密;5、 用户保存敏感数据时,使用以准备好的密钥对数据进展AES加密;加/解密过程:1、 企业注册时,为企业生成一个唯一的key,存放于企业表中;2、 用户注册后,用户表中存放一个利用用户密码明文加密过的企业key;3、 用户登录后,通过密码明文,解密出企业key,并存放到相应位置,待加/解密时使用;4、 用户修改密码时,要使用原密码将企

17、业key解密,并用新密码重新加密保存;基于SaaS云计算网络性能测试指标 衡量云计算的网络性能根据使用的网络设备不同拥有很多指标。最常见最关键的性能指标包括以下几项:新建速率CPS、并发数CC吞吐量GoodPut、响应时间Response Time。(1) 新建速率 新建速率指通过数据中心中间网络每秒可以处理的TCP Session速率,单位为CPSConnections Per Second。 新建速率中的“新建是指一个TCP Session成功建立并关闭的整个过程,将TCP关闭方式选择使用TCP FIN报文触发的4次握手关闭方式。此种方式最符合当前普遍的网络协议应用模型。在局部特殊业务需求

18、的测试场景下,还可以采用TCP RESET方式进展快速会话关闭,以检验网络系统能够支持的极限性能。 新建速率指标将主要表现数据中心网络设备的CPU运算处理能力。对新建速率测试开始前,应记录网络处理设备的CPU/Memory等关键性能指标,测试过程中和完毕后对这些指标进展监控,实时了解整个网络的运行情况。(2) 并发数 并发数指通过数据中心中间网络可以同时并发存在的最大TCP Session数量,单位为CCCurrent Connections。 并发数指标表现了整网会话保持与表项存储的能力,与网络处理设备的内存大小有直接关系。 对于并发数指标测试来说,尤其需要关注其上层协议的具体应用,一个Te

19、lnet连接保持1小时与一个连接保持1小时在协议处理流程上是有很大不同的,应尽量根据实际网络中的业务流量设计测试模型。(3) 吞吐量 吞吐量指当前网络可以有效传输的最大数据量,也被称为有效吞吐GoodPut,区别于传统意义上的测试指标吞吐量ThroughPut,结果单位为BPSByte Per Second。 吞吐量指标除了受新建速率的直接影响外,还会受到网络中各设备的交换架构、接口总线等元件单位间处理能力的限制,也直接表现了整个网络的应用数据吞吐转发能力。 吞吐量测试结果很大程度上依赖于新建速率能力,其间关系类似于传统吞吐量BPSBit Per Second与网络设备包转发能力PPSPack

20、ets Per Second之间的关系。在测试吞吐量的过程中,首先测得网络的新建速率,然后将新建速率测试结果乘以一定比率系数,作为吞吐量测试中使用的的稳定新建速率参数始终不变,测试时逐步提高有效载荷大小,通过观察出现连接出现失败前的有效载荷最大传输速率,得到其吞吐量测试结果。(4) 响应时间 响应时间指从客户端发起请求,到得到正确数据响应所经历的时间,一般用来衡量中间网络的综合处理能力,单位为毫秒。 响应时间指标测试方法主要有两种:一种是基于真实服务器的业务响应时间测试,此测试结果包含了中间网络设备与服务器两局部处理延迟时间;另一种是通过测试仪模拟服务器快速响应请求的测试,这种测试方法可以尽量减少服务器端处理延迟的影响,得到近乎纯粹的网络处理延迟时间。 响应时间测试要在一定的新建速率下进展,这样做也是为了尽量贴近实际网络情况。但此测试中的新建速率需要维持在一个较低的水平线上,最好是根据真实环境平均值设定,这是因为新建速率较高时会导致CPU资源占用较高,影响设备对连接的处理能力。文档

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!