云形标计算

高可用性、 可伸缩性,和计算与 Windows Azure 电源模式

Joshy Joseph

代码下载可从 MSDN 代码库
浏览代码联机

这篇文章基于 Windows Azure 的预发布版本。详细信息可能会有变动。

本文讨论:

  • 云形标计算架构
  • Windows Azure
  • 云形模式和最佳实践
本文涉及以下技术:
Windows Azure

内容

云形标计算
Windows Azure 实现
云形应用程序类型和图案
真实世界示例
应用程序设计和开发
部署服务
管理
结论

在最后一个十年 ,从实现,可伸缩性承载模型,服务导向,基于订阅的计算和更高的社会协作的接口的 decoupling 成为分布式系统的目标。Internet 托管现在,分布式应用程序内部应用程序的连接通常称为软件和服务 (S + S),日益普及。组织利用数据中心由第三方解决有关硬件、 软件、 可靠性和可伸缩性的问题。这些是某些新的体系结构的趋势,帮助您生成缩放比例、 减少资本支出,以及提高可靠性的互操作应用程序。云形标计算提供了许多这些优点。

群计算平台允许应用程序提供所需的硬件、 软件、 网络和存储容量,并为安全和删除采购和维护内部硬件和软件的负担大部分的可靠性提供的 Internet 访问虚拟环境中承载。在的群中可以开发、 部署,和管理应用程序,如您已在过去,并将这些服务集成到您的内部部署应用程序。您只能为时间,资源,付费,并且容量向上扩展时使用以适应不断变化的业务需要。

此文章中, 我将检查典型群平台结构和一些常见的体系结构模式,一起提供从 Microsoft 在 Windows Azure 上其实现。

云形标计算

图 1 说明了的典型群计算平台体系结构。

fig01.gif

图 1 群平台的分层体系结构 (单击图像可查看大视图)

此模型中, 每一层提取其公开接口层上面构建在下的图层。各层之间没有任何硬依赖项,并且每一层提供可组合或即插即用其他层服务的体系结构。每个图层提供所需水平的可伸缩性。

正如您所看到一个群平台组成子系统数。让我们接下来看每个。

宿主平台宿主平台提供物理,虚拟和软件资产。这些资产包括物理计算机、 操作系统、 网络系统、 存储系统、 电源管理和虚拟化软件。为向图层上的虚拟资源) 提取 bare 金属和其他操作的资源。

云形结构该图层的最重要功能是为一组虚拟资源抽象宿主平台,和管理基于可伸缩性和可用性的那些资源的服务需要。从根本上,该图层提供三种类型的抽象资源: 计算存储,和网络,并公开一组 API 来访问和管理这些资源抽象。因此,您不知道了基本的硬件和软件的详细信息的情况下访问基础的物理资源和可以控制这些系统有效地完成配置。由该子系统提供的服务通常称为作为服务 (IaaS) 的基础结构。

云形平台服务开发和管理软件云形标计算复杂。就非常复杂时与托管的服务集成内部部署的软件。平台服务提供一组作为服务提供的能力以帮助进行这样的集成。例如,在该 Azure 服务平台 Microsoft.NET 服务总线有助于发现和访问 Microsoft.NET 的访问控制服务帮助角色和规则基于声明转换和映射时。平台服务的可用性可能彼此区分一个群提供程序。提供此层的服务称为作为服务 (PaaS) 的平台。

该图层包含为构建的应用程序的群应用程序云形标计算。这些应用程序公开 Web 界面和启用 multitenant 承载模型的最终用户的 Web 服务。某些的功能包括连接不同的系统,并利用群存储基础结构来存储文档。这些服务所属于的软件的伞作为服务 (SaaS)。

安全服务安全服务确保标记设置,联合身份验证和声明转换。这些服务基于开放的标准,WS 安全性 WS-Trust 的 WS 联合身份验证 SAML 的协议,OpenID,更高版本的互操作性。

在上述的所有层剪切管理服务管理接口。在宿主平台利用管理界面和自动的可伸缩性和可用性管理的代理。即使群是承载和管理数据中心,客户可能需要允许他们轻松地控制他们的应用程序和发布部署配置、 服务使用,获取 Analytics 和连接他们的企业管理系统的功能。

工具工具帮助您构建,测试,和部署到群的应用程序。这些工具可能是扩展现有的工具 (Visual Studio Tools for Windows Azure,例如) 或承载来自特定群提供程序的工具。

