企业级PAAS平台-数据库资源池

标签: 随笔文章 | 发表时间:2012-03-03 11:19 | 作者:人月神话
出处:http://blog.sina.com.cn/cmmi
对PAAS平台层的能力,比较核心的有两个,一个是数据库资源池,一个是中间件资源池,其达到的目标是相同的,即让数据库资源和中间件资源对应用系统来说变化为黑盒,实现集中化的资源分配和管理监控,实现数据库和中间件资源的弹性扩展。在这里DAAS个人有两个方面的理解,一个是数据库即服务,一个是数据即服务,前者的重点是数据库各种管理操作转化为服务提供,后面一种则更加强调的数据的访问和存储操作以服务的方式提供。

对于数据库即服务,可以看做是数据库管理即服务,比如用户提出申请,最终可以返回一个可用的数据库实例SID给用户,至于数据库创建在哪里,资源是如何分配的用户不用关系。那到数据库SID后,可以很方便的进行后续的数据即服务操作。而对于数据即服务可以看做是对数据访问和数据CRUD操作的进一步封装,类似于传统构建应用系统时候的DAL数据访问层的封装。所有的业务系统开发都遵循相同的数据访问和操作接口。

在IAAS层的时候我们实现了物理资源的集中化,但是物理资源最终还是承载的应用,这就要求我们更多的去考虑承载应用的逻辑资源的集中化。而数据库资源池可以讲重点是解决数据库的集中和统一的问题。而对于数据库的集中化本身有包括了两个方面的重要内容。其一是访问集中,其二是数据集中。

访问集中重点是构建统一的数据库访问层和标准的数据访问API框架,但是底层仍然可能有多个数据库,数据库本身也可能是异构的多种数据库。对于数据集中即对于关系型和非关系型各自采用一个完全集中化的数据库。不再存在以往业务系统构建过程中出现了跨数据库的数据交换和数据集成。对于访问集中可以看到通过对底层数据库的封装和适配是比较容易实现的。对于数据集中关系型数据库和非关系型数据库各自又有不同的实现。

关系型数据库的集中必然带来数据库本身的水平扩展能力的要求,对于Oracle数据库我们看到有RAC集群方面的支持。对于MySQL数据库现在也有Cluster的方案,而对于MySQL数据库的集群本身又包括了两种实现模式,一种是基于NDB的存储引擎的完全双向同步和数据表的分片,而对于innodb引擎通过单向复制实现的读写分离仍然可以实现数据库的扩展性要求。下面对数据分片和读写分离两种模式再做一个说明:

数据分片包括了对数据表数据的水平切分和纵向切分,但是一般较难以实现同时存在两个切分。数据切片类似于hash区分,通过应用架构来解决数据路由和数据合并的问题。数据分片有很强的水平扩展性而且基本可以保持线性扩展,而且由于采用多副本技术,完全可以解决单节点故障的问题。但是数据分片模式下往往是降低了数据库查询的性能,特别是对于一些复杂的多表查询往往都需要跨多个物理数据库节点进行路由和合并。而对于NDB的MySQL集群基于内存数据库,对于数据库内存要求很大,大数据量的查询往往是重要瓶颈。

读写分离是另外一种现在常用的数据库集群和扩展性的解决方案。读写分离分为master和slave节点,在master写入数据后通过数据复制技术实现快速的数据复制操作到slave节点。对于多个slave节点完全保持和master节点的准实时一致性,于多个slave节点可以形成数据库的读集群,也可以架构在四层交换机之上实现负载均衡。

对于NoSQL数据库本身就有很强的水平扩展能力,但是现在企业信息化应用中能够采用NoSQL数据库的场景并不是很多,特别是对于有很强的数据关系和事务要求的场景,往往很难通过NoSQL数据库来实现。我一直在考虑的一个问题是基于NoSQL数据库的系统分析和设计和原有的基于关系型数据库的分析和设计有很大的区别。基于NoSQL数据库分析和设计更加要求有面向对象分析和设计意识,包括最近分析的对于DDD领域驱动设计的分析设计思路更加适合基于NoSQL数据库的系统构建。

相关 [企业 paas 数据库] 推荐:

企业级PAAS平台-数据库资源池

- - 人月神话的BLOG
对PAAS平台层的能力,比较核心的有两个,一个是数据库资源池,一个是中间件资源池,其达到的目标是相同的,即让数据库资源和中间件资源对应用系统来说变化为黑盒,实现集中化的资源分配和管理监控,实现数据库和中间件资源的弹性扩展. 在这里DAAS个人有两个方面的理解,一个是数据库即服务,一个是数据即服务,前者的重点是数据库各种管理操作转化为服务提供,后面一种则更加强调的数据的访问和存储操作以服务的方式提供.

