2014年8月28日星期四

将 Windows Azure 存储用于 Jenkins 持续集成解决方案

下列信息演示如何使用 Windows Azure Blob 服务作为 Jenkins 持续集成 (CI) 解决方案创建的生成项目的存储库。在以下情况中您将会发现这一做法很有用:您在敏捷开发环境进行编码(使用 Java 或其他语言),生成是基于持续集成运行的并且您需要一个适用于生成项目的存储库,以便(举例来说)您能与其他组织成员、您的客户共享生成项目或维护存档。
在本教程中,您将使用 Microsoft Open Technologies, Inc. 提供的适用于 Jenkins CI 的 Windows Azure 存储插件。

目录

使用 Blob 服务的好处

使用 Blob 服务承载敏捷开发生成项目的好处包括:
  • 生成项目的高可用性。
  • Jenkins CI 解决方案上载生成项目时的性能。
  • 客户和合作伙伴下载生成项目时的性能。
  • 通过选择匿名访问、基于过期的共享访问、签名访问、专用访问等来控制用户访问策略。

先决条件

您将需要下列项才能将 Blob 服务用于 Jenkins CI 解决方案:
  • 一个 Jenkins 持续集成解决方案。
    如果您当前没有 Jenkins CI 解决方案,则可使用以下技术运行一个 Jenkins CI 解决方案:
    1. 在已启用 Java 的计算机上,从 http://jenkins-ci.org 下载 jenkins.war。
    2. 在打开到包含 jenkins.war 的文件夹的命令提示符处,运行:
      java –jar jenkins.war
    3. 在浏览器中,打开 http://localhost:8080/。这将打开 Jenkins 仪表板,您可使用该仪表板安装并配置 Windows Azure 存储插件。
      虽然典型 Jenkins CI 解决方案将设置为作为一个服务运行,但在本教程中,通过命令行运行 Jenkins war 就足够了。
  • 一个 Windows Azure 帐户。您可在 http://www.windowsazure.cn 中注册 Windows Azure 帐户。
  • 一个 Windows Azure 存储帐户。如果您还没有存储帐户,则可使用如何创建存储帐户中的步骤创建一个。
  • 建议熟悉 Jenkins CI 解决方案(但不是必需的),因为以下内容将使用一个基本示例向您演示使用 Blob 服务作为 Jenkins CI 生成项目的存储库时所需的步骤。

如何将 Blob 服务用于 Jenkins CI

若要将 Blob 服务用于 Jenkins,您将需要安装 Windows Azure 存储插件,并将该插件配置为使用存储帐户,然后创建一个将生成项目上载到存储帐户的后期生成操作。将在下面各节中介绍这些步骤。

如何安装 Windows Azure 存储插件

  1. 在 Jenkins 仪表板中,单击“管理 Jenkins”。
  2. 在“管理 Jenkins”页中,单击“管理插件”。
  3. 单击“可用”选项卡。
  4. 在“项目上载程序”部分,选中“Windows Azure 存储插件”。
  5. 单击“安装而不重新启动”或“立即下载并在重新启动后安装”。
  6. 重新启动 Jenkins。

如何将 Windows Azure 存储插件配置为使用存储帐户

  1. 在 Jenkins 仪表板中,单击“管理 Jenkins”。
  2. 在“管理 Jenkins”页中,单击“配置系统”。
  3. 在“Windows Azure 存储帐户配置”部分:
    1. 输入存储帐户名称,您可从 Windows Azure 门户 https://manage.windowsazure.cn 获取该名称。
    2. 输入存储帐户密钥,该密钥也可从 Windows Azure 门户获得。
    3. 如果要使用公共 Windows Azure 云,则使用“Blob 服务终结点 URL”的默认值。如果要使用其他 Windows Azure 云,则使用在 Windows Azure 管理门户中为您的存储帐户指定的终结点。
    4. 单击“验证存储凭据”以验证存储帐户。
    5. [可选] 如果您具有要使其可用于 Jenkins CI 的其他存储帐户,请单击“添加更多存储帐户”。
    6. 单击“保存”以保存设置。

