开源的SaaS解决方案_第1页
开源的SaaS解决方案_第2页
开源的SaaS解决方案_第3页
开源的SaaS解决方案_第4页
开源的SaaS解决方案_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

SaaS关键技术

----开源解决方案Copyright©2009NeusoftCorporation解决方案技术中心开源的SaaS解决方案SaaS关键技术

----开源解1Part1:IT部署视图演化及挑战Part2:动态基础设施Part3:SaaS架构关注技术Part4:Q&A开源的SaaS解决方案Part1:IT部署视图演化及挑战开源的SaaS解决方案2IT系统部署视图演化-1开源的SaaS解决方案IT系统部署视图演化-1开源的SaaS解决方案3N轮视图演化后架构开源的SaaS解决方案N轮视图演化后架构开源的SaaS解决方案4开源的SaaS解决方案开源的SaaS解决方案5演化面对的挑战开源的SaaS解决方案演化面对的挑战开源的SaaS解决方案6Part1:IT部署视图演化及挑战Part2:动态基础设施Part3:SaaS架构关注技术Part4:Q&A开源的SaaS解决方案Part1:IT部署视图演化及挑战开源的SaaS解决方案7云计算关键特性开源的SaaS解决方案云计算关键特性开源的SaaS解决方案8基础设施供应生命周期开源的SaaS解决方案基础设施供应生命周期开源的SaaS解决方案9资源池动态伸缩CloudCloudDDDDDDDDD开源的SaaS解决方案资源池动态伸缩CloudCloudDDDDDDDDD开源的S10Part1:IT部署视图演化及挑战Part2:动态基础设施Part3:SaaS关注技术Part4:Q&A开源的SaaS解决方案Part1:IT部署视图演化及挑战开源的SaaS解决方案11SaaS关键特性高伸缩:多租户,功能可配置,流程可配置开源的SaaS解决方案SaaS关键特性高伸缩:多租户,功能可配置,流程可配置开源的12SaaS架构关注内容开源的SaaS解决方案SaaS架构关注内容开源的SaaS解决方案13数据存储的挑战开源的SaaS解决方案数据存储的挑战开源的SaaS解决方案14传统解决方案VS新兴解决方案开源的SaaS解决方案传统解决方案VS新兴解决方案开源的SaaS解决方案15SQL集群技术-MySQL集群方案有点缺点速度适用场合NDB可用于负载均衡场合;

可用于高可靠性场合;

高伸缩性;

真正的数据库冗余;

容易维护。

随着数据库的变大,对RAM的需求变得更大,因此成本很高几乎比典型的单独服务器(无千兆以太网,无SCI卡,存储引擎相关的限制少)慢10倍。冗余,高可靠性,负载均衡MySQL/GFS-GNBD/HA(Active/Passive)高可靠性

某种程度的冗余

按照高可靠性进行伸缩

没有负载均衡

没有保证的冗余

无法对写操作进行伸缩

对读操作支持得较好需要高可靠性的、读操作密集型的应用MySQL/DRBD/HA(Active/Passive)高可靠性;

一定程度的冗余;

以高可靠性名义来看是可伸缩的

没有负载均衡

没有保证的冗余

在写负载方面没有伸缩性

在读写方面相当于单独服务器需要高可靠性、读操作密集型的应用MySQLWriteMaster/MultipleMySQLReadSlaves(Active/Active)读操作的高可靠性;

读操作的负载均衡;

在读操作负载均衡方面是可伸缩的

无写操作的高可靠性;

无写操作的负载均衡;

在写操作方面无伸缩性

同单独服务器;在读操作方面支持得较好读操作密集型的、需要高可靠性和负载均衡的应用Google

MySQL

MMM技术开源的SaaS解决方案SQL集群技术-MySQL集群方案有点缺点速度适用场合NDB16ShardingvsPartitionShardingPartition存储依赖可跨越DB可跨越物理机器可跨越表空间,不同的物理属性不能跨DB存储存储方式分布式集中式扩展性ScaleOut(横向扩展)ScaleUp(升级设备)可用性无单点,需要处理跨数据事务存在单点(DB数据本身)应用场景web2.0多数传统应用开源的SaaS解决方案ShardingvsPartitionShardingP17数据切分-SQL实现方式优点缺点垂直切分实现简单扩展能力有限

