Team Foundation Service

使用 Team Foundation Service 预览版实现构建自动化

Tim Star
Tim Omta
Mario Contreras

 

在这篇文章你就会找出如何实现生成自动化与团队的基础服务预览 (TFS 预览)。 作为 Visual Studio ALM 别动队,我们一直在使用 TFS 预览自 3 月份以来完全在云计算中运行生成。 虽然支持在所有团队生成功能的地方 — — 包括网关签入和自定义生成定义 — — 我们在这篇文章的重点不是 TFS 预览的基本生成功能。 相反,我们将介绍如何设置生成自动化上-处所的情况下,开发团队需要更好地控制生成计算机的配置,比 Windows Azure 上可用的地方。

有关如何对 TFS 预览执行生成的详细信息,在看到亚伦碧玉"Visual Studio ALM + 团队基础服务器博客" bit.ly/H9epDn

综上所述,别动队是一个处理缺少的功能,通过促进 Visual Studio 产品组、 Microsoft 服务和微软最有价值专家 (MVP) 社区之间的协作,删除通过阻断剂和出版最佳做法和指导基于现实世界的经验的专家组。

连接到团队基金会生成服务的 TFS 预览

要自动完成您的软件项目生成的您使用团队基础建设服务来创建运行或在处所的生成计算机或宿主方案中。 一旦生成计算机的设置,您需要在 Visual Studio 中创建生成定义,与有关的代码项目编译以及如何配置许多其他选项的说明。 首先必须为团队的基础构建服务选择您的部署方案和相应设置生成计算机。

准备安装可以在连接到 TFS 预览一台机器上安装团队基础建设服务之前,您需要执行以下任务:

  • 请确保使用与团队的基础服务器 2012年的团队基金会建立可用的服务。 团队的基础服务器 2010年生成代理和控制器不兼容 Windows Azure 预览的团队的基础服务。 您必须使用生成服务器软件是团队的基础服务器 2012年的一部分。
  • 订阅 TFS 预览。
  • 识别到 TFS 预览项目集合的 URL。
  • 配置您的用户凭据,具有"编辑集合级别信息­信息"包括在项目集合生成管理员组的默认权限的权限。
  • 配置您的防火墙以允许 TCP 端口 9191 上托管的虚拟机 (VM) 防火墙的入站的连接,因此 TFS 预览可以与生成服务进行通信。 为确保安全和完整的生成计算机,始终保持 Windows 防火墙处于打开状态。

安装、 配置和执行上承载的物理机或绑 TFS 预览 VM 部署团队基础建设服务的过程是向部署在处所团队基础服务器,几乎相同,在 MSDN 库的文章,所述"如何:安装团队的基础构建服务"在 bit.ly/Oazdwd 和 ALM 别动队"安装生成的团队基础服务"指导在 go.microsoft.com/fwlink/?LinkID=251576

主要区别是您确保生成放置的安全。 虽然承载的物理机或虚拟机上,您可以创建生成放置共享的文件夹,您不应该公开直接到互联网的共享的文件夹。 你不想增加生成服务器的受攻击面。 如中所示图 1,使用 IIS 的安全 FTP 功能和发布生成放置文件夹可能是通过互联网安全地提供您的生成的最佳方法。

Secured Build Drop Access
图 1 安全生成放置访问

处理性能、 带宽和下载关注生成自动化通常是 I/O 密集型操作。 当您考虑大多数生成将下载解决方案的完整源代码时,可用的带宽和下载帽是一个重要因素。 为了减少在每次生成过程中下载的文件的数目,应考虑团队基础服务器代理服务器设置。 在代理服务器缓存在远程位置的源代码管理文件的副本,从而增强了网络吞吐量。 通过缓存副本处所,代理可以帮助避免代价高昂的下载文件的生成过程。 缓存副本处所绝对可以减少带宽消耗,这将会影响下载瓶盖施加的 Internet 服务提供商,以及提高生成过程的总体性能。

配置并处所生成服务器

若要部署利用云 TFS 预览房地上生成服务器,我们需要借的一些概念和行业惯例从 Web 宿主。 在大多数公司的 Web 宿主环境中,一个外围网络 (也称为非军事区 — — 或 DMZ — — 或屏蔽子网) 用于创建一个安全的网络或飞地。 外围网络分隔从公司网络暴露给 Internet 的服务器。

在几种方法来实施外围网络。 传统上,它由使用两个独立的物理防火墙限制的交通流量和来自网络,如中所示的每个图 2


图 2 外围网络与两个单独的防火墙

