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 Proxy에 대한 잠재적 필요성

또한 이러한 엔터티 간의 상호 작용도 고려해야 합니다. 예를 들어 호스팅된 TFS 서비스를 사용하도록 선택하는 경우 클라이언트가 포트 443에서 서비스에 액세스할 수 있는지 확인해야 합니다. 로컬에 TFS를 배포하도록 선택하는 경우 TFS에서 사용하는 웹 서비스, 데이터베이스 및 개체 모델을 알고 있어야 합니다. 또한 TFS에서 기본적으로 사용하는 네트워크 포트 및 프로토콜과 사용자 지정할 수 있는 네트워크 포트를 알고 있어야 합니다. 마지막으로 Team Foundation Server에서 설정해야 하는 사용 권한과 배포가 종속된 구성 요소 및 프로그램을 이해해야 합니다.

Team Foundation Server가 작동하는 데는 Team Foundation Server 서비스뿐 아니라 다른 서비스도 필요합니다. 이러한 서비스에 대한 자세한 내용은 Team Foundation Server 개념TFS 데이터 웨어하우스의 구성 요소를 참조하십시오. 설치의 요구 사항 및 종속성에 대한 자세한 내용은 Team Foundation Server 설치 가이드를 참조하십시오.

경고

Microsoft 기술 지원 서비스에서 작업을 수행하도록 지시를 받았거나 수동으로 데이터베이스 백업에 대해 설명된 절차를 따르는 경우가 아니면 TFS 데이터베이스를 수동으로 수정해서는 안 됩니다.다른 수정 작업을 수행하면 서비스 계약이 무효화될 수 있습니다.

항목 내용

  • Visual Studio Online

  • 개체 모델

  • 로컬 배포를 위한 웹 서비스 및 데이터베이스

    • 컬렉션 수준 서비스

    • 서버 수준 서비스

    • 데이터 계층

    • 클라이언트 계층

  • 구성 정보

  • 그룹 및 권한

  • 네트워크 포트 및 프로토콜

    • 기본 네트워크 설정

    • 사용자 지정할 수 있는 네트워크 설정

Visual Studio Online

호스팅된 TFS 서비스의 단순 다이어그램

Microsoft에서는 Visual Studio Online 사용 옵션을 제공합니다. 이 경우 배포의 서버 쪽 측면 전체가 호스팅됩니다. 소스 코드, 작업 항목, 빌드 구성 및 팀 기능이 모두 클라우드에서 호스팅됩니다. 아키텍처 측면에서 이 기능은 유일하게 고려해야 할 아키텍처 측면이 클라이언트 구성 요소 및 인터넷 액세스이므로 배포 작업을 상당히 간소화시켰습니다.

서비스를 사용할 때는 웹 브라우저에서 Microsoft 계정을 사용하여 서비스에 연결합니다. 팀 프로젝트를 만들고 멤버를 팀에 추가할 수 있으며, 서버를 관리하는 오버헤드 없이도 로컬에 설치된 배포와 마찬가지로 작업할 수 있습니다. 응용 프로그램 계층, 데이터 계층 및 빌드 서버는 Microsoft 클라우드 플랫폼 및 SQL Server Azure를 사용하여 클라우드에서 호스팅됩니다.

자세한 내용은 호스팅되는 토폴로지 예제을 참조하십시오.

개체 모델

호스팅되거나 로컬에 배포된 아키텍처를 사용하면 해당 서버 또는 클라이언트 개체 모델을 기반으로 하는 응용 프로그램을 작성하여 Team Foundation의 기능을 확장할 수 있습니다. 모든 배포 형식에서 클라이언트 기능을 확장하는 응용 프로그램을 작성할 수 있습니다. 그러나 서버 기능을 확장하려는 경우 응용 프로그램 계층 서버에서 응용 프로그램을 실행해야 합니다. 클라이언트 기능을 확장하려면 팀 탐색기와 동일한 컴퓨터에서 응용 프로그램을 실행해야 합니다.

Team Foundation용 개체 모델

자세한 내용은 Team Foundation 확장을 참조하십시오.

로컬 배포를 위한 웹 서비스 및 데이터베이스

