众所周知,在微软的云计算战略中云操作系统Windows Azure、云数据库SQL Azure起到非常重要的架构作用。其中,Windows Azure主要包括三个部分,一是运营应用的计算服务;二是数据存储服务;三是基于云平台进行管理和动态分配资源的控制器(Fabric Controller)。而数据库在整个微软云战略中发挥了重要的作用,特别是云数据库SQL Azure更是如此。
话说,SQL Azure是一个关系型云数据库,它可以在任何时间提供客户数据应用。SQL Azure底层是基于SQL Server 2008做得技术构建,以Windows Azure为基座平台,配合Windows Azure的特性。并且,SQL Azure也是一种分散在许多实体基础架构(Physical Infrastucture)与其内部许多虚拟服务器(Virtual Servers)的一种云端储存服务,提供网络型的应用程式资料储存的服务。而且SQL Azure在云端中由多个服务器来提供服务,每一次连线所提供服务的服务器可能会不同,因此也可以保证云端储存的高度可用性。
下面,编者从SQL Azure的可管理性、高可用性、可扩展性、熟悉的开发模式以及关系型数据模型等方面细数一下企业选择云中数据库SQL Azure的六个理由。
理由一、自主管理
SQL Azure提供了企业级数据中心的规模和能力,省去了日常管理本地SQL Server实例的时间成本。自主管理的能力,使得企业既不用增加本地IT部门的支持负荷,也不用消耗职员的精力去维护部门的数据库应用,还能够在整个企业内为应用程序提供数据服务。有了SQL Azure,可以在极短的时间内准备好你的数据库存储,可以订阅所需要的存储服务,从而减少部署和运维数据库的初始投资。当需求变化时,还可以快速地减小或者增加数据库服务来满足需求。
理由二、高可用性
SQL Azure构建于久经考验的Windows Server和 SQL Server技术之上,拥有足够的弹性以处理所有的负载变化。服务会在多台物理服务器上复制多份冗余拷贝,以维持数据的可用性和业务持续性。如果一台硬件出故障,SQL Azure提供的自动执行故障转移可以确保应用程序的可用性。
理由三、可扩展性
SQL Azure的一大关键优势在于能够轻松扩展您的解决方案。随着数据增长,数据库也需要纵向扩展和横向扩展。纵向扩展往往会有一个上限,而横向扩展并没有实际的限制。通常横向扩展的方法是数据分割。在分割了数据之后,服务随着数据增长而扩展。一个按使用付费(Pay as You Go)的计价模式,确保了之需为您所使用的存储付费,所以当不需要时可以随时缩减服务的规模。
理由四、熟悉的开发模式
当开发者创建使用SQL Server的本地应用程序时,他们使用客户端库,例如ADD.NET、ODBC。它们使用TDS协议在客户端与服务器之间通信。SQL Azure提供了与SQL Server一致的TDS接口,所以,可以使用相同的工具和类库构建应用程序来访问SQL Azure中的数据。(更多TDS相关信息,请参阅MSDN网站上的《网络协议和TDS终结点(Network Protocols and TDS Endpoints)》。)
SQL Azure服务架构(图片来源于网络)
注意:客户端和数据库服务器之间传输数据,数据包是有格式的。在SQL Server中被称为TDS(Tabular Data Stream), TDS是一种应用程序层的协议,用来在数据库服务器和客户端之间交换数据。最初,这个协议是在1984年由Sybase公司为他们的产品Sybase SQL Server的关系型数据库引擎开发的,后来为微软在Microsoft SQL Server中所使用。
理由五、关系型数据模型
SQL Azure对于开发者和管理员来说应该很容易上手,因为SQL Azure使用关系型数据模型,数据存储于SQL Azure上就和存储于SQL Server上一样,在概念上类似于一个本地SQL Server实例。一个SQL Azure服务器就是一组数据库的逻辑组合,是一个独立的授权单位。
在每个SQL Azure服务器内,可以创建多个数据库,每个数据库可以拥有多个表、视图、存储过程、索引和其他熟悉的数据库对象。该数据模型可以很好地重用现有的关系型数据库设计、Transact-SQL编程技能和经验,简化迁移现有本地数据库应用程序至SQL Azure的过程。
SQL Azure服务器和数据库都是逻辑对象,并不对应于物理服务器和数据库。通过用户与物理实现的隔离,SQL Azure使得用户可以将时间专用于数据库设计和业务逻辑上。
理由六、灵活的数据库版本
SQL Azure数据库提供了两个不同的版本:Web版本和商业版本。两个版本都提供可扩展性、自动化的高可用性和自动配置等功能。
Web版本的数据库服务适用于小型的Web应用。这个版本的数据库支持最大1GB和5GB的容量。
商业版本的数据库服务适用于软件企业开发的业务应用程序。这个版本的数据库支持最大10GB到50GB的容量。
在云中创建数据库的时候,用户可以定义数据库的版本和最大容量。用户通过T-SQL可以使用CREATE DATABASE语句创建一个数据库,并指定这个数据库的最大容量(MAXSIZE)。如果数据量增加并超过了数据库最大容量,用户将收到一条错误信息。用户可以通过T-SQL还用ALTER DATABASE来扩大数据库的最大容量。