用户和提供商云形标有三个类别中的用户的计算云形标计算: 群平台提供程序、 群客户和最终用户。云形平台提供程序提供宿主平台,而云形标基础结构服务。群使用者利用群平台,并开发应用程序和服务供最终用户。云形使用者配置应用程序的可伸缩性、 可用性和安全需要。最终用户利用由群使用者提供的服务。这些用户可以是用户、 组织或计算机,并可能会被承载任意位置。

在此上下文中,Azure 提供群平台,同时群使用者 (或集成的 ISV 构建群解决方案或企业) 利用此平台来构建应用程序。例如 Live 网格数据同步平台利用 Azure 服务平台和开发和承载 S + S 服务为最终用户的 Windows Azure。

图 2 映射到 图 1 中分层体系结构的 Azure 服务平台。此平台提供了对应用程序开发人员的服务的一组。在运行的应用程序和本地系统上运行的应用程序,可以使用这些服务。Windows Azure,将的群的操作系统是基础的 Microsoft 的群平台提供。图 2 所示,Azure 服务平台提供共享服务一组: SQL 数据 Services、.NET 服务和 Live 服务,单独或一起可用。此外,Microsoft 提供了不同的已完成的群应用程序包括联机 Exchange、 SharePoint 联机和 CRM 联机。此处,但是,我将重点仅 Windows Azure 操作系统和相关的模式。

fig02.gif

图 2 映射到分层体系结构的 Azure 服务平台

Windows Azure 实现

Windows Azure 提供点播计算和存储功能来托管、 缩放,和管理 Web 应用程序,并在 Microsoft 数据中心中承载在 Internet 上的服务。

Windows Azure 提供功能的服务要求的群的使用者。例如,物理硬件资源是立即提取并公开,因为计算资源即可供群应用程序。与存储资源提取并通过正确定义的存储接口公开物理存储。常见的 Windows 结构提取物理硬件和软件平台,并公开虚拟化的计算和存储资源。此外,应用程序的每个实例是监视可用性和可伸缩性,并自动管理。例如,如果应用程序实例中的断开结构控制器 (如 图 3 所示) 将得到通知,并且另一个虚拟机 (VM) 中的其他实例将被实例化具有对最终用户的有限影响。由于虚拟化编写代码时量需要确保您未做任何假设宿主应用程序在计算机的状态。Windows Azure 中您的服务可以轻松地将移动到新的 VM。Windows Azure 遵循与 Azure 结构控制器负责将声明性服务规范映射到可用资源和管理服务的生命周期模型驱动服务管理设计。

fig03.gif

图 3 Windows Azure 和角色

默认情况下在.NET 中开发应用程序的大部分未能将驻留在 Azure 有一些特定限制在部分信任环境模型、 数据存储 / 访问和 inter-application 通信。一个丰富的开发人员 SDK 和编程工具帮助您获取方向向此平台。

右键,现在您可以创建.NET 应用程序、 ASP.NET 的应用程序和使用 Visual Studio 中支持的工具的基于 WCF 的 Web 服务。

Windows Azure 目前提供两种处理方法 Web 角色和工作角色 (参见 图 3 )。每个角色将单独的 VM 上执行,并与 Azure 结构) 通信通过一个代理。代理中收集资源规格和节点的衡量标准包括 VM 使用、 应用程序状态、 日志、 资源使用状况、 异常和错误条件。应该注意到在单个物理主机或一个 Windows 2008 程序 VM 上每个 VM 可能会执行。特定的运行库主机配置由 Windows Azure,决定根据服务级别协议,并且其他业务 / 技术需要。Web 角色承载交互式 Web 应用程序,并提供入站和 out-bound 连接 (请求响应图案)。通过提供高可用性的 Azure-提供负载平衡器路由的绑定调用。已经注意到这要求每个 Web 角色实例是无状态,以便结构可以将请求路由到群集中任何 Web 角色。

工作作用是在后台执行一个.NET 应用程序在专用应用程序。这些应用程序没有从外部应用程序的入站连接。但是也可以将邮件发送到外部服务。交互与 Web 角色,时工作角色发送和接收邮件使用 Windows Azure 队列存储服务。另一个有趣方面是角色的扩展功能。应用程序部署管理员可以任何角色的多少实例可能需要在配置中并在结构) 将确定运行根据系统扩展需要这些实例。以是短 Windows Azure 提供了的、 按需部署和错误处理。