Team Foundation Server에는 Team Foundation의 논리적 응용 프로그램, 데이터 및 클라이언트 계층을 호스팅하는 하나 이상의 서버에서 별도로 설치 및 구성하는 웹 서비스 및 데이터베이스 집합이 포함되어 있습니다. 작업 보드와 같은 일부 기능 및 백로그 팀 기반 기능은 완전히 웹을 기반으로 하며 클라이언트 쪽 웹 기반 서비스인 Team Web Access를 통해서만 액세스할 수 있습니다. 버전 제어 기능 등의 기타 기능은 Team Web Access 또는 클라이언트 응용 프로그램을 통해 액세스할 수 있습니다. 다음 그림은 TFS 로컬 배포를 위한 웹 서비스, 응용 프로그램 및 데이터베이스의 개요를 보여 줍니다.

서버 아키텍처 다이어그램TFS에 사용된 추가 서버클라이언트 아키텍처 다이어그램

컬렉션 수준 서비스

컬렉션 수준 서비스는 팀 프로젝트 컬렉션 수준의 작업을 위한 기능을 제공합니다. 이러한 서비스 중 일부를 사용하여 Team Foundation Server를 확장하는 응용 프로그램을 만들 수 있습니다. TFS용 응용 프로그램을 만드는 방법에 대한 자세한 내용은 Team Foundation 확장을 참조하십시오.

일부 서비스는 둘 이상의 수준에서 나타납니다.예를 들어 레지스트리 서비스는 컬렉션 수준과 서버 수준에서 작동하며 두 목록에 모두 표시됩니다.

  • Team Foundation 프레임워크 서비스

    • 레지스트리 서비스

    • 등록 서비스(이전 버전 Team Foundation Server와의 호환용)

    • 속성 서비스

    • 이벤트 서비스

    • 보안 서비스

    • 위치 서비스

    • ID 관리 서비스

  • 버전 제어 웹 서비스

  • 작업 항목 추적 웹 서비스

  • Team Foundation Build 웹 서비스

  • Lab Management 웹 서비스

  • VMM 관리 웹 서비스

  • 테스트 에이전트 컨트롤러 웹 서비스

서버 수준 서비스

응용 프로그램 수준 서비스라고도 하는 서버 수준 서비스는 Team Foundation Server를 소프트웨어 응용 프로그램으로 사용하는 작업을 위한 기능을 제공합니다. 이러한 서비스 중 일부를 사용하여 Team Foundation Server를 확장하는 응용 프로그램을 만들 수 있습니다. 자세한 내용은 Team Foundation 확장을 참조하십시오.

  • Team Foundation 프레임워크 서비스

    • 레지스트리 서비스

    • 이벤트 서비스

    • 팀 프로젝트 컬렉션 서비스

    • 속성 서비스

    • 보안 서비스

    • 위치 서비스

    • ID 관리 서비스

    • 관리 서비스

    • 컬렉션 관리 서비스

    • 카탈로그 서비스

데이터 계층

데이터 계층에는 데이터, 저장 프로시저 및 기타 관련 논리가 포함되어 있습니다. 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 인스턴스

팀 프로젝트 컬렉션의 데이터베이스 팀 프로젝트 컬렉션당 1개의 데이터베이스를 부여하며, 이 데이터베이스에는 해당 컬렉션에 속한 모든 팀 프로젝트의 데이터가 포함됨

Team Foundation Server와 호환되는 SQL Server의 인스턴스

클라이언트 계층

클라이언트 계층은 서버 개체 모델을 통해 응용 프로그램 계층과 통신하며 해당 계층에 대해 나열된 것과 동일한 웹 서비스를 사용합니다. TFS를 로컬에 배포하든, Visual Studio Online을 사용하든 관계없이 적용됩니다. 클라이언트 계층에는 이 모델 외에 VSIP(Visual Studio Industry Partners) 구성 요소, Microsoft Office 통합, 명령줄 인터페이스 및 체크 인 정책 프레임워크도 포함되어 있습니다.

구성 정보

호스팅 서비스는 로컬에 배포된 클라이언트 서비스 및 클라우드에서 호스팅되는 응용 프로그램 및 데이터 계층에 대한 인터넷 연결에 따라 달라집니다. Team Foundation Server의 로컬 배포는 SQL Server, 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 간의 그룹 ID 동기화

