Team Foundation Server 体系结构

为获得最佳计划并管理你的部署,应首先了解 Team Foundation Server (TFS) 基础体系结构。 了解体系结构可帮助你维护部署的总体运行状况,并有助于确保你的开发团队需要的服务器和服务的总体可用性。

你可以以多种方法部署 TFS:在一台服务器上部署,在多台服务器上部署;在一个域或工作组中部署或者跨域部署。 或者,你可以选择使用 Visual Studio Online,通过 Microsoft 来为你托管所有部署的服务器组件。 了解体系结构可帮助你决定最能满足你的业务需求的拓扑。 无论你选择哪种拓扑,如果你了解体系结构基础 TFS,则可以更好地管理物理和逻辑要求。 本主题提供各种体系结构的简单概述,以及到有关部署示例的更多信息的链接。 它还提供有关本地部署的服务、数据库、配置信息、网络端口和协议的技术信息。

若要了解 TFS 的体系结构以及它如何影响你的部署,你应考虑以下方面:

  • Team Foundation 的逻辑应用层、数据层和客户端层,以及你是希望为应用层和数据层使用一台或多台服务器,还是希望通过使用 Visual Studio Online 为你在云中托管应用层和数据层

  • 托管这些层的物理或虚拟服务器的位置

  • Team Foundation Build 以及将在你的环境中运行的生成计算机的数量和位置,包括你可能需要支持开发实践的数量

  • Team Foundation Server 代理的潜在需要

此外,还必须考虑这些实体之间的交互。 例如,如果选择使用托管的 TFS 服务,则必须确保客户端可以访问端口 443 上的服务。 如果选择本地部署 TFS,则必须了解 TFS 使用的 Web 服务、数据库和对象模型。 而且,你还必须了解默认情况下 TFS 使用哪些网络端口和协议,以及可以自定义哪些网络端口。 最后,你必须了解在 Team Foundation Server 中必须设置的权限以及你的部署所依赖的组件和程序。

除了其本身的服务之外,Team Foundation Server 还需依靠其他服务才能运行。 有关这些服务的信息,请参见 Team Foundation Server 概念TFS 数据仓库的组件。 有关安装的要求和依赖关系的更多信息,请参见Team Foundation Server 安装指南

警告

你不应该手动修改任何 TFS 数据库,除非 Microsoft 支持人员指示你执行此操作,或者你遵循手动备份数据库中的所述过程进行操作。任何其他修改都可能使你的服务协议失效。

主题内容

  • Visual Studio Online

  • 对象模型

  • 本地部署的 Web 服务和数据库

    • 集合级别服务

    • 服务器级别服务

    • 数据层

    • 客户端层

  • 配置信息

  • 组和权限

  • 网络端口和协议

    • 默认网络设置

    • 可自定义的网络设置

Visual Studio Online

托管 TFS 服务的简单关系图

Microsoft 可以让你选择使用 Visual Studio Online,其中可为你托管部署的服务器端的各个方面。 你的源代码、工作项、生成配置和团队功能都可以在云中托管。 从体系结构的角度来看,这大大简化了你的部署,因为你需要考虑的体系结构的唯一方面是客户端组件及其 Internet 访问。

使用该服务时,你还可以使用 Web 浏览器连接到使用你的 Microsoft 帐户的服务。 你可以创建团队项目,将成员添加到你的团队中并像使用本地安装的部署一样工作,而不会产生管理服务器的开销。 将使用 Microsoft 云平台和 SQL Server Azure,为你在云中托管你的应用层、数据层和生成服务器。

有关详细信息,请参阅托管拓朴示例

对象模型

使用托管或本地部署的体系结构,你可以通过编写基于其服务器或客户端对象模型的应用程序扩展 Team Foundation 的特性和功能。 在所有部署类型中,你可以编写扩展客户端功能的应用程序。 但是,如果希望扩展服务器功能,你的应用程序必须在应用层服务器上运行。 若要扩展客户端功能,你必须在团队资源管理器所在的同一计算机上运行应用程序。