到目前为止我已经介绍了群平台和 Windows Azure 的特定功能的一般概念。接下来我将介绍某些核心群应用程序类型、 体系结构的模式和最佳实践您应该熟悉开发群平台的应用程序时。

云形应用程序类型和图案

有许多体系结构和设计模式和帮助您选择群平台和实现群服务和应用程序的最佳实践。这些模式分为四个类别的一般情况下,: 计算、 存储、 通信和管理。

一旦您知道键入您的应用程序的计算模式处理,则应选择适当的计算模式。如前所述,Web 角色适用于工作角色适用于构建背景和计划任务时生成交互式应用程序的模式。在某些情况下您可能需要两个功能。规划您的计算任务时的一个重要考虑因素是记住方式以避免移动大量周围的数据执行这些任务。

存储模式群存储提供远程存储并提取离开用户存储媒体。设计是非常灵活,以支持各种应用程序的要求。azure 地址的群存储两种模式: 表存储和 Blob 存储。表存储模式允许该应用程序,来存储以下表结构,尽管 Blob 存储模式可以使用来存储任何数据的键 / 值对。

通信模式这些模式地址消息交换。azure 技术利用 Windows Communication Foundation (WCF) 和 REST API 的 Web 服务通信。您必须考虑部分信任环境模型和应用程序时实现的通信模式的无状态的性质。

管理模式管理模式区分的服务管理的两个核心方面: 服务部署和服务级别管理。部署模式组织服务定义、 配置,和监视,而其他模式解决服务级别管理和定期运行维护。

现在让我们看详细群应用程序类型。我将分类群分为三个类别的应用程序类型基于每个解决的方案的类型。第一个类别是 Web 应用程序。其中包括承载的传统 Web 应用程序,新兴组成可能使用两个或多个数据源和服务的应用程序。这些应用程序需要自动扩展和向下扩展功能。如 Facebook 应用程序是一个很好的示例。在这样的情况下组织可能会希望在基础结构上花费很少的大写,能够处理增加的请求时在启动。

接下来有其主要功能是运行频繁使用处理器的操作和数据挖掘,通常相同数据多次分析应用程序,并且因此它们需要访问大量的存储容量和处理器可用性同时。有是不必支付的这样大的容量 24 小时一天,7 天每周,但是,因此云形标服务都更具吸引力。

最后,有并行计算应用程序需要并行执行多个任务,以便可以在中短的时间内执行一个大的项目。再次,计算可以提供的群支付的一次的-只大容量是经济高效解决方案。

并非所有的应用程序是适用于群平台上运行的。明显的限制因素包括可能锁定在一个群提供商通信信任模型的限制将数据移动进出云形与云模型的平台和法律 / 隐私问题之外的现有服务集成的效率打开接口的数据安全。图 4 列出了适用于计算,群的某些情况下,并 图 5 列出合适的模式、 方案和功能。

图 4 应用程序类型适用的云形标计算
云形应用程序类型 上下文 方案示例
Web 应用程序 承载传统的 Web 应用程序和编写两个或多个数据源的交互式应用程序和服务。 创建 Web 协作应用程序需要在基础结构上花费很少的大写启动公司。
并行计算 计算任务的大规模并行执行。通常,这些任务执行短时间的利用更多的计算和存储资源的时间。 一个报纸决定的报告更好的 Web 消耗 digitization 上。
分析应用程序 分析处理执行各种分析和数据挖掘算法对相同数据反复。 财务公司财务数据执行 Monte Carlo 模拟来定期评估风险。
图 5 模式、 功能和其相应的方案
系统的注意事项 模式类别 上下文 Windows Azure 功能 方案示例
计算 按需应用程序实例 需要扩展和向下扩展功能的应用程序。 Web 和辅助角色自动的管理 允许零售存储站点特殊事件期间可用。
  工作 执行并行的批处理作业或后台应用程序。 利用工作角色来执行后台任务的多个实例 使用 Analytics 处理通过并行执行后台任务计划程序。
存储 Blob 存储 存储大量非结构化数据。 利用 Azure Blob 存储 将合法的符合性报告存储在备份存储的公司。
  结构化的存储 表结构中存储数据,同时不需要完全关系的语义。 azure 表存储 维护 Web 应用程序的 state—i.e 结构化的存储。存储采购订单或购物篮中的信息。
