Windows Azure是在云中运行应用程序和存储数据的基础。
Windows_AzureAPPRun
Windows Azure如今是一项服务,客户使用它在归Microsoft所有的可通过互联网访问的机器上运行应用程序和存储数据。这些应用程序可以向企业、使用者或同时向两者服务。

Windows Azure的组成

Windows Azure由:计算、存储、结构控制器、CDN、连接五部分组成。

Windowszuc

计算

在云中运行应用程序。这些应用程序在很大程度上看到的是一种Windows Server环境,但Windows Azure编程模型与内部部署的Windows Server模型不完全相同。

存储

在云中存储二进制程序和机构化数据。

结构存储器

部署、管理和监控应用程序。结构控制器还矗立在整个平台中对系统软件的更新。

内容传送网络(CDN)

加速对Windows Azure存储器中的二进制数据的全球访问,方法是在全球维护该数据的缓存副本。

连接

允许在内部部署的计算机与Windows Azure应用程序之间创建IP级连接。

Windows Azure的组成——详解

计算

Windows Azure计算可运行许多不同类型的应用程序,无论应用程序执行何种操作,它都必须实现为一个或多个角色,然后Windows Azure通常会运行每个角色的多个实例,使用内置的负载平衡来将请求分散到它们之中。

Wajs

角色类型

Web角色

简化基于Web的应用程序的创建,每个web角色实例内预先配置了IIS,所以使用ASP.NET、Windows Communication Foundation(WCF)或其他Web技术创建应用程序非常简单。开发人员也可以使用本机代码创建应用程序,无需使用.NET Framework,也可以使用PHP和Java。

工作者角色

设计用于运行各种基于Windows的不同代码,角色内没有配置IIS,运行的代码不会由IIS托管。

VM角色

每个用户运行一个Windows Server 2008 R2映像。VM角色有时对于酱内部部署的Windows Server应用程序迁移到Windows Azure非常有用。

角色实例

提交应用程序到Windows Azure,可以使用Windows Azure门户,除应用程序外,还提交配置信息,告知平台要运行的每个角色的多少个实例,结构控制器会为没个实例创建一个VM,并在VM中运行针对适合角色的代码。
应用程序用户的请求可以使用HTTP、HTTPS、TCP等协议发出。
均衡负载器将所有请求进行均衡负载。
Windows Azure角色实例不应在请求之间自行保持他们的状态。任何特定与客户端的状态应写到Windows Azure存储器中。存储在SQL Azure中或通过其他方式来维护。
开发人员可以使用Web角色实例、工作者角色实例和VM角色实例的任何组合来创建Windows Azure应用程序。
负载增加时,可以使用Windows Azure门户在它的的应用程序中请求任何角色的更多实例。负载降级则减少运行的实力数量。
Windows Azure公开了一个API来以程序化地执行所有任务,但不会基于应用程序的负载进行自动扩展。

开发人员相关

开发Windows Azure应用程序,开发人员可以使用任何Windows应用程序的开发语言和工具进行开发。 支持监控和调试Windows Azure应用程序,每个实例可以调用一个日志API,将信息写入到一个通用的应用程序范围日志中。 开发人员可以配置系统来手机应用程序的性能计数器,度量CPU使用,出现故障时进行崩溃转储。

存储

Windows Azure存储的三种方式:blob、表、队列。

Wacunchu

blob

包含二进制数据,层次结构简单,每个容器包含一个或多个blob,blob可以达到1TB,也可以包含关联的元数据。为Windows Azure驱动器提供底层存储,该机制允许Windows Azure角色实例与持久存储交互。

每个表包含的数据实际上存储在一组实体中,实体包含属性,且不实用SQL,应用程序可以使用OData定义的约定查询表的数据。

队列

为Web角色实例提供一种途径来异步地与工作角色实例通信。

关于存储的其他信息

无论哪种方式存储,保存在Windows Azure存储中的所有信息都会复制3次,该重复实现了容错能力。同时Windows Azure还在同一位置的另一个中心保存所有数据的备份副本。

Windows Azure存储可供Windows Azure应用程序、内部部署的应用程序,或在托管平台以及云平台上运行的应用程序访问。

所有存储样式使用REST约定来标识和公开数据。

三种数据存储方式都是用URI命名并听过标准HTTP操作访问。.NET客户端使用Windows Azure提供的库来执行操作。也可执行原始HTTP调用。

SQL Azure是Windows Azure平台的另一个重要组成部分。

结构控制器

专用于Windows Azure的机器以及在机器上运行的软件由结构控制器管理。

Jgkz

结构控制器自身是一个分布式应用程序,它复制在一组机器中,拥有其环境中的所有资源:计算机、交换机、负载平衡器等。与每台计算机上的结构代理通信,感知刺结构中的每个Windows Azure应用程序。

这种广泛的知识使结构控制器可以执行大量的操作。如监控所有运行的应用程序,提供正在发生的事情的最新状态。决定应用程序在何处运行,选择物理服务器来优化硬件利用率。

结构控制器依赖与每个Windows Azure应用程序上传的配置信息。 此文件提供了对应用程序所需的信息的基于XML的描述。部署新应用程序时,使用此配置文件来确定创建多少个VM

结构控制器会监控每个创建完毕的VM,根据需求进行调整。

