现在业界的云太多,每朵都很很有特点,呵呵! 对于微软而言,Windows Azure是它云战略的核心。之前一直对其只有模糊的印象,David Chappell 的文章 -Introducing Windows Azure - 详细介绍Windows Azure的基础知识和特点,帮助澄清了之前的一些误解, 例如:之前一直认为 Windows Azure只是一个PaaS平台,但随着 Windows Azure Virtual Machines 的引入,Azure如今支持 IaaS了。很好的介绍,在此推荐给大家!
下图是 Windows Azure主要模块的分类,很给力的一幅配图,对于整体把握Azure很有帮助。更准确的讲,对于Azure而言,其模块(component)都是以服务 (service)形式存在的。
执行模型(Execution Model)
云平台最基本的功能之一就是要能够运行程序。Azure提供了下面 3 种运行应用程序的方式:虚拟机、网站 和 云服务。3种方式有各自的特点:虚拟机方式提供通用(general-purpose)计算环境;网站方式提供低成本的网站托管;云服务则是创建可扩展、可靠、低管理成本应用的最佳之选。根据实际的需求,它们可以单独使用,也可以混搭。
(1) 虚拟机:大名为‘Windows Azure虚拟机’,它提供了 IaaS(Infrastructure as a Service, 基础构架即服务)。该方式允许用户根据需要,使用标准的VHD或者自己的VHD创建虚拟机,依据使用的小时数来为虚拟机付费。Windows Azure虚拟机提供了一组标准的VHD,包括微软的 Windows Server 2012、Windows Server 2008 R2、Windows Server 2008 R2(带有SQL Server),和微软的合作伙伴提供的Linux。同时,用户可以免费上传自己的VHD。 用户可以保存当前运行的VM,用保存的VHD创建新的虚拟机,或者将VHD从Windows Azure拷贝出来到本地运行。
(2) 网站 : Windows Azure 支持运行网站和Web应用。虚拟机方式实际上就支持网站和Web应用,但是你需要自己管理相关的虚拟机。Windows Azure网站方式通过 IIS 提供托管的(managed)Web环境。不需要任何修改,你可以直接把你的网站迁移到Windows Azure网站上,也可以在云上创建一个新的网站。一旦网站创建好,可以动态地添加和删除网站的实例,并依赖于网站自身进行实例之间的负载平衡 (??)。
(3) 云服务:真正体现了PaaS(Platform as a Service,平台即服务)真谛,用来实现可扩展、高可靠和低管理成本的应用。可以使用C#、Java、PHP、Python、Node.js或者其它技术来实现这样的应用。这些应用运行在Windows Server的虚拟机上,这里的虚拟机,不同于前面讲到Windows Azure虚拟机执行方式中的虚拟机。主要的区别在于,这里的虚拟机是由Windows Azure来管理,包括:安装系统的补丁、自动创建安装好补丁的VHD等。同时, Windows Azure负责时刻监视这些虚拟机,重新启动那些挂掉的机器。虚拟机分为两类 :Web Role (安装有IIS) 和 Work Role (木有IIS)。计费方式同Windows Azure虚拟机,以虚拟机运行的小时计费。
数据管理 (Data Management)
有应用,就要有数据。不同类型的应用,需要不同类型的数据支持。为此,Windows Azure提供了多种途径来存储和管理数据。 如果使用的是Windows Azure虚拟机方式,你可以选择运行自己的数据库管理系统(SQL 或者 NoSQL),但是同时你要承担对数据库的管理工作。Windows Azure 提供了3种数据方案,可以大大简化数据库的管理工作。SQL Database服务于关系数据库需求;Tables用于对快速访问大量的简单结构化数据;Blobs则是针对非结构化的二进制存储。这些类型数据都回在同一个数据的不同机器上复制三份,实现高可用性。Windows Azure数据服务根据使用量收费,包括:gigabyte/每月的收费方式。