Team Foundation Server가 Active Directory 도메인에서 실행되는 로컬 배포의 경우 다음 이벤트가 발생하면 그룹 및 ID 정보가 동기화됩니다.

  • Team Foundation의 응용 프로그램 계층 서버가 시작됩니다.

  • Active Directory 그룹이 Team Foundation Server의 그룹에 추가됩니다.

  • 예약된 작업에 지정된 시간이 경과합니다. 기본값은 1시간이며 Team Foundation Server에 속한 모든 그룹이 24시간마다 업데이트됩니다.

IMS(ID 관리 서비스)가 Active Directory와 동기화되며 변경된 ID가 서버에서 클라이언트로 전파됩니다. 기본적으로 24시간 이내에 모든 그룹이 업데이트되지만 배포 요구 사항에 맞게 이 시간을 사용자 지정할 수 있습니다. 자세한 내용은 Team Foundation Server의 트러스트 및 포리스트 고려 사항을 참조하십시오. Active Directory가 사용되지 않는 로컬 배포의 경우 작업 그룹에서 Team Foundation Server 관리를 참조하십시오.

그룹 및 권한

로컬 배포에서 Team Foundation Server에는 프로젝트, 컬렉션 또는 서버 수준에서 직접 설정할 수 있는 고유한 기본 그룹 및 권한 집합이 포함되어 있습니다. 사용자 지정 그룹을 만들고 그룹 및 개인 수준에서 권한을 사용자 지정할 수 있습니다. 그러나 Team Foundation Server에 직접 추가한 사용자 또는 그룹은 Team Foundation Server의 로컬 배포에 영향을 주는 2개의 구성 요소, 즉 SharePoint 제품 및 Reporting Services에 자동으로 추가되지 않습니다. 배포에서 이러한 프로그램을 사용하는 경우에는 사용자 및 그룹을 이러한 프로그램에 추가하고 적절한 권한을 부여해야 해당 사용자나 그룹이 Team Foundation Server의 모든 작업을 올바르게 수행할 수 있습니다. 자세한 내용은 TFS에서 사용자 또는 그룹 관리을 참조하십시오.

호스팅된 배포의 경우 Microsoft 계정 및 팀 멤버 자격의 조합을 통해 액세스가 제어됩니다. 자세한 내용을 보려면 Microsoft 계정으로 서비스에 로그온하고 유용한 정보를 선택합니다.

네트워크 포트 및 프로토콜

기본적으로 TFS의 로컬 배포는 특정 네트워크 포트 및 프로토콜을 사용하도록 구성되어 있습니다. 다음 그림에서는 간단한 배포의 Team Foundation Server 네트워크 트래픽을 보여 줍니다.

간단한 포트 및 통신 다이어그램

호스트된 TFS

마찬가지로, TFS용 호스팅 서비스는 특정 네트워크 포트 및 프로토콜을 사용하도록 구성되어 있습니다. 다음 그림은 호스팅된 배포의 네트워크 트래픽을 보여 줍니다.

호스팅된 TFS 서비스의 단순 다이어그램

다음 그림에서는 Visual Studio Lab Management의 구성 요소가 포함된 보다 복잡한 배포의 네트워크 트래픽을 보여 줍니다.

복잡한 포트 및 통신 다이어그램 - 1복잡한 포트 및 통신 다이어그램 - 3복잡한 포트 및 통신 다이어그램 - 2

가상 컴퓨터는 포트 80을 사용하여 랩 관리 에이전트 다운로드와 관련한 정보를 테스트 컨트롤러와 통신합니다. 통신 문제가 발생하면 이 포트가 사용하도록 설정되어 있는지 확인하세요.

기본 네트워크 설정

기본적으로 Team Foundation 배포의 컴퓨터 간 통신에서는 다음 표에 나와 있는 프로토콜 및 포트가 사용됩니다. 포트 번호 뒤에 별표(*)가 있는 경우 해당 포트를 사용자 지정할 수 있습니다.

계층 및 서비스

프로토콜

포트

응용 프로그램 계층 – 웹 서비스

HTTP/HTTPS

8080/443*