强耦合的应用不容易垂直切分读写分离可有效分担读的压力

主要在数据库层扩展,应用修改小对读写均衡的应用扩展能有限

依赖于数据库本身的同步能力水平切分SaaS普遍使用

扩展性强实施复杂开源的SaaS解决方案数据切分-SQL实现方式优点缺点垂直切分实现简单扩展能力有限18垂直shardinguserphrAppDAL开源的SaaS解决方案垂直shardinguserphrAppDAL开源的SaaS19水平shardingPhr33%Phr33%AppDALPhr34%开源的SaaS解决方案水平shardingPhr33%Phr33%AppDAL20读写分离phrphrAppDAL读/写读开源的SaaS解决方案读写分离phrphrAppDAL读/写读开源的SaaS解决方21SQL数据访问区域(DAL)1.mysqlproxy

实现“读写分离(Read/WriteSplitting)”。基本的原理是让主数据库处理事务性查询,而从数据库处理SELECT查询。数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库。2.Amoeba

Amoeba项目是分布式数据库proxy开发框架。座落与Client、DBServer(s)之间。对客户

端透明。具有负载均衡、高可用性、sql过滤、读写分离、可路由相关的query到目标数据库、可并发请

求多台数据库合并结果。

主要解决:

*降低数据切分带来的复杂多数据库结构

*提供切分规则并降低数据切分规则给应用带来的影响

*降低db与客户端的连接数

*读写分离3.WebsphereII开源的SaaS解决方案SQL数据访问区域(DAL)1.mysqlproxy开源22Case1开源的SaaS解决方案Case1开源的SaaS解决方案23Case1数据生成分布规则:按照20会员每天采集一次监控,每次采集10个指标(都为数值型)计算,按照20万会员2010年全年的数据量,共计生成7.3亿条记录。分布在4个节点中,每台设备1.825亿条。共计50GB。血压标签统计地区执行时间120~15090~12080~90test0np_034539ms15732123140882123TransactionNameMinimumAverageMaximumStd.Deviation90Percentquery0.0010.0343.820.1560.04开源的SaaS解决方案Case1数据生成分布规则:血压标签统计地区执行时间12024Sql数据扩展问题开源的SaaS解决方案Sql数据扩展问题开源的SaaS解决方案25Case2–hadoopHBase&Hive2003年Google三篇论文:GFS,MapReduce,Bigtable

Hbase是一个分布式开源数据库,基于Hadoop分布式文件系统,模仿并提供了基于Google文件系统的Bigtable数据库的所有功能。其目标是处理非常庞大的表,可以用普通的计算机处理超过10亿行数据,并且有数百万列元素组成的数据表。MapReduce是分布式计算软件构架,它可以支持大数据量的分布式并行处理。

开源的SaaS解决方案Case2–hadoopHBase&Hive200326Hadoop软件栈开源的SaaS解决方案Hadoop软件栈开源的SaaS解决方案27Table&ColumnFamily

RowKey

Timestamp

ColumnFamily

血压(高压)血压(低压)phr_user1t312080t213090t1

phr_user2t514070t414585

RowKey:行键,Table的主键,Table中的记录按照RowKey排序Timestamp:时间戳,每次数据操作对应的时间戳,可以看作是数据的versionnumberColumnFamily:列簇,Table在水平方向有一个或者多个ColumnFamily组成,一个ColumnFamily中可以由任意多个Column组成,即ColumnFamily支持动态扩展,无需预先定义Column的数量以及类型,所有Column均以二进制格式存储,用户需要自行进行类型转换。开源的SaaS解决方案Table&ColumnFamily