通信 服务接口 (Web 和Web 服务 API) 公开通过用户界面和 Web 服务的应用程序功能。 使用 ASP.NET,Silverlight,WCF Web 服务的构建应用程序的 azure 支持 公司生成数字资产管理解决方案其他服务公开 API。
  面向服务的集成 调用外部 Web 服务使用 Web 标准协议。 azure 的平台支持 WCF 客户端和 REST API Web 应用程序利用协作的 Microsoft 承载 Live Meeting 服务。
  邮件 共享可缩放、 可靠,和异步的方式应用程序之间的消息。 利用 Azure 队列 Web 工作角色通信的存储服务 Web 应用程序通知一计划程序执行特定任务。
管理 云形部署 部署应用程序所需的配置,例如扩展和高可用性的要求。 分离服务定义,服务配置和打包以便适当的角色 零售存储自动扩展使用超过阈值时并扩展下根据需要配置的 Web 门户。
  操作的设计 如何通过提供运行状况的状态,并记录进行我的应用程序操作已准备好。 使用 Windows Azure RoleManger.WriteToLog API,并重写工作角色中的 RoleEntrypoint.GetHealthStatus() 开发人员设计云形标应用程序能够通过检测友好的操作。
  服务实例管理 启动、 停止,和挂起群应用程序。管理服务的配置。 自动处理动态配置更改和错误条件 使用 Azure 门户管理应用程序状态是 Web 应用程序管理员。
  管理通知 发送即时消息、 电子邮件,或资源和帐单信息的警报。 通过 Live 集成提供 启用应用程序能够发送 IM。默认通知资源使用情况。
  服务级别管理 获得应用程序资源消耗,如处理器时间的信息的带宽。 通过模型基于方法自动化的服务管理 查找有关应用程序部署的付费和资源使用信息的ISV。

在 Windows Azure,Web 角色是适用于工作角色适用于后台应用程序时执行交互式 Web 应用程序的。数据存储在 Azure blob 和表存储服务。通过提供异步消息 Exchange 队列服务启用 inter-role 通信。平台支持基于 WCF 的 Web 服务和客户端,使用基本的 HTTP 和 WS * 绑定。由其他应用程序和群提供程序通过更容易的消耗量的 REST 样式接口公开存储服务。

正如您所知道的模式提供软件开发中的常见问题的灵活解决方案。接下来我将识别常见模式类别对应于上述的应用程序类型。

而不是试图描述深入每个单独模式,我将重点广泛的问题区域和相关的模式类别并显示这些模式 Azure 开发的上下文中的实现方式。

真实世界示例

让我介绍了有助于阐明这些概念的一些方案。Fabrikam,ISV,想构建一个托管的数字资产管理 Web 应用程序。此应用程序,最终用户可以在中存储数字图像。用户必须能够预览提交的图片、 标记它们,和这些注释的位置信息。应用程序必须允许用户直接从存储中访问这些图片中使用他们自己的桌面应用程序。图 6 代表将由 Fabrikam 提供服务的高级体系结构视图。在图所示,Fabrikam 将公开一个 Web 应用程序和最终用户的 Web 服务来管理他们的数字资产。这些服务存储,并从之上 Windows Azure Blob Services 实现资产存储库中检索数字的资产。Fabrikam 实现背景处理器以执行任务,例如标记、 缩略图生成和等等。

fig04.gif

图 6 Fabrikam 托管 Windows Azure 中

让我们了解如何设计、 开发,和部署到 Azure 服务平台这样的应用程序。后面的讨论演示核心概念和功能在 Windows Azure 中可用。您可以下载代码和文档,以查看整个方案实现以及 Windows Azure 中承载方式。

应用程序设计和开发

第一步是了解应用程序方案,选择适当的模式、 最佳实践和编程模型。在此过程,您将标识应用程序和工作负荷针对 Windows Azure 的类型。此外,将指出 inter-application 消息传送和数据存储模式。此处我假设 Fabrikam 构建交互式 Web 应用程序使用扩展的需要以及的背景 Processer,从数字资产生成元数据。上述方案分别需要 Azure Web 和辅助角色。此外,Fabrikam 需要 blob 存储空间来存储数字的资产和元数据、 服务接口来公开资产和通信的消息传送模式。

