Windows Azure Platform属于微软Windows平台即服务(PaaS)产品,它运行在微软数据中心的服务器和网络基础设施上的,通过公共互联网对外提供服务,它由高扩展性(弹性)云操作系统,数据存储网络和相关服务组成,服务都是通过物理或逻辑(虚拟的)Windows Server 2008实例提供。Windows Azure软件开发包(SDK)提供了一个开发版基于云的服务,以及开发、部署和管理Windows Azure中可扩展服务需要的工具和API,包括适用于标准Azure应用程序的Visual Studio 2008或2010模板。图1显示了Windows Azure Platform的主要组成组件。
图 1 Windows Azure Platform组成组件
Windows Azure操作系统
Windows Azure是Windows Azure Platform上运行云服务的底层操作系统,微软将Windows Azure定为云中操作系统的商标,它提供了托管云服务需要的所有功能,包括运行时环境,如Web服务器、计算服务、基础存储、队列、管理服务和负载均衡,Windows Azure也为开发人员提供了本地开发网络,在部署到云之前,可以在本地构建和测试服务,图2显示了Windows Azure的三个核心服务。
图 2 Windows Azure核心服务
Windows Azure的三个核心服务分别是计算(Compute)、存储(Storage)和管理(Management)。
计算:计算服务在64位Windows Server 2008平台上由Hyper-V支持提供可扩展的托管服务,这个平台是虚拟化的,可根据需要动态调整。
存储:Windows Azure支持三种类型的存储,分别是Table,Blob和Queue。它们支持通过REST API直接访问。注意Windows Azure Table和传统的关系数据库Table有着本质的区别,它有独立的数据模型,Table通常用来存储TB级高可用数据,如电子商务网站的用户配置数据,Blob通常用来存储大型二进制数据,如视频,图片和音乐,每个Blob最大支持存储50GB数据,Queue是连接服务和应用程序的异步通信信道,Queue可以在一个Windows Azure实例内使用,也可以跨多个Windows Azure实例使用,Queue基础设施支持无限数量的消息,但每条消息的大小不能超过8KB。任何有权访问云存储的帐户都可以访问Table,Blob和Queue。
管理:包括虚拟机授权,在虚拟机上部署服务,配置虚拟交换机和路由器,负载均衡等。
#p#
SQL Azure
SQL Azure是Windows Azure Platform中的关系数据库,它以服务形式提供核心关系数据库功能,SQL Azure构建在核心SQL Server产品代码基础上,开发人员可以使用TDS(Tabular Data Stream)访问SQL Azure。图3显示了SQL Azure的核心组件。
图 3 SQL Azure核心组件
SQL Azure的核心组件包括管理数据存储(Relational Data Storage),数据同步(Data Sync),管理(Management)和数据访问(Data Access)。
关系数据存储:它是SQL Azure的支柱,它提供传统SQL Server的功能,如表、视图、函数、存储过程和触发器等。
数据同步:提供数据同步和聚合功能。
管理:为SQL Azure提供自动配置、计量、计费、负载均衡、容错和安全功能。
数据访问:定义访问SQL Azure的不同编程方法,目前SQL Azure支持TDS,包括ADO.NET,实体框架,ADO.NET Data Service,ODBC,JDBC和LINQ客户端。
#p#
.NET服务
.NET服务是Windows Azure Platform的中间件引擎,提供访问控制服务和服务总线。图4显示了.NET服务的两个核心服务。
图 4 .NET服务的核心服务
访问控制(Access Control):访问控制组件为分布式应用程序提供规则驱动,基于声明的访问控制。
服务总线(Service bus):它和我们常说的企业服务总线(Enterprise Service Bus,ESB)类似,但它是基于互联网的,消息可以跨企业,跨云传输,它也提供发布/订阅,点到点和队列等消息交换机制。
#p#
Live服务
Microsoft Live服务是以消费者为中心的应用程序和框架的集合,包括身份管理,搜索,地理空间应用,通信,存储和同步。图5显示了Live服务的核心组件。
图 5 Live服务的核心组件
Mesh服务(Mesh service):向用户、设备、应用程序和数据同步提供编程访问。
身份服务(Identity service):提供身份管理和授权认证。
目录服务(Directory Service):管理用户、标识、设备、应用程序和他们连接的网络的关系,如Live Mesh中用户和设备之间的关系。
存储(Storage):管理Mesh中用户、设备和应用程序的数据临时性存储和持久化存储,如Windows Live Skydrive。
通信和状态(Communications & Presence):提供设备和应用程序之间的通信基础设施,管理它们之间的连接和显示状态信息,如Windows Live Messenger和Notifications API。
搜索(Search):为用户、网站和应用程序提供搜索功能,如Bing。
地理空间(Geospatial):提供丰富的地图,定位,路线,搜索,地理编码和反向地理编码服务,如Bing地图。
Live框架(Live Framework):Live框架是跨平台,跨语言,跨设备Live服务编程统一模型。
#p#
Windows Azure Platform的用途
根据微软官方的说法,Windows Azure Platform的主要用途是:
• 给现有打包应用程序增加Web服务功能;
• 用最少的资源构建、修改和分发应用程序到Web上;
• 执行服务,如大容量存储,批处理操作,高强度计算等;
• 快速创建、测试、调试和分发Web服务;
• 降低构建和扩展资源的成本和风险;
• 减少IT管理工作和成本。
微软是在2008年10月末发布Azure的,在当时的经济环境下,Azure的到来给正处于经济寒冬的中小型企业,甚至是大型企业带来了一阵春风,降低成本成为企业选择Azure的主要动机。
微软设计Azure Platform时充分考虑了现有的成熟技术和技术人员的知识,.NET开发人员可以继续使用Visual Studio 2008创建运行于Azure的ASP.NET Web应用程序和WCF(Windows Communication Framework)服务,Web应用程序运行在一个IIS(Internet Information Services)7沙盒版本中,以文件系统为基础的网站项目不受支持,后来微软推出了“持久化Drive”存储,Web应用程序和基于Web的服务以部分信任代码访问安全(Code Access Security)模式运行,基本符合ASP.NET的中等信任和对某些操作系统资源的有限访问。
Windows Azure SDK为调用非.NET代码启用了非强制的完全信任代码访问安全,使用要求完全信任的.NET库,使用命名管道处理内部通信。微软承诺在云平台中支持Ruby,PHP和Python代码,最初的开发平台仅限于支持Visual Studio 2008及更高版本,未来有计划支持Eclipse。
Azure Platform支持的Web标准和协议包括SOAP,HTTP,XML,Atom和AtomPub。
【编辑推荐】