互联网时代的软件革命-SaaS架构设计_第1页
互联网时代的软件革命-SaaS架构设计_第2页
互联网时代的软件革命-SaaS架构设计_第3页
互联网时代的软件革命-SaaS架构设计_第4页
互联网时代的软件革命-SaaS架构设计_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

互联网时代的软件革命

—SaaS架构设计马坤nic-makun@网络新技术专题参考教材入门基础教程,淘宝阿里云,2009,电子工业出版社,49元(36.4元)参考论文从传统的Web应用到多租户SaaS应用的转换方法,马坤,通信学报,2011什么是云计算1什么是SaaS2SaaS的成熟度模型3构建多租户的SaaS应用4高性能的多租户SaaS应用实践5可伸缩的应用架构6从传统的Web应用到多租户SaaS应用的转换方法(Paperfrom通信学报)7内容什么是云计算1什么是SaaS2SaaS的成熟度模型3构建多租户的SaaS应用4高性能的多租户SaaS应用实践5可伸缩的应用架构6从传统的Web应用到多租户SaaS应用的转换方法(Paperfrom通信学报)7内容1云计算什么是云计算NationalInstituteofStandardsandTechnology,NIST云计算是一种对IT资源的使用模式,是对共享的可配置的计算资源(如网络、服务器、存储、应用和服务)提供无所不在的、方便的、随需的网络访问。资源的使用和释放可以快速进行,不需要多少管理代价。——美国国家标准技术研究所Cloudcomputingisamodelforenablingconvenient,on-demandnetworkaccesstoasharedpoolofconfigurablecomputingresources(e.g.,networks,servers,storage,applications,andservices)thatcanberapidlyprovisionedandreleasedwithminimalmanagementeffortorserviceproviderinteraction.——NIST1云计算的基本特征按需自助服务无所不在的网络接入不用考虑具体物理位置的资源池以服务需求驱动的配置和调度可计量的服务/按使用收费1云计算是信息技术发展的方向1云计算三种服务模型InternationalDataCorporation(IDC)预测,2010到2014年期间SaaS市场的年复合增长率高达25.3%什么是云计算1什么是SaaS2SaaS的成熟度模型3构建多租户的SaaS应用4高性能的多租户SaaS应用实践5可伸缩的应用架构6从传统的Web应用到多租户SaaS应用的转换方法(Paperfrom通信学报)7内容2SaaS-软件即服务什么是SaaS软件即服务,软件产品消费->服务消费租用,无需维护多租户2SaaS的提供商们Salesforce的MIS,典型的是CRM软件的推广(/)GoogleDocs()Microsoft金蝶友商网(/)阿里云800App(800客)/腾讯SaaS:QQ云输入法,QQ云词典2国际学术界IEEEInternationalConferenceonCloudComputing(CLOUD)CLOUD2011(/2011/)IEEEAsia-PacificServicesComputingConference(IEEEAPSCC)IEEEAPSCC2011(/apscc2011)IEEEWorldCongressonServices(SERVICES)SERVICES2011(/2011/)2国内学术界中国云计算与SaaS大会(C4S2)()C4S22011(

)2SaaS的适用场景快速增长的应用场景指的是需求增长比较迅速的情况,这种情况下应用系统的计算呈阶梯形上升方式。SaaS应用可以动态分配资源来满足应用增长的需要间歇性的应用场景包括临时性的一些应用需求,这些应用场景的特点是不需要连续的使用服务,此时传统的不间断持续服务方法会造成资源的浪费突发性应用场景是指应用的使用量短时间内增加又很快回落的情况。这种使用量的变化是无法预测的,使用云计算可以较容易的解决这种突发需求。计算时间b)间断性应用场景计算时间a)快速增长应用场景计算时间c)突发性应用场景非服务时间2SaaS的典型案例邮件系统电子商务客户关系管理企业资源规划管理信息系统办公自动化什么是云计算1什么是SaaS2SaaS的成熟度模型3构建多租户的SaaS应用4高性能的多租户SaaS应用实践5可伸缩的应用架构6从传统的Web应用到多租户SaaS应用的转换方法(Paperfrom通信学报)7内容3SaaS成熟度模型第0级(混乱):每次新增一个客户,都会新增软件的一个实例。第1级(受控的混乱):所有客户都运行在软件的同一个版本上,而且任何的定制化都通过修改配置来实现。第2级(可配置的多租户):所有的客户都已经可以在软件的同一个版本上运行了,而且他们都在同一个“实例”上运行。第3级(可扩展的多租户):此时你已经拥有了多租户、单一版本的软件模型。不过你还是可以通过硬件扩展(scale-out)的方式来进行扩充。第4级(理想模型):如同第3级,除非你可以找出有效的方式,以在不同的“实例”上运行不同版本的软件。什么是云计算1什么是SaaS2SaaS的成熟度模型3构建多租户的SaaS应用4高性能的多租户SaaS应用实践5可伸缩的应用架构6从传统的Web应用到多租户SaaS应用的转换方法(Paperfrom通信学报)7内容4常见的多租户解决方案databasedatabasedatabaseapplicationapplicationapplicationtenanttenanttenantdatabasedatabasedatabasetenanttenanttenantapplicationdatabasetenanttenanttenantapplicationa)SeparateApplicationSeparateDatabaseb)SharedApplicationSeparateDatabasec)SharedApplicationSharedDatabasetenanttenanttenantapplicationdatabasetenanttenanttenantapplicationc1)SeparateSchemac2)SharedSchemaschema1schema2schema1理想模型4多租户SaaS应用的通用模块用户与租户映射租户的注册与订阅租户的计费4SaaS多租户设计用户与租户的映射关系一个租户下可以有多个用户账号1:n4SaaS多租户设计租户的订阅PricePolicy:价格策略,支持按时间(月、季、年)、按次数计价,以unit表示;Subsciber:订购记录,记录租户选择了何种价格策略,以及服务期限或服务次数。4SaaS多租户设计租户的计费Journal:流水账,记录租户使用服务的日志,用于生成账单和报表。什么是云计算1什么是SaaS2SaaS的成熟度模型3构建多租户的SaaS应用4高性能的多租户SaaS应用实践5可伸缩的应用架构6从传统的Web应用到多租户SaaS应用的转换方法(Paperfrom通信学报)7内容5高性能的多租户SaaS应用实践数据库优化应用层优化Web层优化5.1数据库层性能优化建立合适的索引索引应该创建在条件(WHERE),排序(ORDERBY),分组(GROUPBY)等操作所涉及的列上;索引应该有较强的选择性,即应尽可能建立在重复数据少的数据列中;如果多个条件经常需要组合起来查询,应合理使用联合索引;一次查询中只能使用一个索引,可使用相应的分析工具分析索引效果;索引不是越多越好,过多的索引可能导致CUD(新增、修改、删除)的性能降低,并且占用更多的空间实现模糊搜索的最佳实践是建立搜索引擎5.1数据库层性能优化消除大数据表连接解决方案适用场景示例场景冗余存储关联字段业务需求上可以接受冗余导致的不一致,或者冗余数据可以很容易被同步更新订单列表查询时,希望查看到订单的客户名称,原本订单上只记录了客户ID,通过关联客户表查询客户名称Cache缓存变动概率不高,但是对于数据一致性要求较高用户名(UserName)被很多业务所关联查询,但是也不适用于冗余方案(业务上不允许不一致,并且要保持所有冗余存储的地方同步更新很困难)直接删除关联字段不是必须包含的被关联表的字段,可以直接从列表查询中去除订单列表中的产品型号等非关键字,其实并不一定要包含在订单列表中拆分成多次查询对于单个数据的查询,如果涉及多张关联表,有时多分次查询会比一次复杂的关联查询更为合适订单表单中需要查询到关联产品的编码、型号等很多字段5.1数据库层性能优化避免复杂SQL一般需要考虑把复杂的SQL分解成多个简单的SQL执行将复杂的运算尽量留在应用服务器层应用服务器层的水平扩展比数据库扩展更容易实现5.2应用层性能优化Cache特征:读多写少Cache过期机制:重读统计和报表对于统计结果实时性不高的,并且历史数据是不允许修改的情况下,通常可以采用后台任务定时统计的策略–(Spring+Quartz框架)如果历史数据是可以修改的,则相应的后台任务定时统计方案会略有些复杂:对于被修改的历史数据,历史统计结果和报表需要重新运算对于部分统计结果实时性要求很高的功能,则可以在后台任务定时统计的基础上,再加上增量数据实时统计的结果使用全文索引进行搜索异步操作异步操作并没有从本质上提升系统性能或者数据吞吐量。但是异步操作使得用户体验得到了极大的提升,同时也能降低系统的并发负载。因此,将同步操作变成异步操作也是提升性能的一种重要手段。例如,Ajax。5.3Web层性能优化页面加载速度优化HTTP协议HTTP1.0是Browser和Server三次握手建立连接发送数据包HTTP1.1对这种情况有了改进,在HTTP1.1中有PersistentConnection的概念,Server端不会马上关闭连接,这样可以减少连接数,但是维护连接需要消耗服务器资源HTTP请求IE7对ajax请求,是发送两次tcp包。第一个是HTTPHeader,第二个是xmldata。两次tcp发包之间,Server一个ACK确认后才发xmldata。IE7上发送ajax请求会继续使用浏览器已经建立的tcp链接,而IE6发送ajax请求会重新建立新的TCP链接(三次握手)。Firefox中xml和HTTPHeader的最后一个TCP包是一起发出去没有延迟的5.3Yahoo!关于网站优化的35条建议

/performance/rules.html

/alex86gbk/article/details/4438506服务器部分使用内容分发网络为文件头指定Expires或Cache-ControlGZIP压缩文件内容配置ETag尽早刷新输出缓冲使用GET来完成AJAX请求5.3Yahoo!关于网站优化的35条建议

/performance/rules.html

/alex86gbk/article/details/4438506内容部分尽量减少HTTP请求减少DNS查找避免跳转,减少301和302缓存Ajax,GZIP延迟加载提前加载减少DOM元素数量用域名划分页面内容使frame数量最少避免404错误5.3Yahoo!关于网站优化的35条建议

/performance/rules.html

/alex86gbk/article/details/4438506CSS部分把样式表置于顶部避免使用CSS表达式(Expression)用<link>代替@import避免使用滤镜5.3Yahoo!关于网站优化的35条建议

温馨提示

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

最新文档

评论

0/150

提交评论