若要以便开发从而使脱机的开发和调试 Windows Azure SDK 将随附有模拟 Windows Azure 在本地的计算机的开发环境。SDK 支持 Web 和辅助角色、 存储、 Visual Studio 模板,打包、 查看和管理角色实例,和一个 Visual Studio 加载项,F 5 体验的工具。可以从 MS 下载中心下载该 SDK。

若要开始,请使用 Windows Azure 工具 for Microsoft Visual Studio 创建一个新的项目使用群服务项目模板。您可以添加所需的用户界面、 应用程序逻辑和处理 Web 应用程序的输入。或者,您可以从现有的 ASP.NET Web 应用程序启动。因为应用程序将执行在部分信任环境下,避免调用违反此限制的 API。有关这一限制的信息,请参阅在Windows Azure SDK 信任策略参考.

接下来,导入 Microsoft.ServiceHosting.ServiceRuntime 程序集,并使用各自的 API 启用日志记录,读取本地环境配置,读应用程序配置节从该服务定义文件如下所示。

 // Writing log information
 RoleManager.WriteLog ("Information", "message to show in the log file"); 
 // Getting service configuration information 
 RoleManager.GetConfigurationSetting("MyConfigSection"); 

// Getting local environment; code snippet below shows getting a pointer
//to a local file 
ILocalResource resource = RoleManager.GetLocalResource(    "ComputeLocalStorage")

顺便说一下,编程的最佳做法来替换以上的日志记录是,并重资源与可重复使用的应用程序的访问代码如 Microsoft Enterprise Library 应用程序块阻止 (日志记录和配置阻止)。 您可以实现用于 Windows Azure 日志记录和配置管理的特定提供程序,并插入运行库。 这些最佳实践分离应用程序特定于平台的 API,并帮助内部部署和群环境之间的增强可重用性。

您的应用程序的存储需求将需要重写以利用 Azure 存储模式支持。 我将立即解决此。

接下来,添加到您的项目的工作角色项目,然后打开 WorkRole.cs。 此文件包含一个名为 WorkerRole 从 RoleEntryPoint 类派生的类。 此类提供管理初始化启动,和停止在辅助角色服务以及监视服务的运行状况的方法。

在此步骤中您通常覆盖两种的方法中所示 图 7 .

图 7 WorkerRole

public class WorkerRole : RoleEntryPoint
{
  public override void Start()
  {
      RoleManager.WriteToLog("Information", "Generating metadata from digital assets");

      while (true)
      { 
            RoleManager.WriteToLog("Information", "background task is executing thumbnail extraction");
            Thread.Sleep (1000);  
      }
  }

  public override RoleStatus GetHealthStatus()
  {
            return RoleStatus.Healthy;
  }
}

现在运行在本地开发结构中应用程序通过按 F 5 键。 您将看到以网站的日志,并且工作角色控制台实例。

现在让我们配置 Blob 存储,并且从 Web 角色访问它。

首先,您需要设置最 Blob 存储帐户 information.you 需要指定以下参数:

帐户名: 指定 Windows Azure 帐户的名称。

AccountSharedKey: 指定用来验证请求对 Windows Azure 存储密钥。 若要进行身份验证请求,您必须使用帐户在发出请求的密钥签名请求。

BlobStorageEndpoint: 指定 Blob 存储服务的该基本 URI。

ContainerName: 指定用来存储此应用程序的图像在 Blob 容器的名称。

是例如一下以下的配置设置:

  <ConfigurationSettings>
   <Setting name="AccountName" value="fabrikamAccount" />
   <Setting name="AccountSharedKey" value="Eby111M02xNOcqFlqUwJPLlmEtlCD
   XJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBekso45Gw==" />
   <Setting name="BlobStorageEndpoint" value="http://127.0.0.1:10000"/>
   <Setting name="ContainerName" value="fabrikamImagegallery"/>
  </ConfigurationSettings>

Blob 存储 REST API 公开两个资源: 容器和 blob。 容器 Blob 一组,每个 Blob 必须属于一个容器。 使用由 REST API 定义的 PUT 操作写入 Blob。 使用这些 API,您可以创建层次结构的命名空间组织资产如 fabrikamImagegallery / 图像和 fabrikamImagegallery / 文档,其中 fabrikamImagegallery 是容器和图像的名称引用 Blob 名称。 应该注意到每个 Blob 未能构建从块的大小最大 4MB 为有效的管理。

