Windows AzureTM 是一个云服务操作系统 ,为Windows Azure平台提供开发、服务托管和服务管理环境 。Windows Azure通过微软的数据中心为开发人员提供以按需的计算能力和存储能力去托管、扩展和管理互联网上的应用程序。

Windows Azure是一个可扩展的平台,它支持多种语言并且和你现有的内部部署环境集成在一起。在Windows Azure上创建应用程序和服务, 开发人员可以利用他们现有的Microsoft Visual Studio® 专长。同时,Windows Azure支持流行的标准、协议和语言,包括SOAP、REST、XML、Java、PHP和Ruby。Windows Azure已经在40个国家商业运作了。

欲了解更多关于Windows Azure平台的信息,请参见Windows Azure平台介绍

应用场景

Windows Azure是一种服务,允许开发人员在微软拥有和经营的服务器上运行应用程序和保存数据。这些云应用程序可以针对企业、消费者或者两者兼而有之。以下是一些例子:

  • 企业使用Windows Azure来运行他们的行业业务、批处理或者大额度计算量。
  • 一个独立软件开发商(ISV)创建一个SaaS应用程序针对企业用户。
  • 实现大容量存储、批量处理、突发情况或者大额度计算量。
  • 一个独立软件开发商创建一个SaaS应用程序针对消费者。

你可以从这里 找到更多Windows Azure客户和合作伙伴的成功案例。

优点:

  • 敏捷:利用开发工具、自动化的服务管理和全球数据中心的存在,以更快的响应客户需求,专注于差异化竞争,开拓新市场。
  • 效率:Windows Azure通过降低前期资本花费来提高生产力和增加运作效率。客户和合作伙伴在某些工作量上可以实现高达30-40%每3年的业务总成本减少量。以消费为基础的定价、包装以及对合作伙伴的折扣降低了进入云服务的门槛,并确保可预测的IT花费。请看Windows Azure定价
  • 专注:专注于提供服务和价值给您的客户 - 而不是把资源花费在管理技术上的基本设施。Windows Azure让你花更少的时间在操作障碍上,花更多的时间专注于差异化竞争。
  • 简单:使用你现有的技能配以熟悉的语言,如.NET、Java和PHP,来创建并管理网络应用程序和服务。
  • 可靠:以一个可靠的服务水平协议为后盾的企业级服务和丰富的在线服务经验。更多

特点:

Windows Azure为Windows Azure平台提供开发、运行和控制环境。Windows Azure处理负载平衡、资源管理和基于服务拥有者需求的云服务生命周期管理。由想在Windows Azure上部署应用程序的开发人员指定服务形式,包括部署的实例的个数以及任何的配置设定。Windows Azure部署服务并管理更新和事故来维持可用性。

计算服务

Windows Azure提供了一个由在地理上分散的数据中心建成的互联网规模的主机环境。这个主机环境为托管代码提供了运行时执行环境。

一个Windows Azure计算服务是在一个或多个角色(Role)上建立的。一个Role定义了一个可运行在执行环境的组件。在Windows Azure内部,一个服务可能运行一个或多个Role的实例。

Windows Azure支持两种类型的Role:一个是为网络应用程序编程定制的、为IIS7及ASP.NET所支持的Web Role 。这些Web Role运行在安装有IIS7的网络核心的集成管道模式(Integrated Pipeline Mode)里。一个是被用于一般性的开发的并可能为Web Role进行后台处理的Worker Role

一个服务可能由一种或两种类型的Role组成,并且可能包含每种类型的多个Role。欲了解更多关于设计和开发Role的信息,请参见组建Windows Azure服务

管理员可以很轻松的通过修改配置文件的方式来管理每个Role需要运行几个实例。运行多个实例可以让你的程序更快地处理请求和执行任务,但是也意味着你需要支付更多的费用。当你不再需要那么多的计算资源的时候,你可以通过修改配置文件来减少实例的数量,从而支付较少的租金。这也正是云计算的一大优势,如果不使用云计算,你必须自行购买大量的硬件来处理更多的请求和执行更多的任务,当你不再需要那么多的计算资源的时候,这些硬件也就白白浪费在那里了。

Web Role

在Windows Azure里,Web Role包含被Internet信息服务(IIS)支持的网站或其他代码。通常情况下,这是一个页面(Page)或者一个Web服务,但你也可以使用其他网络开发工具(例如PHP)来提供你的服务。在Windows Azure里的,一个ASP.NET的Web Role类似于一个ASP.NET网络应用程序,由.aspx文件和源代码文件组建成,但它包含了一些额外的工具来允许它运行在Windows Azure环境里。