RowKey28Case2–hadoopHBase&Hive开源的SaaS解决方案Case2–hadoopHBase&Hive开源的S29Case2-hadoop&Hive交易名称交易响应时间(单位:秒)AverageTPSMinimumAverageMaximum90PercentInsert空表0.0010.0121.0760.03595.863Insert(3.06亿)0.0010.0120.0590.03995.758交易名称交易响应时间(单位:秒)AverageTPSMinimumAverageMaximum90PercentQuery0.0140.1454.2380.19627.47交易响应时间(单位:秒)4节点6节点8节点一个月数据140.007140.061147.029一年数据522.351285.998292.867开源的SaaS解决方案Case2-hadoop&Hive交易名称交易响应30SQL与NoSQL整合方案-hadoop&HiveDBMS从MySQL读写部分数据读NoSQLNoSQL同步1.DBMS保存全部数据,主要完成交易类数据的读写2.通过同步技术把DBMS的数据同步到NoSQL数据库中3.NoSQL负责完成历史数据的查询统计分析等工作开源的SaaS解决方案SQL与NoSQL整合方案-hadoop&HiveD31NoSQL数据库--MongoDB开源的SaaS解决方案NoSQL数据库--MongoDB开源的SaaS解决方案32MongoDB与MySQL混搭采用MySQL与mongoDB混搭的模式,利用NoSQL数据的列可以动态扩展的优势来避免在关系数据库为了扩展所采用行转列导致的数据爆炸性增长的问题1.面向集合的存储:适合存储对象及JSON形式的数据。2.动态查询:Mongo支持丰富的查询表达式。3.完整的索引支持:包括文档内嵌对象及数组。Mongo的查询优化器会分析查询表达式4.复制及自动故障转移。不适用:高度事务性的系统传统的商业智能应用开源的SaaS解决方案MongoDB与MySQL混搭采用MySQL与mongoD33SQL数据库扩展的问题ID

<100ID<200AppDALID<300ID<400开源的SaaS解决方案SQL数据库扩展的问题ID<100ID<200AppDAL34NoSQL数据库扩展phrphrAppDALphrphr开源的SaaS解决方案NoSQL数据库扩展phrphrAppDALphrphr开源35数据缓存工作原理DBMS客户端App

ServerCacheDBMSCacheCacheCache第一次,从数据库读取数据,并写入缓存第二次,从缓存读取数据,如果数据不存在,那么,在去数据库查询数据目的:避免磁盘IO提高效率,减轻数据库压力开源的SaaS解决方案数据缓存工作原理DBMS客户端AppServerCache36开源缓存对比实现方式优点缺点Terracotta采用JVM的heap复制方式不是通过对象序列化的方式传输Java实现可以无缝整合到JEE应用本身可以提供集群字节码级的监控可能会影响效率配置比较复杂memcachedC开发效率高对CPU资源要求低水平扩展性强非java应用需要通过socket调用不提供集群技术,需要自己实现,比较复杂Ehcache/OSCache可以运行在中间价同一个JVM中,执行效力高集群需要作缓存同步水平扩展能力有限需要占用JVM的heap开源的SaaS解决方案开源缓存对比实现方式优点缺点Terracotta采用JVM的37云平台缓存方案客户端App

ServerMemcacheEHCacheMemcacheMemcacheMemcacheApp

ServerEHCache采用Memcached作为分布式缓存为了保证系统执行效率采用ehCache作为二级缓存在ehcache设置缓存时间,过期后到Memcached组成的缓存池获得数据。该方案也可以采用Terracotta开源的SaaS解决方案云平台缓存方案客户端AppServerMemcacheEH38应用服务服务区域业务系统的主要业务逻辑运行在应用服务器中,所以,它承担了更大的压力,面临如下挑战:1.大并发访问需要做应用服务器集群2.系统为了更可用性和友好性支持无缝切换开源的SaaS解决方案应用服务服务区域业务系统的主要业务逻辑运行在应用服务器中,所39应用服务器session管理实现方式优点缺点典型做法session复制复制负载可以得到极好均衡,也可以保持对fail-over支持sesion复制对网络压力比较大。

需要应用服务器支持目前流行的中间件产品都支持stickysession实现简单,在负载均衡层或是proxy层做配置即可

不会因为session同步给网络带来压力不能实现完全负载均衡、无法实现failoverapache或是其它webserver做propxy基于cache集中式session应用服务器是无状态,可实现完全负载均衡,不会带来因为session复制带来的网络压力实施复杂,对于部分功能需要定制开发使用Terracotta或是memcache等开源的SaaS解决方案应用服务器session管理实现方式优点缺点典型做法sess40云下有状态应用方案-memached-session客户端App

ServerMemcacheMemcacheMemcacheMemcacheApp

Servermemcached-session-manager具有如下特性:1.支持tomcat6和tomcat72.能够保持sticky会话和nonesticky会话3.能够支持tomcat失败转移4.能够支持Memcached失败转移5.实现session序列化6.可以实现session的异步存储7.Session修改更新Memcached8.JMX管理和监控开源的SaaS解决方案云下有状态应用方案-memached-session客户端A41云下有状态应用方案-Terracotta客户端App

