Team Foundation Server 体系结构
为获得最佳计划并管理您的部署,应首先了解 Team Foundation Server (TFS) 基础体系结构。 了解体系结构可帮助您维护部署的总体运行状况,并有助于确保您的开发团队需要的服务器和服务的总体可用性。
您可以以多种方法部署 TFS:在多个服务器上;在一个域或工作组中或跨域。 或者,您可以选择使用Team Foundation Service 预览,通过 Microsoft 来部署的所有承载服务器组件。 了解体系结构可帮助您决定最能满足您的业务需求的拓扑。 无论拓扑的选择,如果您了解体系结构基础 TFS,您可以更好地管理物理和逻辑要求。 本主题提供各种体系结构简单的概述,以及指向有关部署示例的更多信息。 它还提供本地部署的有关服务、数据库、配置信息和网络端口和协议。
若要了解 TFS 体系结构以及它如何影响您的部署,应考虑以下方面:
逻辑应用层、数据层和客户端层的 Team Foundation,并且,是否希望为应用层和数据层使用一台或多台服务器,还是希望在云承载的应用层和数据层使用 Team Foundation 服务预览
承载这些层的物理或虚拟服务器的位置
Team Foundation Build 和在您的环境中运行的生成计算机的数量和位置,包括您可能需要支持开发实践的数量
Team Foundation Server 代理的潜在需要
此外,还必须考虑这些实体之间的交互。 例如,如果选择使用托管的 TFS 服务,您必须确保客户端可以访问在端口 443 上服务。 如果选择本地部署 TFS,必须了解 Web 服务、数据库和 TFS 使用的对象模型。 而且,您还必须了解默认情况下使用哪些网络端口和协议 TFS,以及可以自定义哪些网络端口。 最后,您必须了解在 Team Foundation Server 中必须设置的权限以及您的部署所依赖的组件和程序。
除了其本身的服务之外,Team Foundation Server 还需依靠其他服务才能运行。 有关这些服务的信息,请参见 Team Foundation Server 概念和Team Foundation 数据仓库组件。 有关安装的要求和依赖关系的更多信息,请参见安装 Team Foundation Server 和 Visual Studio ALM。
主题内容
Team Foundation Service 预览
对象模型
“本地部署的 Web 服务和数据库”
集合级别服务
服务器级别服务
数据层
客户端层
配置信息
组和权限
网络端口和协议
默认网络设置
可自定义的网络设置
Team Foundation Service 预览
Microsoft 提供使用 Team Foundation 服务预览的选项,为您承载所有部署的服务器端方面。 您的源代码、工作项、生成配置和团队功能都宿主在群中。 从一个体系结构的角度来看,这大大简化您的部署,需要考虑是客户端元素及其 Internet 访问体系结构的唯一方面。
当使用服务时,您可以使用 Web 浏览器连接到使用您的 Microsoft 账户的服务。 您可以创建团队项目、添加成员到您的团队和向对本地安装的部署一样工作,不创建管理服务器的开销。 使用 Microsoft 云平台和 SQL Server Azure,您的应用程序层、数据层和生成服务器将为您在群中承载。
有关更多信息,请参见托管拓朴示例。
对象模型
使用宿主或集中部署结构,您可以通过写入基于其服务器或客户端对象模式的应用程序扩展 Team Foundation 的功能。 在所有部署类型,您可以编写应用程序来扩展客户端功能的。 然而,如果希望扩展服务器功能,您的应用程序必须在应用层服务器上运行。 若要扩展客户端功能,您必须在团队资源管理器所在的同一计算机上运行应用程序。
有关更多信息,请参见扩展 Team Foundation。
本地部署的 Web 服务和数据库
Team Foundation Server 包含一组 Web 服务和数据库,它们将单独安装和配置在承载 Team Foundation 的逻辑应用层、数据层和客户端层的一台或多台服务器上。 某些功能,例如任务键盘,和积压工作基于团队的功能,完全是基于 Web 和通过Team Web Access 的独立访问,客户端基于 Web 的服务。 另外,如版本控制功能,可通过 Team Web Access 或通过客户端应用程序访问。 下图提供了本地部署的 Web 服务、应用程序和数据库的概要视图。
集合级别服务
集合级别服务为团队项目集合级别的操作提供功能。 可以使用其中的一些服务来创建扩展 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 服务
注册表服务
事件服务
团队项目集合服务
属性服务
安全性服务
位置服务
标识管理服务
管理服务
集合管理服务
目录服务
数据层
数据层包含数据、存储过程及其他关联的逻辑。 当您使用 Team Foundation Service 预览时,数据层将承载您使用的 SQL Server Azure。 在 TFS 的本地部署中,逻辑数据层由 SQL Server 内的下列操作存储区组成。这些存储可能位于一台物理服务器上或分布于多台服务器。 可以使用其中的一些操作存储区来创建扩展 Team Foundation Server 的应用程序。 有关更多信息,请参见扩展 Team Foundation。
配置数据库 (TFS_Configuration)
应用程序仓库 (TFS_Warehouse)
Analysis Services 数据库 (TFS_Analysis)
团队项目集合的数据库(TFS_集合名称)
下表提供 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 局部,或者如果您使用的是Team Foundation 服务预览,为 true。 除了该模型之外,客户端层还包括 Visual Studio 行业合作伙伴 (VSIP) 组件、Microsoft Office 集成、命令行接口及签入策略框架。
配置信息
主机服务取决于客户端服务、本地部署和 Internet 连接云承载的应用层和数据层。 本地部署的 Team Foundation Server 依赖于 SQL Server、Internet 信息服务 (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 包括一个管理控制台和多个命令行实用工具,可帮助您进行这些更改。 有关更多信息,请参见Team Foundation 管理控制台和Team Foundation 技术参考。
同步 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 中正常执行所有操作。 有关更多信息,请参见向团队项目中添加用户、团队入门、配置用户、组和权限、管理权限和管理我的个人资料和查看我的权限。
对于承载的部署,通过 Microsoft 帐户和团队成员资格的组合进行控制访问。 有关更多信息,请用您的 Microsoft 账户登录服务 选择了解。
网络端口和协议
默认情况下,配置 TFS 本地部署为使用特定的网络端口和协议。 下图演示简单部署中的 Team Foundation Server 网络通信。
同样,将 TFS 的托管服务配置为使用特定的网络端口和协议。 下图演示承载的部署中的网络通信。
下图演示更加复杂的部署中的网络通信,该部署包含 Visual Studio 实验室管理工具版的组件。
默认网络设置
默认情况下,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 |
测试控制器到应用层 |
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 的安全。
服务 |
协议 |
端口 |
---|---|---|
使用 SSL 的 Web 服务 |
HTTPS |
由管理员配置 |
SharePoint 管理中心 |
HTTPS |
由管理员配置 |
SharePoint 产品 |
HTTPS |
443 |
Reporting Services |
HTTPS |
443 |
客户端 Web 服务 |
HTTPS |
由管理员配置 |