REST API 的使用是相当繁琐,,因此 SDK 附带一个示例库提取 REST 调用,并公开已知的访问模式通过 BlobContainer 和 StorageAccountInfo 类中。

图 8 显示如何使用 Blob 存储。

图 8 使用 Blob 存储

BlobStorage blobStorage = BlobStorage.Create(StorageAccountInfo.GetDefaultBlobStorageAccountFromConfiguration());

BlobContainer newContainer = blobStorage.GetBlobContainer("ContainerName");

newContainer.CreateContainer(null, ContainerAccessControl.Public);

this.container.ListBlobs(String.Empty, false);

BlobProperties properties = new 
 BlobProperties(string.Format(CultureInfo.InvariantCulture, "image_{0}", "idenitifier1"));

NameValueCollection metadata = new NameValueCollection();
metadata["Id"] = id;
metadata["Filename"] = "filename";
metadata["Tags"] = "Image";

properties.Metadata = metadata;

this.container.CreateBlob(properties, imageBlob, true);

现在,让我们来创建队列存储服务将从 Web 角色的消息发送到一个辅助角色。 Windows Azure 队列服务提供可靠、 持久消息内部和服务之间。 为队列服务 REST API 公开两个资源: 队列和消息。 有可能创建无限的数量的每个队列使用一个唯一的名称。 邮件的最大的大小被限制为 8KB。 您应负责读取后删除该消息 ; 消息将否则为指定时间保持在队列中。

图 9 演示如何访问队列存储和辅助角色中的邮件。

图 9 </a0>-队列存储操作

public class WorkerRole : RoleEntryPoint
{
        public override void Start()
        {
            Uri baseUri = new               
                 Uri(RoleManager.GetConfigurationSetting("QueueEndpoint"));
            string accountName = RoleManager.GetConfigurationSetting("AccountName");
            string accountKey =  
                RoleManager.GetConfigurationSetting("AccountSharedKey");

           StorageAccountInfo account = new StorageAccountInfo(
           baseUri,
                null,
                accountName,
                accountKey);

            QueueStorage service = QueueStorage.Create(account);
            MessageQueue queue = service.GetQueue("fabrikamimageprocessingqueue");

            while (true)
            {
                Thread.Sleep(10000);
                if (queue.DoesQueueExist())
                {
                   Message msg = queue.GetMessage();
                   if (msg != null)
                   {

                      queue.DeleteMessage(msg);
                   }
                }
            }
        }
….
}

现在您就可以通过按 F 5 尝试在本地开发结构中此应用程序。 您会看到 Web 角色接收输入和发送到辅助角色,通过队列的消息。 现在您完成所需的所有必要的开发活动后,就准备好发布 Azure 应用程序。

部署服务

部署到 Windows Azure 的服务是相对简单。 但是,首先需要确定要文件 (环境要求)、 如何打包应用程序、 是否可以利用现有的工具可以创建和上载包,以及如何存储群存储您的程序包和更高版本将其部署到 Azure 包括在服务定义文件应用程序配置信息中与服务配置的信息。

这里我将如何解决这些示例应用程序的要求。

Fabrikam ISV 具有开发人员、 部署和操作的角色,来管理其群应用程序。 开发人员创建服务定义文件包含有关应用程序的信息。 服务定义文件 (.csdef) 可用角色定义服务指定在的服务端点,建立服务配置参数。 部署服务后,无法更改服务定义设置。 此文件成为在包装过程中的服务包文件的一部分。

开发人员还会创建本地调试和 Azure 临时部署的服务配置文件 (指定所需的实例数和 Azure 的帐户信息)。 服务配置文件 (.cscfg) 指定为正在运行的服务中的一个或多个角色实例的配置设置的值。 不重新部署该服务,操作的人员可以动态修改这些服务配置设置。 服务配置文件与服务不打包,但已上载到 Windows Azure 结构,作为单独的文件。

部署技术支持人员用 Azure 的帐户的特定信息和操作要求 (生产实例所需的数目) 更新生产部署之前在服务配置文件。

开发人员或部署人员创建使用 Visual Studio Tools 或 CSPack 工具 Azure SDK 附带的 Azure 部署程序包。

有可能存储在 Azure Blob 存储中的部署程序包和检索部署到 Azure 群平台时