ServerTerracoattTerracoattTerracoattTerracoattApp

Server1.Terracotta本身支持集群,避免单点故障(双机或者多机镜像)2.Terracotta的基础是分布式数据共享和线程协同3.不是通过对象序列化的方式传输,支持Field级别的变更同步4.不需要修改程序5.支持目前主流的中间价agentagent开源的SaaS解决方案云下有状态应用方案-Terracotta客户端AppS42Webserver区域ApachevsNginxvslighttpd反向代理等功能1.作为老牌HttpServer,ApacheHttpd在功能表现上令人满意,配置相对简单,功能丰富并且稳定,可以任意编译添加所需功能的模块。2.Nginx作为新兴的HttpServer,在性能表现上令人满意,功能相对丰富,作为功能相对简单的应用前台HttpServer是可以推荐的,而且HttpServer可以做到动态更改配置文件,不需要长时间中断服务。3.Lighttpd性能表现很好,但是在功能上有很多不稳定之处。开源的SaaS解决方案Webserver区域ApachevsNginxvs43Webserver静态资源分离静态资源(图片,js脚本,css等)使用单独的服务器处理请求浏览器静态资源静态资源动态请求动态请求动态请示动态请示开源的SaaS解决方案Webserver静态资源分离静态资源(图片,js脚本,c44分布式文件作用

SaaS业务系统面临着海量小图片数据的存储问题,这些图片数据大小在几K~几十K不等但数目非常庞大,处理这些海量数据小文件传统文件系统已经不能满足要求,系统在scaling的过程中都遇到了这样的问题:磁盘IO过高;备份困难;单点问题,容量和读写无法水平扩展,还存在故障的可能。使用分布式存储技术来解决图片数据管理和容量扩展等方面的问题客户端App

ServerNAS存储/磁盘阵列App

Server开源的SaaS解决方案分布式文件作用SaaS业务系统面临着海量小图片数据45分布式文件系统工作原理存储节点,即StorageCluster,完成文件管理的所有功能。包括存储、同步和提供存取接口;同时通过对metadata的管理实现了IO的并行和高效访问。具有云存储虚拟、自治、高效特点的实验项目,支持多盘组、异构整合。Tracker,即跟踪器主要负责IO调度,通过负载均衡方式实现可靠、快速的资源存取。

Client可以是以Service的方式对云存储提供IO服务。MogileDFS

VS

FastDFS

开源的SaaS解决方案分布式文件系统工作原理存储节点,即StorageClust46Case3GIS系统地图栅格数据测试开源的SaaS解决方案Case3GIS系统地图栅格数据测试开源的SaaS解决方案47消息队列程序解耦消息可靠性到达异步通信提供效率开源的SaaS解决方案消息队列程序解耦开源的SaaS解决方案48企业级消息队列1.消息严格的排序;2.支持事务3.信息通过持久化的方式保证安全可靠代表产品:1.Apache

ActiveMQ2.JbossMQ3.IBM

MQ4.Weblogic

JMS适合场景:企业级应用中消息可靠传输开源的SaaS解决方案企业级消息队列1.消息严格的排序;开源的SaaS解决方案49互联网消息队列1.消息不需要严格的排序;2.不支持事务大多数情况可接受3.读写数据非常快4.横向扩展性好代表产品:Kestrel适合场景:1.互联网应用中消息动态开源的SaaS解决方案互联网消息队列1.消息不需要严格的排序;开源的SaaS解决方50Case4Kestrel性能表现线程并发数存入10000条消息总时间(单位:秒)平均TPS第一次第二次第三次平均13.1446286813.3789056913.2551921773.2595755163067.88102.3287159322.2632132852.2974953192.2964748454354.5502.6794187122.6436958022.5845161462.6358768873793.8开源的SaaS解决方案Case4Kestrel性能表现线程并发数存入10000条51负载均衡区域http重定向DNS负载均衡反向代理负载均衡IP负载均衡对应产品包括:nginxapachehttpdLVS(网络第四层工作)F5(硬件,四层/七层)redware(硬件,四层/七层)开源的SaaS解决方案负载均衡区域http重定向开源的SaaS解决方案5

温馨提示

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

评论

0/150

提交评论