实施外围网络的更现代方法使用担保虚拟局域网 (VLAN) 并且依赖单一防火墙,控制所有网络通信,如中所示图 3

A Perimeter Network with Virtual Local Area Networks
图 3 外围网络与虚拟局域网

TFS 预览和团队基金会生成服务通信的防火墙配置

由于各厂商之间的防火墙配置的许多变化,我们要限制我们的概念级别的讨论。 在这种情况下,防火墙配置的两个方面非常重要:发布和访问规则。

发布是指开放面向外部的接口或广域网络上互联网提供服务,例如 Web 访问、 电子邮件、 虚拟专用网络的防火墙上的 TCP 和用户数据报协议 (UDP) 端口的行为。 要保持有担保的生成服务器,您需要在您的防火墙以下列方式定义发布:

  • 接口:外部
  • 端口号: 9191
  • TCP/UDP:TCP
  • Scope(作用域):所有网络 (互联网)

请注意,范围设置为"所有网络 (Internet)。"您可能需要考虑限制范围的发布到 TFS 预览,以防止其他客户端或 Internet 上访问此计算机的主机的 IP 设置。 添加交通限制添加一个安全的第二层。 您可以通过执行 DNS 名称服务器查找获取 TFS 预览最新 IPs。 请记住,IPs 可以在任何时候更改。 某些防火墙有能力做对主机的完全限定的域名名称,以帮助您监视当前 IPs 的反向查找。

限制的防火墙的内部和外部接口之间的网络通信的访问规则。 要保持有担保的生成服务器,您需要在您的防火墙中定义的访问规则,如中所示图 4

图 4 定义访问规则

来源 目标 协议 端口 说明

内部网络

(生成服务器 IP)

外部接口

(互联网)

HTTPS 8080 TFS 预览的安全的通信

外部接口

(互联网)

生成服务器 (IP) HTTPS 9191 团队的基础构建服务终结点

检测入侵作为与任何 Web 托管基础结构,您需要考虑团队基础建设服务服务器发布到互联网时实施入侵检测。

确保 TFS 预览和团队基金会建立服务通信你可以加强通过配置使用的服务连接到 TFS 预览房地上生成服务器部署的安全性。 我们建议您配置您的部署,需要使用 SSL,以最大化您的部署安全的 HTTPS。