服务包文件 (.cspkg) 是一个包含角色定义和所有的压缩的文件角色与相关的打包到一个项目文件 (二进制文件、 图像和配置)。 可以通过使用 Visual Studio,或使用 CSPack 工具生成这些程序包。 当您使用 Visual Studio 运行开发结构上创建包将具有.csx 扩展名。 但是当您使用"发布"功能,它会创建一个.cspkg 为文件即.csx 文件压缩和加密版本。 此加密,并带有.cspkg 扩展名的压缩的版本上载到群。

现在您可以上载在服务配置文件 (.cscfg) 程序包文件 (.cspkg) Windows Azure。 为此,您需要先从 Azure Services 开发人员门户中获取 Windows Azure 计算和存储帐户。 获取这些帐户之后您可以部署包到群但 Azure 开发人员门户。 会上载文件后您将会提供与内部的临时 URL 您可以用 Windows Azure 结构中测试您的服务。 当您移动到生产环境时您将获得生产 URL。

管理

管理功能介绍在管理、 管理,和在群环境中部署应用程序的操作方面。 利用应用程序宿主群平台,则假定部署的服务是一个控制具有适当的服务级别管理、 资源管理、 服务设置、 安全性 / 信任模型,和环境监视。 您应该熟悉关键功能功能所需的服务管理。 它们包括:

  • 通过包括正确检测,请与操作易于实现最佳实践开发服务。
  • 监视在运行状况和可用性群应用程序和服务。
  • 收集指标报告服务使用情况的性能,和记帐。
  • 启用自动配置的服务和更新服务配置。

在 Windows Azure,代理监视的错误条件的每个 VM 实例和收集关于故障、 性能度量和使用标准的指标。

azure 结构自动置备和管理方面与受限的人工输入。 用户和进程是容易出现的错误。 这种自动化有助于避免人为错误。 在 Windows Azure,应用程序在部分信任沙箱中运行、 请求是负载平衡,和错误条件自动管理。

作为一名开发人员应熟悉使用您的服务操作的行为。 这些行为将记录作为服务定义和配置模型的一部分,并传递到群平台,以便于自动化。

此外,遵循这些最佳的做法:

在代码中添加登录信息

RoleManager.WriteLog ("Information", "message to show in the log file"); 
  • Overiding GetHeatlthStatus 方法
public override RoleStatus GetHealthStatus()
{
      // return the health status of worker role.
      return RoleStatus.Healthy;
 }
  • 获取分析应用程序状态的日志文件

Windows Azure 服务管理

在 Windows Azure,服务管理遵循一模型驱动方法的模型用于从开发人员和 deployers 收集所需的配置信息。 azure 结构) 使用这些模型管理服务生命周期包括动态配置的更新、 自动的故障处理,和服务的监视。 通过引入错误域,其中每个角色是独立的 Windows Azure 避免单点故障 (硬件或软件) 多个计算节点或计算机机架。 此外,Windows Azure 可确保服务更新 (滚动向前或向后服务的一个子集) 通过请求升级的域但配置时是启动并正在运行。

应将日志消息复制到 Blob 存储 Azure 门户中使用的"配置"选项和"复制日志"选项。

在完成复制后则可以从使用前面描述的编程模型的 Blob 存储访问日志。

在将来 Windows Azure 将公开管理接口访问和控件管理和操作的活动。 这有助于在场服务管理的工具来监视和管理群应用程序。

结论

了解群计算架构模型,查找相关的模式确定了编程的模型,因此启用自动的管理至关重要的群计算演变成功。 Windows Azure 旨在与记住的开发人员通过使开发人员快速、 轻松地创建、 部署、 管理,和分发 Web 应用程序和服务。

作为一的名开发人员应该会堆积一组核心模式将帮助您最有效地开发群应用程序。 此外,您应记住捕获和共享问题和其他新出现的模式的定期解决方案,以便我们的解决方案和产品可以提供更好地现有的支持的核心云形标计算模式。

我想感谢 Steve 经常、 Jason Hogg、 David Hill、 Fred Chong、 进度,Eugenio 其有价值反馈对此项目的 Nataraja Koduru。

joshy Joseph 是主要的架构师与 Microsoft 服务托管解决方案组。 他主要的技能和专业技术提供了分布式的计算,网格计算和 Web 服务。 他是 Grid Computing (Prentice Hall 2004) 的作者和 prolific inventor,与文件上的多个 35 专利。 此外,他有分布式计算和业务流程开发写入大量的技术文章。 Joshy 可以访问在 jojoseph@Microsoft.com.