Team Foundation 的对象模型

有关详细信息,请参阅扩展 Team Foundation

本地部署的 Web 服务和数据库

Team Foundation Server 包含一组 Web 服务和数据库,它们将单独安装和配置在承载 Team Foundation 的逻辑应用层、数据层和客户端层的一台或多台服务器上。 某些功能(例如任务板和基于积压工作 (backlog) 团队的功能)是完全基于 Web 且通过 Team Web Access(基于客户端 Web 的服务)独立访问的。 其他功能(如版本控制功能)可通过 Team Web Access 或客户端应用程序访问。 下图为 TFS 的本地部署提供了 Web 服务、应用程序和数据库的概要视图。

服务器体系结构示意图TFS 中使用的其他服务器客户端体系结构示意图

集合级别服务

集合级别服务为团队项目集合级别的操作提供功能。 可以使用其中的一些服务来创建扩展 Team Foundation Server 的应用程序。 有关为 TFS 创建应用程序的详细信息,请参见扩展 Team Foundation

提示

一些服务会在多个级别中显示。例如,注册表服务在集合级别和服务器级别工作,将会出现在这两个列表中。

  • Team Foundation Framework 服务

    • 注册表服务

    • 注册服务(用于与 Team Foundation Server 的早期版本兼容)

    • 属性服务

    • 事件服务

    • 安全性服务

    • 位置服务

    • 标识管理服务

  • 版本控制 Web 服务

  • 工作项跟踪 Web 服务

  • Team Foundation Build Web 服务

  • Lab Management Web 服务

  • VMM Administration Web 服务

  • 测试代理控制器 Web 服务

服务器级别服务

服务器级别服务(也称为应用程序级别服务)作为软件应用程序为 Team Foundation Server 的操作提供功能。 可以使用其中的一些服务来创建扩展 Team Foundation Server 的应用程序。 有关详细信息,请参阅扩展 Team Foundation

  • Team Foundation Framework 服务

    • 注册表服务

    • 事件服务

    • 团队项目集合服务

    • 属性服务

    • 安全性服务

    • 位置服务

    • 标识管理服务

    • 管理服务

    • 集合管理服务

    • 目录服务

数据层

数据层包含数据、存储过程及其他关联的逻辑。 在使用 Visual Studio Online 时,将使用 SQL Server Azure 为你托管数据层。 在 TFS 的本地部署中,逻辑数据层由 SQL Server 内的下列操作存储区组成。这些存储区可能位于一台物理服务器上或分布于多台服务器上。 可以使用其中的一些操作存储区来创建扩展 Team Foundation Server 的应用程序。 有关详细信息,请参阅扩展 Team Foundation

  • 配置数据库 (TFS_Configuration)

  • 应用程序仓库 (TFS_Warehouse)

  • Analysis Services 数据库 (TFS_Analysis)

  • 团队项目集合的数据库 (TFS_CollectionName)

下表提供 Team Foundation Server 在本地部署中所使用的数据库列表。除非另有说明,否则你可以将此列表中的所有数据库从安装它们的原始服务器和实例中移到和还原到其他服务器或实例中。

数据库名称和说明

服务器

TFS_Configuration,此数据库存储 Team Foundation Server 的资源和配置信息的目录。 此数据库包含 Team Foundation Server 的操作存储区。

在安装和配置 Team Foundation Server 时使用的 SQL Server 实例。

TFS_Warehouse,此数据库存储报表的数据。

在安装和配置 Team Foundation Server 时使用的 SQL Server 实例。

TFS_Analysis,此多维数据库存储团队项目集合的聚合数据。

在安装和配置 Team Foundation Server 时使用的 SQL Server 实例。

团队项目集合的数据库 每个团队项目集合对应的一个数据库,其中包含该集合中所有团队项目的数据。

与 Team Foundation Server 兼容的 SQL Server 实例。

客户端层