Windows Azure现在为开发人员提供5种VM大小供选择 1.非常小,单核1.0Ghz、768MB内存、20GB实例存储。 2.小,单核1.6Ghz、1.75G内存,225G实例存储 3.中,双核1.6Ghz、3.5G内存、490G实例存储 4.大,四核1.6Ghz、7G内存、1000G实例存储 5.非常大,八核1.6Ghz、14G内存、2040G实例存储 一个非常小的实例与其他非常小的实例共享一个处理器核心。对于其他大小,每个实例一个或多个专门的核心。这意味着应用程序性能是可预测的。在实例可执行多长时间上没有随意的限制。 对于Web和工作者角色,结构控制器还管理每个实例中的操作系统,包括应用操作系统补丁和更新其他系统软件等操作。 结构控制器始终假设每个角色至少运行两个实例。

内容传送网络(CDN)

blob的一个常见用途是存储从许多不同位置访问的信息。
WACDN
用户访问一个特定的blob时,CDN将该blob的一个副本存储在靠近该用户的地理位置,下次访问时,内容从缓存传送。

连接

Windows Azure Connect为了有效地连接内部部署环境与Windows Azure而设计的。通过在Windows Azure应用程序和在Microsoft云外运行的机器之间提供IP级的连接。

Walink

使用Windows Azure Connect需要连接到一个Windows Azure应用程序的每个内部部署计算机安装一个端点代理,该技术依赖于IPv6,所以现在端点代理仅可使用于Windows Server 2008/R2、Windows Vista和Windows 7. Windows Azure应用程序还需要配置来使用Windows Azure Connect。完成这一步后,代理可使用IPsec与该应用程序中的特定角色交互。

Windows Azure Connect是一个简单的解决方案,但这不是一个成熟的VPN。

Windows Azure Connect启用后,Windows Azure应用程序中的角色将显示在与内部部署的机器相同的IP网络上,这提供了一下的功能: 1.Windows Azure应用程序可直接访问内部部署的数据库。 2.Windows Azure应用程序可加入内部部署环境的域,支持内部部署用户单一登陆到云应用程序上。允许应用程序使用现有的Active Directory账户和组进行访问控制。

存储服务详解

blob

要标识特定的 blob,应用程序可以采用以下格式提供一个 URL: http://<StorageAccount>.blob.core.windows.net/<Container>/<BlobName> <StorageAccount> 是在创建新存储帐户时分配一个唯一标识符,而 <Container> 和 <BlobName> 是特定容器和该容器内的一个 blob 的名称。 blob 具有两种形式: 块 blob,其中每一个可包含最多 200 GB 的数据。为了使传输它们更有效,块 blob 会再次分解为数据块。如果发生失败,可以从最近的数据块开始恢复重传,而不是再次发送整个 blob。当一个 blob 的所有数据块都 上传之后,整个 blob 可以一次提交。 页面 blob,它可以达到每个 blob 1 TB。页面 blob 分解为 512 字节的页面, 应用程序可以在 blob 中自由读取随机的页面。

无论容器包含何种类型的blob,都可以标记为私用或公共的。 私有容器中的blob读写请求需要使用针对blob存储账户的密钥进行签名。 公共容器中的blob,只有些请求必须签名,任何应用程序都可以读取该blob。

Wabiao

从上图可以看出,每个表包含大量实体。实体包含零个或多个属性,每个属性包含一个名称、一个类型和一个值。支持各种不同的类型,包括二进制、布尔值、日期时间、双精度值、GUID、Int、Int64 和字符串。属性可依据其中存储的值,在不同时间具有不同的类型,一个实体中的所有属性不需要具有相同的类型,开发人员可以自由执行对他的应用程序最有意义的操作。 无论它包含什么内容,实体的大小可以达到 1 MB,它始终作为一个单元进行访问。读取一个实体会返回它的所有属性,写入一个实例可以替换它的所有属性。也可以以原子形式更新一个表中的一组实体,确保所有更新成功或失败。

Windows Azure存储表在区别方面不同于关系表,不支持SQL查询,无法使用ADO.NET访问。没有任何架构,同时一个实体中的属性可以具有不同类型,可以随时更改。这么设计为了支持高度可扩展的应用程序。

,对特定表的查询可以表示为对一个具有以下格式的 URL 的 HTTP GET: http://<StorageAccount>.table.core.windows.net/<TableName>?$filter=<Query> 其中,<TableName> 指定了待查询的表,而 <Query> 包含对此表执行的查询。如果查询返回大量结果,开发人员可以获得一个延续令牌,该令牌可在下一次查询时传入。重复这么做可以检索大量完整的结果集。 Windows Azure 表不是每个存储场景的正确选择,而且使用它们需要开发人员了解一些新信息。对于需要它们所提供的可伸缩性的应用程序,表仍然适用。

队列

队列的主要目标是允许在 Windows Azure 应用程序的不同部分之间进行通信。像 Windows Azure 存储中的所有其他部分一样,队列可通过 RESTful 的形式访问。Windows Azure 应用程序和外部应用程序都使用类似以下格式的 URI 引用队列: http://<StorageAccount>.queue.core.windows.net/<QueueName> 前面已经介绍,队列的常见用途是允许在 Web 角色实例与 工作者角色实例之间进行交互。

与本文相关的文章
版权声明
转载保留版权: 大D综合研究院 | 《Windows Azure 简介》
本文链接地址:https://www.dadclab.com/archives/1977.jiecao
转载须知:如果您需要转载本文,请将版权信息,版权授权方式,以及本文的链接地址注明,谢谢合作。
本文被贴上了: , , , , 标签