您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 开源的SaaS解决方案_0.9
Copyright©2010NeusoftCorporationSaaS关键技术----开源解决方案Copyright©2009NeusoftCorporation解决方案技术中心Part1:IT部署视图演化及挑战Part2:动态基础设施Part3:SaaS架构关注技术Part4:Q&A东软绝密/秘密/内部公开IT系统部署视图演化-1东软绝密/秘密/内部公开N轮视图演化后架构东软绝密/秘密/内部公开东软绝密/秘密/内部公开演化面对的挑战•计算资源快速的供给•应用快速部署•资源按需分配•自动化管理的能力基础设施可扩展•应用服务器可水平扩展•数据库水平可扩展•异步消息队列•缓存机制•应用负载均衡•流程可定制•功能可配置应用架构可扩展Part1:IT部署视图演化及挑战Part2:动态基础设施Part3:SaaS架构关注技术Part4:Q&A东软绝密/秘密/内部公开云计算关键特性计算服务化资源虚拟化管理智能化自服务化东软绝密/秘密/内部公开基础设施供应生命周期东软绝密/秘密/内部公开资源池动态伸缩CloudCloudDDDDDDDDDPart1:IT部署视图演化及挑战Part2:动态基础设施Part3:SaaS关注技术Part4:Q&A东软绝密/秘密/内部公开SaaS关键特性高可用性高伸缩性高性能高伸缩:多租户,功能可配置,流程可配置东软绝密/秘密/内部公开SaaS架构关注内容1.数据存储区域2.数据访问区域3.缓存区域4.应用服务服务区域5.Web服务器区域6.分布式文件区域7.MQ消息队列区域8.负载均衡区域9.其它技术东软绝密/秘密/内部公开数据存储的挑战•完全独立模式(独立数据库模式)•部分独立模式(共享数据库、独立数据结构模式)•完全共享模式(共享数据库、共享数据结构模式)SaaS数据存储模式•高并发的数据读写访问•海量数据的高效读写访问及管理•高扩展及高可用性成长的烦恼东软绝密/秘密/内部公开传统解决方案VS新兴解决方案SQL•采用集群方式分担系统压力•Partition方式•Sharding方式(垂直,水平)•读写分离•预留字段•值对/行专列•Xml扩展•不足:•扩展性不好•成本高NoSQL•内置集群支持很容易水平扩展•强大数据备份功能•支持Mapreduce功能•不足:•不支持SQL•目前都是开业的没有商业产品•不支持或是局部支持事务东软绝密/秘密/内部公开SQL集群技术-MySQL集群方案有点缺点速度适用场合NDB可用于负载均衡场合;可用于高可靠性场合;高伸缩性;真正的数据库冗余;容易维护。随着数据库的变大,对RAM的需求变得更大,因此成本很高几乎比典型的单独服务器(无千兆以太网,无SCI卡,存储引擎相关的限制少)慢10倍。冗余,高可靠性,负载均衡MySQL/GFS-GNBD/HA(Active/Passive)高可靠性某种程度的冗余按照高可靠性进行伸缩没有负载均衡没有保证的冗余无法对写操作进行伸缩对读操作支持得较好需要高可靠性的、读操作密集型的应用MySQL/DRBD/HA(Active/Passive)高可靠性;一定程度的冗余;以高可靠性名义来看是可伸缩的没有负载均衡没有保证的冗余在写负载方面没有伸缩性在读写方面相当于单独服务器需要高可靠性、读操作密集型的应用MySQLWriteMaster/MultipleMySQLReadSlaves(Active/Active)读操作的高可靠性;读操作的负载均衡;在读操作负载均衡方面是可伸缩的无写操作的高可靠性;无写操作的负载均衡;在写操作方面无伸缩性同单独服务器;在读操作方面支持得较好读操作密集型的、需要高可靠性和负载均衡的应用GoogleMySQLMMM技术东软绝密/秘密/内部公开ShardingvsPartitionShardingPartition存储依赖可跨越DB可跨越物理机器可跨越表空间,不同的物理属性不能跨DB存储存储方式分布式集中式扩展性ScaleOut(横向扩展)ScaleUp(升级设备)可用性无单点,需要处理跨数据事务存在单点(DB数据本身)应用场景web2.0多数传统应用东软绝密/秘密/内部公开数据切分-SQL实现方式优点缺点垂直切分实现简单扩展能力有限强耦合的应用不容易垂直切分读写分离可有效分担读的压力主要在数据库层扩展,应用修改小对读写均衡的应用扩展能有限依赖于数据库本身的同步能力水平切分SaaS普遍使用扩展性强实施复杂东软绝密/秘密/内部公开垂直shardinguserphrAppDAL东软绝密/秘密/内部公开水平shardingPhr33%Phr33%AppDALPhr34%东软绝密/秘密/内部公开读写分离phrphrAppDAL东软绝密/秘密/内部公开SQL数据访问区域(DAL)1.mysqlproxy实现“读写分离(Read/WriteSplitting)”。基本的原理是让主数据库处理事务性查询,而从数据库处理SELECT查询。数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库。2.AmoebaAmoeba项目是分布式数据库proxy开发框架。座落与Client、DBServer(s)之间。对客户端透明。具有负载均衡、高可用性、sql过滤、读写分离、可路由相关的query到目标数据库、可并发请求多台数据库合并结果。主要解决:*降低数据切分带来的复杂多数据库结构*提供切分规则并降低数据切分规则给应用带来的影响*降低db与客户端的连接数*读写分离3.WebsphereII东软绝密/秘密/内部公开Case1AmoebaSQLRouterSQLRequestSharding3(分片集合)Sharding2(分片集合)Sharding1(分片集合)ResultMergeLoadBalance/RouterTierDatabaseServerTier分片读写分片读写分片读写Sharding4(分片集合)分片读写Sharding1Sharding2Sharding3Sharding4Partition1Partition4Partition3Partition2Partition1Partition4Partition3Partition2Partition1Partition4Partition3Partition2Partition1Partition4Partition3Partition2AmoebaAmoeba东软绝密/秘密/内部公开Case1•数据生成分布规则:•按照20会员每天采集一次监控,每次采集10个指标(都为数值型)计算,按照20万会员2010年全年的数据量,共计生成7.3亿条记录。分布在4个节点中,每台设备1.825亿条。共计50GB。血压标签统计地区执行时间120~15090~12080~90test0np_034539ms15732123140882123TransactionNameMinimumAverageMaximumStd.Deviation90Percentquery0.0010.0343.820.1560.04东软绝密/秘密/内部公开Sql数据扩展问题东软绝密/秘密/内部公开Case2–hadoopHBase&Hive2003年Google三篇论文:GFS,MapReduce,Bigtable•Hbase是一个分布式开源数据库,基于Hadoop分布式文件系统,模仿并提供了基于Google文件系统的Bigtable数据库的所有功能。其目标是处理非常庞大的表,可以用普通的计算机处理超过10亿行数据,并且有数百万列元素组成的数据表。•MapReduce是分布式计算软件构架,它可以支持大数据量的分布式并行处理。东软绝密/秘密/内部公开Hadoop软件栈东软绝密/秘密/内部公开Table&ColumnFamilyRowKeyTimestampColumnFamily血压(高压)血压(低压)phr_user1t312080t213090t1phr_user2t514070t414585RowKey:行键,Table的主键,Table中的记录按照RowKey排序Timestamp:时间戳,每次数据操作对应的时间戳,可以看作是数据的versionnumberColumnFamily:列簇,Table在水平方向有一个或者多个ColumnFamily组成,一个ColumnFamily中可以由任意多个Column组成,即ColumnFamily支持动态扩展,无需预先定义Column的数量以及类型,所有Column均以二进制格式存储,用户需要自行进行类型转换。东软绝密/秘密/内部公开Case2–hadoopHBase&Hive东软绝密/秘密/内部公开Case2-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东软绝密/秘密/内部公开SQL与NoSQL整合方案-hadoop&HiveDBMS从MySQL读写部分数据读NoSQLNoSQL同步1.DBMS保存全部数据,主要完成交易类数据的读写2.通过同步技术把DBMS的数据同步到NoSQL数据库中3.NoSQL负责完成历史数据的查询统计分析等工作东软绝密/秘密/内部公开NoSQL数据库--MongoDBInternetMongosServerSharding1ShardingN…LANApplicationServerClient东软绝密/秘密/内部公开MongoDB与MySQL混搭MysqlMasterBackupMysqlSlaveMysqlSlaveMongoDBMasterMongoDBSlaveDALClientMongoDBMasterMongoDBSlave采用MySQL与mongoDB混搭的模式,利用NoSQL数据的列可以动态扩展的优势来避免在关系数据库为了扩展所采用行转列导致的数据爆炸性增长的问题1.面向集合的存储:适合存储对象及JSON形式的数据。2.动态查询:Mongo支持丰富的查询表达式。3.完整的索引支持:包括文档内嵌对象及数组。Mongo的查询优化器会分析查询表达式4.复制及自动故障转移。不适用:高度事务性的系统传统的商业智能应用东软绝密/秘密/内部公开SQL数据库扩展的问题ID100ID200AppDALID300ID400东软绝密/秘密/内部公开NoSQL数据库扩展phrphrAppDALphrphr东软绝密/秘密/内部公开数据缓存工作原理DBMS客户端AppServerCacheDBMSCacheCacheCache第一次,从数据库读取数据,并写入缓存第二次,从缓存读取数据,如果数据不存在,那么,在去数据库查询数据目的:避免磁盘IO提高效率,减轻数据库压力东软绝密/秘密/内部公开开源缓存对比实现方式优点缺点Terracotta采用JVM的heap复制方式不是通过对象序列化的方式传输Java实现可以无缝整合到JEE应用本身可以提供集群字节码级的监控可能会影响效率配置比较复杂memcachedC开发效率高对CPU资源要求低水平扩展性强非java应用需要通过socket调用不提供集群技术,需要自己实现,比较复杂Ehcache/OSCache可以运行在中间价同一个JVM中,执行效力高集群需要作缓存同步水平扩展能力有限需要占用JVM的heap东软绝密/秘密/内部公开云平台缓存方案客户端AppServerMemcacheEHCacheMemcacheMemcacheMemcacheAppSer
本文标题:开源的SaaS解决方案_0.9
链接地址:https://www.777doc.com/doc-4806020 .html