客户端层通过服务对象模型与应用层通信,并使用为该层列出的相同 Web 服务。 无论你本地部署 TFS,还是使用 Visual Studio Online,都是如此。 除了该模型之外,客户端层还包括 Visual Studio 行业合作伙伴 (VSIP) 组件、Microsoft Office 集成、命令行接口及签入策略框架。

配置信息

托管服务取决于本地部署的客户端服务以及与云中托管的应用层和数据层的 Internet 连接。 Team Foundation Server 的本地部署取决于 SQL Server、Internet Information Services (IIS) 和 Windows 操作系统。 根据你所选的拓扑,Team Foundation Server 还可能取决于 SQL Server Reporting Services 或 SharePoint 产品。 因此,Team Foundation Server 的配置信息可存储在下列任意位置:

  • IIS 数据存储区。

  • Team Foundation Server 的配置文件。

  • Reporting Services 的数据源(例如,TFSREPORTS 数据)。

  • Team Foundation Server 的配置数据库。 Team Foundation Server 注册表是配置数据库的一部分。

  • Windows 注册表。

有关不同的本地部署拓扑和存储这些资源的位置的示例,请参见简单拓朴示例中等复杂程度的拓扑的示例复杂拓扑示例。 在维护 Team Foundation Server 的本地部署时,必须考虑这些配置源。 若要以任意方式更改配置,可能需要修改存储在多个位置中的信息。 你可能还需要更改数据层和客户端层的配置信息。Team Foundation Server 包含一个管理控制台和若干命令行实用工具以帮助你进行这些更改。 有关详细信息,请参阅配置和管理 TFS 资源

同步 Active Directory 与 Team Foundation Server 之间的组标识

对于在 Active Directory 域中运行 Team Foundation Server 的本地部署,当发生以下任何事件时,均会同步组和标识信息:

  • Team Foundation 的应用层服务器启动。

  • 在 Team Foundation Server 中向组添加 Active Directory 组。

  • 超过计划作业中指定的时间段。 (默认值为一小时,Team Foundation Server 中的所有组每 24 小时更新一次。)

标识管理服务 (IMS) 与 Active Directory 同步,并且更改的标识会从服务器传播到客户端。默认情况下,所有组在 24 小时内更新,但是你可以对此进行自定义,以便更好地满足你的部署需要。 有关详细信息,请参阅有关 Team Foundation Server 的信任和目录林的注意事项。 有关不使用 Active Directory 的本地部署,请参见在工作组中管理 Team Foundation Server

组和权限

在本地部署中,Team Foundation Server 有自己的默认组和权限集,可在项目、集合或服务器级别对它们进行设置。 你可以创建自定义组,并在组和各个级别自定义权限。 但是,添加到 Team Foundation Server 中的用户或组不会自动添加到 Team Foundation Server 的本地部署可依赖的这两个组件上:SharePoint 产品和 Reporting Services。 如果部署使用这些程序,你必须将用户和组添加到这些程序中并向其授予适当的权限,这些用户或组才能在 Team Foundation Server 中正常执行所有操作。 有关详细信息,请参阅管理 TFS 中用户或组

对于托管部署,通过 Microsoft 帐户和团队成员资格的组合来控制访问权限。 有关更多信息,请使用你的 Microsoft 帐户登录服务并选择“学习”

网络端口和协议

默认情况下,将 TFS 的本地部署配置为使用特定的网络端口和协议。 下图演示简单部署中的 Team Foundation Server 网络通信。

端口和通信简单关系图

托管 TFS

同样,将 TFS 的托管服务配置为使用特定的网络端口和协议。 下图演示托管部署中的网络通信。

托管 TFS 服务的简单关系图

下图演示更加复杂的部署中的网络通信,该部署包含 Visual Studio 实验室管理工具版的组件。

端口和通信复杂关系图第 1 部分端口和通信复杂关系图第 3 部分端口和通信复杂关系图第 2 部分

虚拟机使用端口 80 在与实验室管理代理下载有关的方面与任何测试控制器进行通信。 如果发生任何通信问题,请检查此端口是否启用。