如何创建将您的生成项目上载到存储帐户的后期生成操作

为了进行说明,首先我们将需要创建一个将创建若干文件的作业,然后添加后期生成操作以将文件上载到存储帐户。
  1. 在 Jenkins 仪表板中,单击“新建作业”。
  2. 将此作业命名为“MyJob”,单击“生成自由格式的软件项目”,然后单击“确定”。
  3. 在作业配置的“生成”部分,单击“添加生成步骤”并选择“执行 Windows 批处理命令”。
  4. 在“命令”中,使用下列命令:
    md text
    cd text
    echo Hello Windows Azure Storage from Jenkins > hello.txt
    date /t > date.txt
    time /t >> date.txt
  5. 在作业配置的“后期生成操作”部分,单击“添加后期生成操作”并选择“将项目上载到 Windows Azure Blob 存储”。
  6. 对于“存储帐户名称”,请选择要使用的存储帐户。
  7. 对于“容器名称”,请指定容器名称。(如果上载生成项目时不存在该容器,则将创建该容器。)您可使用环境变量,因此在此示例中,请输入 ${JOB_NAME} 作为容器名称。
    提示
    在您为“执行 Windows 批处理命令”输入脚本的“命令”部分的下面,有一个指向 Jenkins 识别的环境变量的链接。单击此链接可了解环境变量名称和说明。请注意,包含特殊字符的环境变量(如 BUILD_URL 环境变量)不允许作为容器名称或通用虚拟路径。
  8. 在此示例中单击“将容器设为公开的”。(如果要使用私有容器,您将需要创建共享访问签名以允许访问。这超出了本主题的范围。您可在创建共享访问签名中了解有关共享访问签名的详细信息。)
  9. 对于“要上载的项目列表”,请输入 text/*.txt
  10. 对于“已上载项目的通用虚拟路径”,请输入 ${BUILD_ID}/${BUILD_NUMBER}
  11. 单击“保存”以保存设置。
  12. 在 Jenkins 仪表板中,单击“立即生成”以运行 MyJob。检查控制台输出中的状态。当后期生成操作开始上载生成项目时,Windows Azure 存储的状态消息将包括在控制台输出中。
  13. 成功完成此作业后,您可通过打开公共 Blob 检查生成项目。
    1. 登录 Windows Azure 管理门户 https://manage.windowsazure.cn
    2. 单击“存储”。
    3. 单击用于 Jenkins 的存储帐户名称。
    4. 单击“容器”。
    5. 单击名为 myjob 的容器,该名称是您创建 Jenkins 作业时分配的作业名称的小写形式。Windows Azure 存储中的容器名称和 Blob 名称均是小写的(并且是区分大小写的)。在名为 myjob 的容器的 Blob 列表中,您应该能看到 hello.txt 和 date.txt。复制这两项中任一项的 URL 并在浏览器中打开。您将看到作为生成项目上载的文本文件。

Blob 服务使用的组件

以下信息概述了 Blob 服务组件。
  • 存储帐户: 对 Windows Azure 存储服务进行的所有访问都要通过存储帐户完成。存储帐户是访问 blob 的最高级别的命名空间。一个帐户可以包含无数个容器,只要这些容器的总大小不超过 100TB 即可。
  • 容器: 一个容器包含一组 Blob 集。所有 blob 必须位于相应的容器中。一个帐户可以包含无限个容器。一个容器可以存储无限个 Blob。
  • Blob: 任何类型和大小的文件。Windows Azure 存储可存储两种类型的 Blob:块 Blob 和页 Blob。大部分文件都是块 blob。一个块 Blob 的大小可以达到 200 GB。本教程使用的是块 Blob。另一种 blob 类型为页 blob,其大小可以达 1 TB,在对文件中的一系列字节进行频繁修改时,这种 blob 类型更加高效。有关 Blob 的详细信息,请参阅了解块 Blob 和页 Blob
  • URL 格式:使用以下 URL 格式可访问 Blob:
    http://storageaccount.blob.core.chinacloudapi.cn/container_name/blob_name
    (以上格式适用于公共 Windows Azure 云。如果要使用其他 Windows Azure 云,则使用 Windows Azure 管理门户中的终结点以确定您的 URL 终结点。)
    在以上格式中,storageaccount 表示存储帐户的名称,container_name 表示容器的名称,而 blob_name 表示 Blob 的名称。在容器名称中,您可具有多个由正斜杠 / 分隔的路径。本教程中的示例容器名称为MyJob${BUILD_ID/${BUILD_NUMBER} 用于通用虚拟路径,从而导致 Blob 具有以下格式的 URL:
    http://example.blob.core.chinacloudapi.cn/myjob/2013-01-28_15-00-35/2/hello.txt

IIS的扩展:应用程序请求路由(ARR)

简介  
IIS应用程序请求路由(ARR)使Web服务器管理员,托管提供商,和内容分发网络通过规则路由来提供web应用程序的伸缩性和可靠性,客户机和主机约定,HTTP服务器请求的负载均衡和分布式缓存。通过ARR,管理员可以优化web服务器的资源利用,对于web服务器集群和共享主机的环境,可以减少管理成本。
服务器群使用负载均衡可以有效的达到资源利用率最大化
IIS ARR能够让管理员创建强大的基于URL、HTTP头和服务端变量的路由规则来让请求选择最适合的web服务器去处理。ARR是建立在应用程序层的请求路由,可以和硬件负载均衡器或HTTP请求的控制层的windows网络负载平衡一起合作。此外,ARR通过创建客户机与主机的约定,能够让托管提供商对来自客户的请求路由到特定的web服务器。
IIS管理器可以很轻松的管理和监控web服务器集群
ARR可以使管理员或托管提供商在IIS管理器中创建、管理和应用负载均衡,他们可以很轻松的创建而不需要应用停机。ARR包含流量监控以及对每台主机的承受能力,通过配置,管理员就可以在IIS管理器中查看统计的运行信息。
通过磁盘缓存来提高带宽的使用和服务器的容量
ARR可以将流经服务器的HTTP流量缓存到磁盘中。通过磁盘缓存和运行ARR的IIS服务器、CDNs配合,可以大大减少对原始服务器的请求。这个新特性使它可以将内容缓存到离客户端更近的HTTP网络基础架构上,使分发更有效,使用ARR和IIS LSS(Live Smooth Streaming),可以实现现场和点播高清质量(720P+)的视频事件。

特性

  • 使用基于HTTP的路由决策规则来检查HTTP请求的信息
  • 复杂的负载平衡算法来确定合适的服务器服务HTTP请求
  • 可以监控实时流量,提供一组配置参数校准基线服务器健康。
  • 使用cookie,客户端的所有请求可以关联到某一台特定服务器上。
  • Web服务器和主机名关联精简关联,可以节省很多时间创造更多的商业机会。
  • 使用管理导航管理多个服务器集群,提供A/B测试场景。
  • 管理和监视所有配置,并通过IIS接口收集运行时统计数据。
  • 支持对失败请求跟踪规则
  • 支持磁盘缓存
  • 缓存层级式管理
  • 缓存代理节点在CDN/ECN环境
  • 缓存压缩的对象
  • 使用IIS管理器浏览缓存内容
  • 删除匹配规则的缓存
  • 缓存控制指令可以覆盖
  • 缓存模式热启动
  • 支持智能动态字节组
  • 支持智能动态请求
  • 在服务响应时缓存

    Download ARR 3.0

    Installing ARR 3.0 manually

    ARR is dependent on several components:
    • URL Rewrite
    • Web Farm Framework
    • External Cache module

    To install ARR and all its components in the appropriate order, use the Microsoft Web Platform Installer by clicking on the link at the top of the page. Alternatively, read the following blog post for instructions on installing ARR manually: Installing ARR manually without WebPI.

2014年8月27日星期三

今天我开通了google博客

今天是2014-8-27,我开通了Google博客,敬请关注我!