• 基于Windows Azure 包、Service Provider Foundation 和 Virtual Machine Manager的示例门户代码

    原文地址:http://blogs.technet.com/b/privatecloud/archive/2013/11/28/sample-portal-code-based-on-windows-azure-pack-service-provider-foundation-and-virtual-machine-manager.aspx

    最近,我们发现很多客户(包括服务提供商)纷纷寻找集成示例或最佳实践指南,希望集成现有门户或者开发全新门户以便与Windows Azure包 (WAP) API集成,从而为其租户提供基于WAP的开箱即用的云服务(如Web Site Cloud、VM Cloud、Service Bus Cloud、SQL Server、My SQL Server),继而使用基于订阅的模型使用这些服务。在本文中,我将会说明并提供基于System Center 2012 R2Windows Azure 包 (WAP)、Service Provider Foundation (SPF) 和Virtual Machine Manager (VMM)开发的示例门户代码(如下所示)。示例门户为ASP.Net、MVC 4、Web 应用程序,旨在实施WAP API以便使用WAP的服务管理 API执行一些常见的WAP和虚拟机(VM)操作。

    image 


    示例门户代码的作用:

    虽然绝大部分客户能够使用发布的WAP 开发人员工具包文档自行开发门户,我们仍然发现很多客户要求提供用于实现特定用例或场景的示例代码,以便用作示例进行参考并扩展到真实世界的场景中。此外还有一些需求,客户希望了解实现身份验证逻辑背后的更多详细信息,以便与作为租户和管理员的服务管理 API 集成。此处提供的示例主要解决上述两个问题,并对WAP开发人员工具包文档提供的信息加以补充。有关WAP SDK的最新信息,请参阅产品文档。

     

    示例门户代码涉及的场景:

    该示例门户代码包含以下场景:

    控制面板或门户集成

    1. 租户(使用ASP.NET成员资格提供程序)和管理员(使用Windows)门户WAP身份验证
    2. 列出可用订阅计划
    3. 列出租户订阅
    4. 列出租户订阅报价
    5. 列出订阅虚拟机(租户)
    6. 执行虚拟机操作:

    VM云资源提供程序(SPF)

    • 启动虚拟机
    • 停止虚拟机
    • 创建虚拟机
    • 虚拟机详细信息

     

    示例门户代码的组成部分:

    该示例门户代码包含以下两部分或Visual Studio (VS)项目:

    1. WAPWrapper.csproj -实现常见服务管理 API 调用(用于执行租户身份验证、订阅、虚拟机操作、云操作和虚拟机模板操作)的VS项目
    2. WAPContosoPortal.csproj -实现MVC(模型-视图-控制器)代码的VS项目,以便通过WAPWrapper库调用服务管理 API,以及在门户上执行用户请求的操作

    从最佳实践的角度,为简便起见,服务管理 API 层集成以包装库的形式呈现。这样,您就能在不同类型的门户(如租户和管理员门户)上灵活使用相同的代码。与此同时,在服务管理 API 层进行升级时,仅修改和构建包装库就已足够,而不必修改和构建全部门户代码。此外,包装库将实现租户和管理员相关功能,但门户代码仅包含租户特定操作,因为它仅适用于租户。

    总而言之,使用WAP、SPF 和 VMM实现时的自定义示例门户按分层顺序查看和连接,如下图所示:

    image  

    一些示例门户代码屏幕截图:

    • 使用ASP.NET成员资格提供程序对租户进行WAP身份验证

     image 

    • 列出可用租户订阅计划

    image 

    • 列出租户订阅

     image 

    • 列出订阅报价

    image 

    • 列出订阅虚拟机(租户)

    image 

     

    有关示例门户代码的更多信息:

    示例门户代码包含以下交付成果:

    • Documents文件夹:包含以下三个文档,用于描述源代码、版本以及如何将该版本部署到基于Web Server (IIS)的 Web 服务器
    • Readme for WAPWrapper sample.docx – 此文档描述包装库(WAPWrapper.csproj)      VS项目的源代码详细信息
    • Readme for ContosoCloud sample (WAP      version).docx –此文档描述示例Contoso门户(WAPContosoPortal.csproj)      VS项目的源代码详细信息
    • Readme for Deploying ContosoCloud      sample (WAP version).docx –此文档描述示例Contoso门户的部署详细信息
    • Source文件夹:包含以下两个源代码文件夹
    • WAPWrapper –此文件夹包含包装库(WAPWrapper.csproj)      VS项目的源代码
    • WAPSamplePortal –此文件夹包含示例Contoso 门户(WAPContosoPortal.csproj)      VS项目的源代码
    • 下载位置:您可以从以下TechNet Gallery站点下载文档和源文件。

             BC-DLButton 

    其他参考资料

     

  • 微软虚拟学院 MVA:迎新年 学知识 抽大奖

    活动官方网址:http://www.microsoft.com/china/technet/joinmva/

    迎新年,微软虚拟学院 MVA 开启给力喜迎新年抽大奖活动。活动中有丰富多彩的礼物可以选择,活动参与门槛低,只要您注册账号加入微软虚拟学院 MVA 的大家庭,就能收获礼品,一起感受节日的气氛。

    活动期间(自 2014 年 12 月 24 日凌晨零时起至 2015 年 01 月 31 日晚上 11 时 59 分止),注册新的微软虚拟学院 MVA 免费帐号并完成指定的两门课程任意一门,即可一起参与抽大奖!并且随着参加人数的增加,您将开启更多值得期待的节日礼物。还等什么,快来参加吧!

    奖品图:

  • Windows Azure 包环境的公用 IP 地址要求

    原文地址:http://azure.microsoft.com/blog/2014/08/20/azure-automation-capabilities-in-depth-the-azure-automation-powershell-cmdlets/

    简介

    现在,您可能已经通过Azure门户试用过Azure Automation的出色功能:创作Runbook和创建资产、手动定期启动作业、导入集成模块以及查看作业输出。现在,您可以使用命令行更轻松地以编程方式完成所有这些操作。无论是不经意间使用Azure Automation还是希望为若干关键操作(如批量Runbook导入)编写脚本,Azure Automation 命令都可以为您实现。

    Azure Automation 命令入门

    Azure 提供了一个 PowerShell模块,该模块可以使用Microsoft Web Platform Installer安装,以便管理包括Azure Automation在内的各项Azure服务。

    Azure Automation Capabilities in Depth: The Azure Automation PowerShell Cmdlets

     

    Azure PowerShell模块目前提供20 个Azure Automation 命令,您可以使用这些命令编写脚本,来执行大量可从Azure Automation门户执行的操作。但这只是开始。到Azure Automation正式发布时,我们预计将会提供大约 40 个命令,从而通过PowerShell对Azure Automation实施全面控制。由于这些命令属于Azure PowerShell模块,我们还会提供 Azure PowerShell模块以便在Azure Automation中使用。无需在Runbook中执行任何额外操作即可使用这些命令,首次使用Azure Automation就能操作自如。

    要查看Azure PowerShell模块提供的所有这些出色的命令,请在安装Azure模块的主机上打开PowerShell控制台,然后键入:

    PS C:\> Get-Command -Module Azure -Name *Automation*

    这将返回所有与 Azure Automation 命令有关的信息:

    Azure Automation Capabilities in Depth: The Azure Automation PowerShell Cmdlets

     

    要获取有关如何使用某个特定 Automation 命令的详细信息,请键入:

    PS C:\>Get-HelpSome-Command

    使用具体的命令名称来替换上面的“Some-Command”,并在后面加上 “–Detailed” 或 “–Full”,即可获取有关该命令的详细信息。

    Azure Automation Capabilities in Depth: The Azure Automation PowerShell Cmdlets

     

    如果希望在 Web 浏览器(而非PowerShell控制台)中了解这些命令,还可以查看Azure Automation 命令参考

    Azure Automation 命令的工作原理

    与其他Azure 命令一样,您必须首先设置Azure订阅链接,以便对其执行Azure 命令。您可以使用本地证书存储中安装的管理证书或通过Azure凭据对Azure进行身份验证。最后,使用某种Set-AzureSubscription、Import-AzurePublishedSettingsFile、Add-AzureAccount和 Select-AzureSubscription组合设置Azure连接。您可以从此处查找有关如何使用Azure PowerShell 命令来连接Azure的详细信息。Azure连接设置完成后,不必指定任何凭据、端点等设置,即可使用Azure 命令。一切都以最初的连接设置为起点。但是,您需要通过AutomationAccountName参数提供要通过每一项操作访问的Azure Automation帐户的名称。

    运行命令

    以下是一个运行Azure Automation 命令的示例,并且展示了该命令提供的输出类型:

    Azure Automation Capabilities in Depth: The Azure Automation PowerShell Cmdlets

     

    使用命令的过程中,您将会发现一个问题:如果持续作用于同一Automation帐户,连续向每一个命令传递AutomationAccountName参数,可能会十分麻烦。幸运的是,用户不必每次写出(展开)即可轻松地将此参数传递至每一个Azure Automation 命令。展开允许您将一组参数作为一个HashTable进行定义,然后将这组参数传递给所有命令。从下图中,您可以看到,这会使向Azure Automation 命令添加Automation帐户名称参数和值的过程变得非常简便:

    Azure Automation Capabilities in Depth: The Azure Automation PowerShell Cmdlets

    在 Azure Automation中使用Azure Automation 命令

    Azure PowerShell模块的另一个有趣的奥秘在于,它将作为开箱即用集成模块被纳入Azure Automation中,这意味着无需执行任何额外操作即可在Runbook中直接使用Automation 命令。例如,以下是一个Azure Automation Runbook,它通过异步方式以新作业的形式启动另一个Azure Automation Runbook,然后打印有关该作业的信息:

    Azure Automation Capabilities in Depth: The Azure Automation PowerShell Cmdlets

     

    要了解有关从Runbook启动其他Runbook的详细信息,请参阅Chris Sanders在此处发布的博客文章。如需其他Azure Automation Runbook示例(使用Azure Automation 命令),请查看Gary Keong发布的博客文章,该文的主题是集成Visual Studio Online 与 Azure Automation以实现Runbook来源控制。

    小结

    现在,希望大家对使用Azure Automation PowerShell 命令可以完成的所有精彩操作以及命令本身的工作原理有了更深入的了解。您不仅可以使用Azure Automation自动完成云和业务流程,甚至还可以使用这些命令自动操作Automation本身!Azure Automation团队热切盼望看到您编写的各种Runbook和脚本,以便充分利用Azure Automation 和 Azure PowerShell模块提供的功能。

    还不是 Azure Automation 用户?注册预览版,然后查看入门指南

  • 将数据迁移到 Microsoft Azure 文件

    Atul Sikaria

    Microsoft Azure 存储项目经理

     

    关于 Microsoft Azure Files

    Microsoft Azure Files是一项基于云的存储服务,在云中表现为基于SMB2.1协议的文件共享。现在,Azure中运行的应用程序可以使用熟悉的标准文件系统API(如ReadFile和WriteFile)轻松地在虚拟机间共享文件。此外,还能通过REST接口访问这些文件,这实现了大量混合场景。最后,Azure Files与Blob、Table和 Queue Services构建于相同的技术基础之上,这意味着Azure Files还能发挥内置于我们的平台的现有可用性、持久性、可扩展性和地域冗余性特征。该服务目前处于预览阶段。要阅读有关该服务的更多详细信息,请参阅我们的 Files 博客文章

     

    迁移数据

    开始使用Azure Files时,可能需要将大量现有数据迁移到Azure Files服务。目前有很多方案可以将数据有效迁移至Azure Files,您的选择将取决于数据的原始位置。本文的剩余部分将会讨论这些选项,以及如何利用各个选项实现最佳性能。

    1. 通过 Internet从本地迁移到Azure Files

    要复制文件,您可以使用Microsoft Azure提供的AzCopy工具。AzCopy实施了大量优化,从而确保复制作业达到最高吞吐量(例如,并行上载、多线程、正确处理限制等)。

    The format of the AzCopy command line is:

    AzCopy <source path> <destination URL> [optional filespec] /S /DestKey:<YourKey>

    其中:
    source path是指要迁移到的目录的路径
    destination URL是指要复制到的目录的http URL
    filespec用于为要迁移的文件指定任何文件筛选器(默认值为*.*)
    YourKey是指目标存储帐户的存储帐户密钥
    /S 是指用于复制源目录下的所有目录和子目录的可选交换机
    AzCopy包含许多其他命令行选项,您还应使用对您的环境有益的任何其他选项。有关详细信息,请参阅此AzCopy 博客文章

    以下是一个用于将 c:\data 目录下的文件复制到directory to Azure Files的示例命令:

    AzCopy c:\data https://myaccount.file.core.windows.net/myshare *.* /S /DestKey:myStorageAccountKey

     

    2.  从IaaS VM的Azure磁盘迁移到Azure Files

    在AzureIaaS VM上运行文件服务器角色的客户发现Azure Files服务颇具吸引力,因为它不必管理文件服务器本身。

    要将数据从IaaS磁盘迁移到共享,您需要:

    1. 将磁盘连接到虚拟机
    2. 将共享安装到您的虚拟机
    3. 使用robocopy将数据复制到Azure Files共享

    Robocopy是Windows中包含的一款强大的免费文件复制工具,用于执行大型文件复制。

    要使用的命令行格式为:

    Robocopy <source path> <dest path> [optional filespec] /MIR /MT:16

    其中:
    source path是指要复制到的目录的路径
    dest path是指目标目录的路径
    filespec用于为要复制的文件指定任何文件筛选器(默认值为*.*)
    MT 是指要使用的线程数(参见下方的讨论)
    使用robocopy时,应选择“/mt” 参数最大限度地提高吞吐量。这样就可以控制执行复制的并行线程数,主要控制要存储的 IO 请求的队列深度。线程数过低无法在服务器上排列足够的请求,因而无法充分利用我们的云体系结构固有的平行度。线程数过高很可能会产生服务器端限制,最终会降低吞吐量。在我们的测试中,我们发现队列深度介于16 到 32可以最大限度地提高吞吐量。

     

    避免方法:

    我们发现,使用xcopy或 Windows Explorer向Azure Files执行大型文件复制效果欠佳。这些工具对于向NTFS文件系统执行文件复制效果很好,但无法在复制到Azure Files时实现足够的平行度。Azure Files支持高度并行 IO,因此很多执行并发复制的线程的性能大大提升。使用线程数适当的robocopy可提供更高的复制吞吐量,继而缩短传输数据的时间总量。

     

    3. 从Azure Blob迁移到Azure Files

    将数据从Azure Blob 迁移到 Azure Files 的最快方法是使用AzCopy。您应当从与目标存储帐户位于同一数据中心的虚拟机中运行AzCopy。

    以下是一个用于执行此操作的AzCopy命令示例:

    AzCopy https://myaccount1.blob.core.windows.net/mycontainer Z:\mydirectory *.* /SourceKey:myStorageAccountKey

    (这假定将文件共享映射到驱动器 Z)

     

    在这种情况下,会将数据下载到虚拟机,然后复制到Azure Files。

    有关AzCopy使用方法的详细信息,请参阅上方第 1 部分的讨论。要查看 Blob 命令行选项及其他Blob特定选项(如 SAS),请使用“AzCopy /?”运行AzCopy。

     

    4.从云驱动器迁移到Azure磁盘

    云驱动器版本为 2010 预览版。它支持客户使用Azure 云服务安装页面 Blob 作为Azure Web 和Worker角色驱动器。随着Azure Files的发布,云驱动器支持的所有场景均可在使用Azure Files时得到更好的发挥。云驱动器将于 2015 年淘汰,因此我们建议仍在使用云驱动器的所有客户将数据迁移到Azure Files。迁移数据的方法与使用 VHD 将数据移出Azure VM十分相似。

    1. 使用云驱动器将 Blob 安装为磁盘(大部分客户在 Web 或Worker角色设置期间执行此操作)
    2. 在您的虚拟机上安装共享。请参阅此博客文章了解如何创建和安装共享。
    3. 使用Robocopy复制数据。请参阅第 3 部分的讨论,了解如何使用Robocopy和“/mt”参数实现最大吞吐量。

     

    我们希望用于将数据迁移到Azure Files的这些选项可以有效帮助您将数据迁移到文件服务,并帮助您利用该服务优化现有场景,同时为您的应用程序和企业启用新的场景。