응용 프로그램 계층 – SharePoint 제품 관리

HTTP 

SharePoint 제품이 Team Foundation Server와 함께 설치된 경우 17012*이고, 그렇지 않은 경우 임의로 생성됨

응용 프로그램 계층 – SharePoint 제품 및 Reporting Services

HTTP 

WMI(Windows Management Instrumentation) 서비스(설치 중에 Reporting Services의 URL을 지정하고 확인하는 데 필요함)

80*

동적 포트

데이터 계층

MS-SQL TCP

1433*

데이터 계층(SQL Server Analysis Services)

MS-AS

기본값(2382 또는 2383)*

기본 포트는 설치된 SQL Server 버전 및 인스턴스 유형에 따라 달라집니다. SQL Server 구성 관리자를 사용하여 배포에서 사용되는 포트를 확인합니다.

Team Foundation Server Proxy - 클라이언트-프록시

HTTP 

8081*

Team Foundation Server Proxy - 프록시-응용 프로그램 계층

HTTP/HTTPS

8080/443*

클라이언트 계층 - Reporting Services

HTTP 

80*

클라이언트 계층 - 웹 서비스

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 Remoting

6901*

응용 프로그램 계층-DNS(Domain Name System)

DNS 동적 업데이트

53

응용 프로그램 계층-Virtual Machine Manager

HTTP 

8100

테스트 컨트롤러-테스트 에이전트

.NET Remoting

6910*

테스트 에이전트-테스트 컨트롤러

.NET Remoting

6901*

빌드 컨트롤러-빌드 에이전트

HTTP를 통한 SOAP

9191

격리된 환경의 랩 에이전트-랩 에이전트

TCP 소켓

9050

빌드 에이전트-빌드 컨트롤러

HTTP를 통한 SOAP

9191

Virtual Machine Manager 관리자 콘솔–Virtual Machine Manager

HTTP 

8100

Virtual Machine Manager-Virtual Machine Manager 호스트

작업 수행의 경우 WinRM(Windows 원격 관리)

데이터 전송의 경우 BITS(Background Intelligent Transfer Service)

작업 수행의 경우 80

데이터 전송의 경우 443

Virtual Machine Manager–Virtual Machine Manager 라이브러리 서버

작업 수행의 경우 WinRM

데이터 전송의 경우 BITS

작업 수행의 경우 80

데이터 전송의 경우 443

응용 프로그램 계층-Virtual Machine Manager 호스트

데이터 전송의 경우 DCOM/WMI(Distributed Component Object Model/Windows Management Interface) 통신

135

49152-65535 범위에서 동적으로 할당됨

클라이언트 계층-Virtual Machine Manager 호스트

가상 컴퓨터에 대한 호스트 기반 연결.

호스트 기반 연결의 경우 2179

호스팅 서비스

HTTPS

443

사용자 지정할 수 있는 네트워크 설정

이전 표에서 볼 수 있듯이, 사용자 지정 포트를 사용하도록 Team Foundation Server를 수정하여 로컬 배포에 속한 응용 프로그램, 데이터 및 클라이언트 계층 간의 통신을 변경할 수 있습니다. 다음 표에서는 HTTP에서 HTTPS로의 포트 변경 예제에 대해 설명합니다.

참고

Team Foundation Server에서 HTTPS 및 SSL(Secure Sockets Layer)을 사용하도록 구성하려면 HTTPS 네트워크 트래픽에 대해 포트를 활성화해야 할 뿐만 아니라 다른 여러 작업도 수행해야 합니다.자세한 내용은 Team Foundation Server에 대해 HTTPS를 SSL(Secure Sockets Layer)과 함께 설정을 참조하십시오.

서비스

프로토콜

포트

SSL을 사용하는 웹 서비스

HTTPS

관리자가 구성함

SharePoint 중앙 관리

HTTPS

관리자가 구성함

SharePoint 제품

HTTPS

443

Reporting Services

HTTPS

443

클라이언트 웹 서비스

HTTPS

관리자가 구성함

릴리스 관리

HTTPS

관리자가 구성함

참고 항목

개념

Team Foundation Server 개념

Team Foundation Server에 대한 사용 권한 참조

TFS 데이터 웨어하우스의 구성 요소