微软豪赌云计算:Windows Azure露锋芒

继SOA、Web 2.0之后,云计算成为如今最炙手可热的IT技术。正如微软中国掌门人张亚勤博士所说的那样,云计算正在改变整个IT产业。

那么,究竟什么是云计算?云计算为何如此强大呢?我们先来引述一下微软CEO斯蒂夫鲍尔默的话吧,“云是一种革命性的计算模式,它把用户手边的计算设备与超大规模数据中心的处理和存储能力相连接,把计算从受限的资源转变为几乎无限的平台,而不管身处何地,都能把用户与他们需要的信息连接起来。”鲍尔默信心满满地指出,要在今年投入95亿美金,打造以Windows Azure为核心的云计算技术,与之相对应的是70%的员工投入到云相关的产品与服务,到明年,这一数字将变为90%。

这让笔者想到了关于IT巨头IBM的一个著名商业案例。48年前,IBM总裁小沃森投入50亿美金研发IBM 主机System/360,成为IBM 历史上最大的商业豪赌。如今,由System/360演化而来的Z系列成了IBM最赚钱的机器。

为什么微软会对Windows Azure如此信心满满,而Windows Azure究竟是什么呢?

我知道,按照服务模型分类,云计算可分为SaaS,IasS,PaaS。SaaS是目前使用最多的一种服务模式,用户按照某种协议SLA,直接通过网络从服务商获取软件服务。IaaS指的是把IT基础设施作为一种服务通过网络对外提供。在这种服务模式下,用户不用自己构建一个数据中心,而是通过租用的方式来使用基础设施服务,包括服务器、存储和网络等。PaaS则是指将一个完整的应用程序运行平台作为一种服务提供给客户。这种服务模式下,客户不需要购买底层硬件与平台软件,而只需要利用PaaS平台,就能够创建,测试与部署应用程序。

Windows Azure Platform本身就是一个PaaS解决方案,为应用程序提供托管与运行服务。从体系结构上看,Windows Azure Plaform包括一个云计算操作系统Windows Azure、云关系数据库SQL Azure,和一个为开发者提供的服务集合.NET Services。对于开发者而言,既可以在开发创建应用,直接部署到Azure平台运行,也可以使用Azure平台提供的服务。Windows Azure Platform的目标是为了让开发人员可以把重点关注放在业务逻辑上,而不是在部署与管理云服务的基础架构上,从而节省了开发部署的时间和费用。

从一个较高的角度来看,理解什么是云计算操作系统Windows Azure,这其实并不难:它是一个在云端运行Windows应用与存储其数据的平台,向外提供计算服务与存储服务。Windows Azure运行在很多机器上。这些机器微软分布在全球各地的数据中心,并且能通过互联网访问。Windows Azure通过Fabric控制器将这些数量巨大的计算与存储资源组织成一个整体。而Windows的计算服务与存储服务就构建在这个Fabric架构之上。

下面,我们分别讨论一下Windows Azure的计算服务与存储服务。

Windows Azure的计算服务

用户可以通过Visual Studio,Windows Azure for Visual Studio插件,以及Windows Azure SDK开发,调试,测试,部署应用。例如,使用ASP.NET开发网站,WCF开发Web Service,WF开发工作流等。

Windows Azure将运行在该平台的应用称为托管服务,并被分为不同的角色:Web Role与Worker Role。每一个角色可以有多个实例,每一个实例对应一台VM。而背后提供虚拟化服务的技术核心是Windows Azure Hypervisor。从这个角度来说,Windows Azure运行在数据中心的多台Windows 2008服务器,借助Hyper-V的定制虚拟化服务,提供云计算服务。

简单地,我们可以把Web Role理解为一个Web站点或者Web服务。而Worker Role则用来托管通用代码,这些代码用来执行一些长期的,非交互的任务。比如Worker Role可用来托管Apache Tomcat。

Web Role与Worker Role对应的实例都是独立运行在不同的虚拟机上,其通信机制既可以是同步式的直接网络调用,也可也是消息队列服务式异步传递。

关于Web Role与Worker Role的管理,是通过一个称为Windows Azure SDK的API实现的。这些API作为Windows Azure SDK的一部分,可用于在本地开发Windows Azure 应用程序。

Windows Azure的存储服务

Windows Azure的存储服务是一个可扩展的、高可用性的持久化服务,可以存储任何类型的应用程序数据。按类型划分,Windows Azure存储服务可分为:

大型二进制对象Blob:Blob为存储大型的二进制对象而设计,例如图片,视频,音频文件等。

Windows Azure Drive:提供了一个存储在Windows Azure的虚拟硬盘,可让用户像操作NTFS硬盘一样读写数据。

表:与关系数据库对应,用于存储数据巨大而结构相对简单的数据。

消息队列:为可靠的异步消息传递而设计的数据类型。

总结

未来几月,微软将重点开发新一代Windows Azure云平台,目标是促进Windows Azure从PaaS向LaaS的云服务战略转型,微软将从三个方面重点发力,调整Azure平台的虚拟机实现方式,实现用户能够在Windows和Linux虚拟机中自由运行,实现SQL Server与SharePoint应用;Windows Azure将新增持久化功能;新增虚拟机运行Linux。我们也期待Windows Azure的计算服务与存储服务越来越好。