若要配置服务以使用 SSL 使用 HTTPS,您需要以下各项:

  • 由商业证书颁发机构 (CA) 颁发的 SSL 证书。
  • 注册互联网域名。
  • DNS 主机名称记录或别名 (CNAME) 解析为外部 IP (互联网面向) 使用您注册的域名的生成服务器。 (从商业 CA 获取一个 SSL 证书,您需要注册的域名。
  • 在生成服务器上的本地管理员权限。
  • 映射到外部 IP 地址在防火墙上的生成服务器的内部 IP 地址。

你见过这些要求之后,您需要在防火墙上打开 TCP 端口 9191 并将其转发给您生成服务器的内部 IP 地址,然后配置团队基础建设服务以使用 SSL。

说明如何为团队的基础服务器 2010年生成服务配置 SSL,请 MSDN 库副标题,"安装生成服务器上的证书"在 bit.ly/OA10Vz

设置了身份验证运行生成服务配置向导并将团队基础建设服务实例添加到 TFS 预览,您需要两个用户帐户:

  • Windows Live ID 映射到项目集合 TFS 预览帐户 (订阅)
  • 本地或域用户帐户,以用作生成服务器上的服务帐户

在初始配置阶段,生成服务配置向导使用 Windows Live ID 访问 TFS 预览并建立项目集合和生成服务器之间的映射。 随后,您需要提供的服务帐户凭据的域或本地用户帐户。 使用域用户帐户作为服务帐户是最佳的安全选项。 域用户帐户提供更简单的方法,当使用另一个服务器上的文件夹共享。

监视生成 ,您可以监视您通过生成通知电动工具是团队的基础服务器 2010年电动工具 (2011 年 12 月) 发布的一部分的生成。 图 5 显示生成通知选项对话框。 如果您正在使用 Visual Studio 2012,您需要安装团队基础服务器 2010年电动工具之前安装团队资源管理器 2010 SP1 和 GDR 兼容性更新。 您不需要担心版本冲突,因为支持的并行安装 Visual Studio 2012 和 Visual Studio 2010。

Monitoring Build Status
图 5 监测生成状态

与承载的生成控制器配置团队项目生成定义

TFS 预览提供了构建机器,可以编译、 测试和打包您的应用程序池。

配置一个承载生成控制器 用承载的生成控制器,必要的唯一配置是生成定义必须指定承载的生成控制器中的生成默认值选项卡,如中所示 图 6

Selecting a Hosted Build Controller
图 6 选择承载生成控制器

处理约束与 TFS 预览中,您没有生成机,这意味着如果您的项目中有一个外部依赖项,您需要将其签入或使它能够从饲料公共 NuGet 下载的完全控制。

Visual Studio 2012 和 Visual Studio 2010 SP1 (这要求 GDR 兼容性更新) 的开发环境中安装的 TFS 预览生成图像,意味着只与这些版本的 Visual Studio 创建的项目的支持。

如果您想要生成 Windows 存储的应用程序,您需要安装在 Windows 8 的生成服务。 使用团队基础建设以生成和测试 Windows 存储应用程序的详细信息,请转到 bit.ly/T3tFSt

单元测试 TFS 预览支持单元测试作为生成的一部分。 单元测试使用 MSTest 工作而无需额外的配置。 要执行测试使用其他单元测试框架,如 NUnit 或 xUnit,您需要验证的相应的测试适配器集签入到源代码管理,然后将生成控制器"版本控制路径设计组件自定义"属性设置为此位置。

确定复杂的生成方案决定最适合您的生成配置取决于生成的复杂性。 对于没有自动部署的简单生成方案,在 TFS 预览中承载的生成服务就足够了。 对于生成更复杂的流程,您应使用房地上生成配置。 一个复杂的生成配置将包括满足这些条件中至少一个任何生成模板:

  • 有自动部署在您的工作流活动
  • 包含在早于 Visual Studio 2010 SP1 版本的 Visual Studio 中创建的解决方案
  • 调用 Visual Studio 实验室管理
  • 关于楼宇机进行交互
  • 要求无 Visual Studio 测试适配器的测试框架

需要第三方程序集的解决方案可以兴建 TFS 预览,只要您签入版本控制这些程序集或使解决方案能够从饲料公共 NuGet 下载它们。

自动检测和实验室管理即使 TFS 预览当前不支持 Visual Studio 实验室管理,您仍可以创建和运行与 Visual Studio 的几种类型的自动测试。 示例如下:

  • 单元测试
  • 编码的用户界面测试
  • Web 性能测试
  • 负载测试
  • 常规测试

生成完成其质量评价后,您可以运行这些测试。 这些测试通常被称为生成验证测试 (Bvt) 或冒烟测试。 他们通常包括广泛的用于验证关键领域中特定生成的应用程序的测试套件。 如果在 BVT 中的所有测试都通过生成被视为成功。

联机 MSDN 库条,"如何:配置和运行生成应用程序之后的计划测试"在 bit.ly/P2EKB7 描述了创建和运行 Bvt 所需的所有程序。

做编码的用户界面测试团队生成你可以使用编码的 UI 测试您 Bvt 增添趣味。 编码的 UI 测试测试执行的一部分启动应用程序。 您必须确保配置用来启动应用程序的生成服务的服务帐户。 此服务帐户都必须相同,活跃的用户在此计算机上的用户帐户。 如果该服务帐户和用户帐户并不相同,该应用程序不会启动。 您还需要确保生成服务作为运行生成服务主机属性已设置为团队基础服务器管理控制台/团队基金会生成配置中的互动过程。

展望未来

在今后的文章,我们将提供指导如何设置和配置 TFS 预览,使企业发展商店想要利用远程开发商店的服务外包模型的一部分作为协作。 关于 ALM 别动队的详细信息,请参阅 bit.ly/HrYqAl。

Mario Contreras 是基于多伦多的资深顾问与 Microsoft 咨询服务、 ALM 教练和技术会议经常发表演讲。在他任职于微软加拿大,他已使一些大的团队基础服务器实施。孔特雷拉是 Visual Studio ALM 别动队团队的积极成员。

Tim Omta 是在凤凰城的高级应用程序开发经理。他已为微软工作作为产品的开发人员和测试的开发人员,目前通过 Microsoft 总理支持的开发人员的外地顾问。赵氏是 ALM 别动队的积极成员。

Tim Star 是 Intertech Inc.,重点放在培训、 咨询和 Visual Studio ALM 的主要顾问。他是酿造、 MCTS、 MCT、 Visual Studio ALM 外部游侠和三次 MVP 奖收件人。他花他的时间编写代码,教学和交付 ALM 指导。

衷心感谢以下技术专家对本文的审阅:吉姆羔羊、 马里奥 · 罗德里格斯、 威利-彼得 · 肖布和帕特里夏 · 瓦格纳