一个Web Role也能运行大部分使用HTTP协议的其他应用,例如FastCGI或者使用basicHttpBinding架构(basicHttpBindingSchema)的WCF服务。

欲了解更多关于Web Role的信息,请参见Web Role概述

Worker Role

Worker Role提供了一个在Windows Azure里运行应用程序的一般性环境。它是对一般性的开发来说很有用的一个服务组件,并且可能会为一个Web Role进行后台处理。一个Worker Role被频繁地用于没有交互的长时间运行的各种任务,但是你也可以用它来运行其他任何类型的工作量。

欲了解更多关于Worker Role的信息,请参见Worker Role概述

储存服务

Windows Azure存储服务在云中提供持久的、可持续的存储空间。最基本的存储服务包括:

  • 二进制大对象(Binary Large Object,缩写Blob )服务,用于存储文本或二进制数据。
  • 队列(Queue )服务,确保服务之间可靠的、持久的消息传递.
  • 表(Table )服务,用于可被查询的结构化存储。
  • Windows Azure驱动器(Drive ),允许Windows Azure应用程序挂接一个页面二进制大对象(Page Blob)。

Windows Azure SDK为使用存储服务提供了一个REST API和一个托管API(managed API)。你可以从Windows Azure里正在运行的一个服务去访问存储服务,或者直接通过互联网从任何能通过HTTP或HTTPS发送和接受数据的应用程序去访问。

欲了解更多关于为存储服务提供的REST API的信息,情参见Windows Azure存储服务REST API参考指南 。欲了解更多关于为存储服务提供的托管API,情参见Windows Azure托管类库参考指南

Blob Storage

初学者可以把blob比作文件系统。它确实和文件系统有非常多的相似之处。Blob Storage有两个概念:

  • Container:可以类比成文件夹。
  • Blob:可以类比成文件。

和文件系统一样,用户可以针对每个Container设置访问权限,可以对某个Blob进行加锁(Lease)从而防止Concurrency问题,还可以使用诸如创建,删除,复制,备份,等众多功能。

从存储结构上来说,Blog Storage提供了两种类型的Blob:

  • Block Blob:其存储方式类似于传统的文件系统中的簇(Cluster)的概念。一个Blob被分成一个或多个Block进行存储。
  • Page Blob:Page Blob对随机读写进行了优化,大家可以把它类比成大型文件,例如.vhd和.mdf文件。

欲了解更多关于Blob Storage的详细信息,请参见Windows Azure平台介绍 的Blobs部分。

Table Storage

千万不要把Table Storage和关系型数据库(Relational Database)混淆起来。Windows Azure的Table Storage提供了一种结构化的存储方式。通俗来说,一个Table可以被想象成一个Xml文件。在Xml文件中我们存放各种各样的数据,在一个Table中我们也可以存放各种各样的Entity。同一个Table可以存储结构完全不同的两个Entity,这和关系型数据库中需要对每张表制定统一的结构(Schema)是不同的。

Table Storage的可变的Schema充分体现出了其灵活性。例如,你的业务需要扩展,需要往数据结构中添加新的字段,你可以在完全不修改Table Schema,完全不影响现有Entity的情况下,对新的Entity添加新的字段。如果你的程序可以被二次开发,第三方开发人员也完全可以在不影响你的程序所需要的Entity的情况下,在同一张表中存储他们的程序所需要的,结构不同的Entity。

欲了解更多关于Table Storage的详细信息,请参见Windows Azure平台介绍 的Windows Azure Tables部分。

Queue Storage

Queue Storage提供了一种先进先出的存储方式。它通常被用于各种不同的程序间的通信。例如一个经典的应用场景:Web Role接受用户请求,针对每个请求,在一个Queue中创建一条消息(Message)。Worker Role则不断的从Queue中取出消息,并且一一处理。

欲了解更多关于Queue Storage的详细信息,请参见Windows Azure平台介绍 的Windows Azure Queues部分。

Drive storage

Drive Storage让开发人员能够使用标准的NTFS API读写文件。一个Drive可以被挂接(Mount)到某个特定的实例上,当作该实例对应的虚拟机的一块硬盘使用。由于Drive在后台是由Page Blob实现的,因此你往Drive中写入的文件也会自动被写入后台的Page Blob。这样一来数据便得到了持久化,即使万一运行当前实例的虚拟机出了问题,你还可以在其它实例中再次挂接这块虚拟硬盘,数据并不会丢失。