默认网络设置

默认情况下,Team Foundation 部署中的计算机之间的通信使用下表中显示的协议和端口。如果端口号后跟星号 (*),则可自定义该端口。

层和服务

协议

端口

应用层 - Web 服务

HTTP/HTTPS

8080/443*

应用层 – SharePoint 产品 管理

HTTP 

如果 SharePoint 产品随 Team Foundation Server 一起安装,则为 17012*;否则,将随机生成

应用层 – SharePoint 产品 和 Reporting Services

HTTP 

Windows Management Instrumentation (WMI) 服务(安装过程中需要使用该服务指定和验证 Reporting Services 的 URL)

80*

动态端口

数据层

MS-SQL TCP

1433*

数据层 (SQL Server Analysis Services)

MS-AS

默认值(2382 或 2383)*

默认端口因已安装的 SQL Server 版本和实例类型而异。 使用 SQL Server 配置管理器确定你的部署所使用的端口。

Team Foundation Server 代理 - 客户端到代理

HTTP 

8081*

Team Foundation Server 代理 - 代理到应用层

HTTP/HTTPS

8080/443*

客户端层 - Reporting Services

HTTP 

80*

客户端层 - Web 服务

HTTP/HTTPS

8080/443*

生成控制器到应用层

HTTP/HTTPS

8080/443

生成代理到应用层

HTTP/HTTPS

8080/443

Release Management 服务器

HTTP 或 HTTPS

1000*

Release Management 客户端

HTTP 或 HTTPS

1000*

Release Management 代理

HTTP 或 HTTPS

1000*

测试控制器到应用层

HTTP/HTTPS

8080/443*

应用层到测试控制器

.NET 远程处理

6901*

应用层到域名系统 (DNS)

DNS 动态更新

53

应用层 – Virtual Machine Manager

HTTP 

8100

测试控制器到测试代理

.NET 远程处理

6910*

测试代理到测试控制器

.NET 远程处理

6901*

生成控制器到生成代理

HTTP 上的 SOAP

9191

隔离环境中的实验室代理到实验室代理

TCP 套接字

9050

生成代理到生成控制器

HTTP 上的 SOAP

9191

Virtual Machine Manager 管理员控制台 – Virtual Machine Manager

HTTP 

8100

Virtual Machine Manager– Virtual Machine Manager 主机

Windows 远程管理 (WinRM),用于执行操作

后台智能传输服务 (BITS),用于传输数据

80,用于执行操作

443,用于传输数据

Virtual Machine Manager– Virtual Machine Manager 库服务器

WinRM,用于执行操作

BITS,用于传输数据

80,用于执行操作

443,用于传输数据

应用层 – Virtual Machine Manager 主机

分布式组件对象模型/Windows Management Interface (DCOM/WMI) 通信,用于传输数据

135

在 49152 至 65535 范围内动态指派

客户端层 – Virtual Machine Manager 主机

与虚拟机之间的基于主机的连接。

2179,用于执行基于主机的连接。

托管的服务

HTTPS

443

可自定义的网络设置

如上表所示,通过将 Team Foundation Server 修改为使用自定义端口,可更改本地部署中的应用层、数据层和客户端层之间的通信。 下表介绍一些从 HTTP 到 HTTPS 的端口更改示例。

备注

若要将 Team Foundation Server 配置为使用 HTTPS 和安全套接字层,不仅要为 HTTPS 网络通信启用端口,还要执行许多其他任务。有关详细信息,请参阅为 Team Foundation Server 设置 HTTPS 及安全套接字层 (SSL)

服务

协议

端口

使用 SSL 的 Web 服务

HTTPS

由管理员配置

SharePoint 管理中心

HTTPS

由管理员配置

SharePoint 产品

HTTPS

443

Reporting Services

HTTPS

443

客户端 Web 服务

HTTPS

由管理员配置

版本管理

HTTPS

由管理员配置

请参见

概念

Team Foundation Server 概念

Team Foundation Server 权限参考

TFS 数据仓库的组件