企业内PAAS基础平台-开篇

- - 人月神话的BLOG
关于企业内私有云和PaaS平台将是今年关注的一个重要内容,对于PaaS平台前面已经有部分文章在阐述,后续将根据项目实践情况进一步思考和总结. 可以讲后续IaaS将已经不是企业内部私有云得重点,对于IaaS层得云化和资源池的形成如果不和内部的PaaS平台结合和集成,将很难真正的发挥具体的作用. 而对于PaaS平台本身我们在10年就看到电信运营商针对外部互联网应用,移动互联网应用开发的PaaS平台,主要是电信侧CT能力的开放和集成,形成统一的开发平台,集成平台和运行环境.

谈企业私有云PaaS层核心技术

- - 人月神话的BLOG
在这里简单谈下企业私有云paas平台所涉及到的核心技术内容. 首先谈下数据库,首先要意识到数据库的集中包括了两个方面的内容,一个是数据库服务器硬件的集中化,一个是数据本身的集中化. 对于类似oralce rac集群数据库实现的是数据库硬件,软件和数据的全部集中,但是数据库集群算不上真正的分布式数据库.

Java PaaS 对决

- 呆瓜 - IBM developerWorks 中国 : 文档库
本文为 Java 开发人员比较了三种主要的 Platform as a Service (PaaS) 产品:Google App Engine for Java、Amazon Elastic Beanstalk 和 CloudBees RUN@Cloud. 它分析了每种服务独特的技术方法、优点以及缺点,而且还讨论了常见的解决方法.

私有云PaaS和公有云PaaS的异同点-转载

- - 人月神话的BLOG
原文:http://zhidao.ithaowai.com/?q-1256.html. 对于互联网企业,成本压力和指数级的业务增长压力使他们关注于物理资源的利用率和应用的可扩展性. 在应用服务器这层,通过Cluster Session来实现水平扩展;在数据存储这层,采用基于BASE模型的NOSQL数据存储来实现扩展.

如何让NoSQL内存数据库适合企业级应用

- - CSDN博客数据库推荐文章
如何让NoSQL内存数据库适合企业级应用. 作者:chszs,转载需注明. 博客主页: http://blog.csdn.net/chszs. 英文原文: How to Make Your In-memory NoSQL Datastores Enterprise-Ready. 对于每一个关注用户体验的Web应用或移动应用而言,NoSQL内存数据库(例如开源的 Redis和Memcached)正逐步成为事实上的标准.

衡量企业应用数据库性能的6大指标

- - OneAPM 博客
【编者按】本文作者是 Omed Habib,在其职业生涯中花费了大量的时间不断探索一些新方法以提高大型 Web 应用的性能状况. 本篇文章中,作者详细介绍了数据库的六大性能指标,帮助我们更好对数据库性能进行评估和改进. 在前一篇文章中,我们曾对 SQL 和非 SQL 进行过简要介绍. 本文基于这些主题,通过回顾最重要的六个性能指标,帮助评估企业应用数据库的健康状况.

Apache Stratos 4.0.0 发布,PaaS 框架

- - 开源中国社区最新新闻
Apache Stratos 是一个支持多语言的 PaaS 框架,提供一个云端的开发、测试和运行可伸缩应用程序的环境. 提供高利用率、自动化资源管理和平台的监控以及收费管理. Apache Stratos 可运行 Tomcat、PHP 和 MySQL 应用作为服务,带来自服务管理、弹性扩展、多租户的部署、使用监控等等.

MySQL企业级数据库灾备(备份)系统-DMB v2.1发布

- 彦强 - MySQL 实验室(BLOG) - MySQL性能、MySQL Cluster集群、MySQL HA高可用等研究 - MySQL实验室
为了这系统宅了很多个周末,又一个小长假过去了, DMB v2.1终于可以那得出手了,现在分享出来让朋友们使用,希望能得到更多更好的建议. DMB 对InnoDB存储引擎支持在线热备(ibbackup, xtrabackup等),还可以根据用户需求选择备份模式,是否加锁获取Master信息等. “DMB数据库监控及灾备系统(监控、备份) for MySQL” 简单介绍见 http://www.mysqlab.net/tool/dmb/.

红帽的 PaaS 平台 OpenShift 支持 Java EE 6

- Jackphone - ITeye资讯频道
红帽公司刚对其旗下的 PaaS (Platform-as-a-Service) 平台—— OpenShift 做了改进,增加对 Java EE 6 的支持,这使得 OpenShift 成为第一个支持 Jaav EE 6 的 PaaS 解决方案平台. 该免费平台使用了最近刚发布的 JBoss Application Server 7  版本,用于帮助开发者在云端更便捷地构建和发布Java 的应用程序.