需要注意的是,一个Drive在同一时间只能被单个实例挂接。如果你需要在不同的实例中同时访问文件,还是推荐使用Blob。Dive更常被用于移植现有的那些需要执行大量I/O操作的程序。

欲了解更多关于Queue Storage的详细信息,请参见Windows Azure平台介绍 的Windows Azure Drives部分。

内容分发网络( CDN)

Windows Azure内容分发网络(Content Delivery Network,缩写CDN)通过放置更贴近用户的数据副本来增强最终用户的性能和可靠性。一个用户只需要访问最近的一个数据副本,而不用去访问一组的中心服务器。Windows Azure CDN支持在Windows Azure里存储的公共内容以HTTP的方式发行。内容的类型包括网络对象(例如JPG、CSS和JavaScript)、可下载的对象(媒体文件、软件、文件)和通过互联网发行的其他组件。

CDN的好处包括更好的性能和最终用户(特别是那些对计算机和互联网原理不熟悉或者根本不了解的用户)的用户体验,和大型分布式规模以更好地处理瞬时高负荷(比如某个事件的开始,如产品发布会)。

更多信息

开发体验

Windows Azure SDK(Windows Azure Software Development Kit)提供了一个模拟环境,使得开发人员可以在自己本地计算机里开发和测试服务。这个开发环境包括以下工具:

  • 开发存储(Development Storage)提供了本地的存储服务,它模拟了在Windows Azure里可用的Blob、Queue和Table服务。通过开发存储的用户界面,你可以查看本地存储服务的状态并且可以去开启、停止和暂停它们。详细信息,请参见使用开发存储
  • 开发结构(Development Fabric)在用户的计算机上模拟了Windows Azure。通过开发结构的用户界面,你可以查看服务的部署情况和角色实例情况、开启和停止一个服务、以及测试日志记录级别。详细信息,请参考使用开发结构

开发人员可以使用Windows Azure Tools For Microsoft Visual Studio ®在Visual Studio内构建、打包和运行服务。Windows Azure工具同时也提供用于设计Role和配置你的服务的项目模板。你需要去单独下载这些工具,因为他们不被包含在SDK里作为SDK的一部分。

管理

管理门户

Windows Azure门户 是一个管理门户网站,用于管理你的账户和部署、管理、监测你的Windows Azure服务。这个重新设计的基于SilverLight的Windows Azure平台管理门户提供了服务部署、任务管理以及让你知道你的部署和账号的所有健康信息的状态信息一览表。管理门户以时刻更新的信息来组织你的Windows Azure部署的组件,它非常容易地被发现和理解。

管理门户的窗口


欲了解更多关于管理门户网站的信息,请参考管理门户

管理 API

服务管理API提供了以编程的形式来访问Windows Azure门户 里的大部分的功能。使用这个服务管理API,你可以管理你的存储账户、正在运行的服务、你的服务部署和你的分组(你可以将类似的服务进行分组)。

Windows Azure服务管理API是一个REST API。所有API操作都是在SSL之上被执行的,并且相互使用X.509 v3证书来认证。管理服务可以由Windows Azure里的一个服务去访问,或者直接通过互联网由任何能够发送HTTPS请求和接收HTTPS回复的应用程序去访问。

欲了解更多关于Windows Azure服务管理API的信息,请参见Windows Azure服务管理REST API参考指南

计算实例规格:

开发人员可以根据应用程序的资源需求来选择虚拟机的规格。Windows Azure计算实例以四个不同的规格来应对各种复杂的应用和工作量。

计算实例规格

处理器

内存

实例存储空间

I/O性能

1.6 GHz

1.75 GB

225 GB

适度

2 x 1.6 GHz

3.5 GB

490 GB

4 x 1.6 GHz

7 GB

1,000 GB

特大

8 x 1.6 GHz

14 GB

2,040 GB

每个Windows Azure计算实例代表一个虚拟服务器。尽管很多资源被一个指定的实例专用,有一些资源将和输入输出性能相关联,比如网络带宽和磁盘系统是被同一个物理主机里的计算实例所共享的。在一个共享的资源不完全被利用的时候,你可以得到更高的份额去利用它。

不同的实例类型将会根据他们的规格来从共享资源里得到不同的最小性能。那些具有高输入输出性能指标的计算实例规格将拥有更大的共享资源分配额。拥有更大的共享资源分配额将同样使I/O性能具有更多的连贯性。

在MSDN上了解更多关于Windows Azure的信息。