Team Foundation Server 아키텍처
배포를 최선으로 계획 및 관리하려면 먼저 Team Foundation Server(TFS)의 기본 아키텍처를 이해해야 합니다.아키텍처를 이해하면 배포의 전반적인 상태를 유지하고 개발 팀에서 필요로 하는 서버 및 서비스의 전반적인 가용성을 보장하는 데 도움이 됩니다.
서버 하나, 여러 서버, 도메인 하나, 작업 그룹 또는 도메인 전체 등 TFS를 여러 가지 방법으로 배포할 수 있습니다.아니면 Team Foundation Service Preview를 사용하기로 결정할 수 있다. 단, 이 경우 배포의 모든 서버 요소는 Microsoft에 의해 여러분을 대신하여 호스팅된다.아키텍처를 이해하면 비즈니스 요구 사항을 충족하는 데 가장 효과적인 토폴로지를 결정할 수 있습니다.선택한 토폴로지에 관계 없이 TFS 내부 아키텍처를 이해하면 물리적 및 논리적 요구 사항을 보다 효율적으로 관리할 수 있습니다.이 항목에서는 예제 배포의 자세한 정보에 대한 링크와 함께 다양한 아키텍처에 대한 간단한 개요를 제공합니다.또한 이는 배포의 서비스, 데이터베이스, 구성 정보 및 네트워크 포트와 프로토콜에 관한 기술 정보를 제공한다.
TFS의 아키텍처와 배포에 미치는 영향을 이해하기 위해서는 다음을 고려해야 합니다.
Team Foundation의 논리적 응용 프로그램, 데이터 및 클라이언트 계층, 응용 프로그램 및 데이터 계층에 대해 하나 이상의 서버를 사용할지 여부, Team Foundation Service Preview를 사용하여 응용 프로그램 및 데이터 계층을 클라우드에 호스팅할지 여부
해당 계층을 호스팅하는 실제 서버나 가상 서버의 위치
Team Foundation Build 및 자신의 개발 실무를 지원하는 데 필요한 수량 등 자신의 환경에서 실행될 빌드 컴퓨터의 개수와 위치
Team Foundation Server Proxy에 대한 잠재적인 수요
또한 이러한 엔터티 간의 상호 작용도 고려해야 합니다.예를 들면 호스팅된 TFS 서비스를 사용하기로 결정했다면 반드시 여러분의 클라이언트가 443번 포트로 서비스에 액세스할 수 있는지 확인해야 한다.로컬에서 TFS를 배포하고자 할 경우 반드시 웹 서비스, 데이터베이스 및 객체 모델 TFS에 사용되는 것이 무엇인지를 알아야 한다.또한 반드시 TFS에서 기본값으로 사용한 네트워크 포트와 프로토콜이 어떤 것인지와 직접 사용자 지정한 네트워크 포트가 어떤 것인지 알고 있어야 한다.마지막으로 Team Foundation Server에서 설정해야 하는 사용 권한과 배포가 종속된 구성 요소 및 프로그램을 이해해야 합니다.
Team Foundation Server가 작동하는 데는 Team Foundation Server 서비스뿐 아니라 다른 서비스도 필요합니다.이들 서비스에 대한 정보는 Team Foundation Server 개념 및 Team Foundation의 데이터 웨어하우스 구성 요소에 나와 있다.설치의 요구 사항 및 종속성에 대한 자세한 내용은 Team Foundation Server 및 Visual Studio ALM 설치를 참조하십시오.
항목 내용
Team Foundation Service 개요
객체 모델
로컬 배포를 위한 웹 서비스와 데이터베이스
컬렉션 수준 서비스
서버 수준 서비스
데이터 계층
클라이언트 계층
구성 정보
그룹 및 권한
네트워크 포트 및 프로토콜
기본 네트워크 설정
사용자 지정할 수 있는 네트워크 설정
Team Foundation Service 개요
Microsoft에서는 Team Foundation Service Preview 사용 옵션을 제공한다. 단, 배포의 서버 쪽 측면 전체는 여러분을 위해 호스팅된다.소스 코드, 작업 항목, 빌드 구성 및 팀 기능이 모두 클라우드에서 호스팅됩니다.아키텍처 측면에서 이 기능은 유일하게 고려해야 할 아키텍처 측면이 클라이언트 구성 요소 및 인터넷 액세스이므로 배포 작업을 상당히 간소화시켰습니다.
서비스를 사용할 때는 Microsoft 계정을 사용하여 웹 브라우저로 서비스에 연결합니다.팀 프로젝트를 만들고, 멤버를 팀에 추가할 수 있으며 서버를 관리하는 오버헤드 없이도 로컬 설치된 배포에서와 마찬가지로 작업할 수 있습니다.응용 프로그램 계층, 데이터 계층 및 빌드 서버는 Microsoft Cloud platform과 SQL Server Azure를 사용하여 클라우드에서 호스팅됩니다.
자세한 내용은 호스팅되는 토폴로지 예제을 참조하십시오.
객체 모델
호스팅되거나 로컬 배포된 아키텍쳐를 사용하면 클라이언트 개체 모델을 기반으로 하는 응용 프로그램을 작성하여 Team Foundation의 기능을 확장할 수 있습니다.모든 배포 형식에서 클라이언트 기능을 확장하는 응용 프로그램을 작성할 수 있습니다.그렇지만 만약 서버 기능을 확장하고자 한다면 사용자의 응용 프로그램이 반드시 응용 프로그램 계층 서버에서 실행돼야 한다.클라이언트 기능을 확장하려면 팀 탐색기과 동일한 컴퓨터에서 응용 프로그램을 실행해야 한다.
자세한 내용은 Team Foundation 확장을 참조하십시오.
로컬 배포를 위한 웹 서비스와 데이터베이스
Team Foundation Server에는 Team Foundation의 논리적 응용 프로그램, 데이터 및 클라이언트 계층을 호스팅하는 하나 이상의 서버에서 별도로 설치 및 구성하는 웹 서비스 및 데이터베이스 집합이 포함되어 있습니다.작업 보드와 같은 일부 기능 및 백로그 팀 기반 기능은 완전히 웹을 기반으로 하며 클라이언트 쪽 웹 기반 서비스인 Team Web Access만을 통해 액세스할 수 있습니다.버전 제어 기능 등의 기타 항목은 Team Web Access 또는 클라이언트 응용 프로그램 중 어느 하나를 통해 액세스할 수 있다.다음 그림을 통해 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 관리 서비스
관리 서비스
컬렉션 관리 서비스
카탈로그 서비스
데이터 계층
데이터 계층에는 데이터, 저장된 프로시저 및 기타 관련 논리가 포함되어 있습니다.Team Foundation Service Preview를 사용하는 경우 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를 로컬로 배포하거나 Team Foundation Service Preview를 사용하는 경우 모두 해당됩니다.클라이언트 계층에는 이 모델 외에 VSIP(Visual Studio Industry Partners) 구성 요소, Microsoft Office 통합, 명령줄 인터페이스 및 체크 인 정책 프레임워크도 포함되어 있습니다.
구성 정보
호스팅된 서비스는 로컬 배포된 클라이언트 서비스, 응용 프로그램에 대한 인터넷 연결 및 클라우드에서 호스팅되는 데이터 계층에 따라 다릅니다.Team Foundation Server의 로컬 배포는 SQL Server, 인터넷 정보 서비스(IIS) 및 Windows 운영 체제에 따라 달라진다.선택한 토폴로지가 확정되지 않았다면 Team Foundation Server도 마찬가지로 SQL Server 보고 서비스나 SharePoint 제품에 따라 달라질 수도 있다.따라서 Team Foundation Server의 구성 정보를 다음 위치에 저장할 수 있습니다.
IIS 데이터 저장소.
Team Foundation Server 구성 파일.
보고 서비스용 데이터 소스(예: TFSREPORTS 데이터 등)
Team Foundation Server 구성 데이터베이스.Team Foundation Server 레지스트리는 구성 데이터베이스의 일부입니다.
Windows 레지스트리.
각기 다른 로컬 배포 토폴로지 및 이들 리소스가 저장된 장소에 대한 예는 단순 토폴로지 예제, 중간 규모 토폴로지 예제 및 복잡한 토폴로지 예제에 나와 있다.Team Foundation Server의 로컬 배포를 유지 관리하면서 반드시 이들 구성 소스를 고려해야 한다.구성을 변경하려면 여러 위치에 저장된 정보를 수정해야 할 수 있습니다.또한 데이터 계층과 클라이언트 계층의 구성 정보도 변경해야 할 수 있습니다. Team Foundation Server에는 이러한 변경 작업에 도움이 되는 관리 콘솔과 다양한 명령줄 유틸리티가 포함되어 있습니다.자세한 내용은 Team Foundation 관리 콘솔 및 Team Foundation에 대한 기술적 참조을 참조하십시오.
Active Directory와 Team Foundation Server 간의 그룹 ID 동기화
Team Foundation Server이 Active Directory 도메인에서 실행되고 있는 로컬 배포에서 다음과 같은 이벤트 중 어느 하나라도 발생할 경우 그룹 및 ID 정보가 동기화된다:
Team Foundation의 응용 프로그램 계층 서버가 시작됩니다.
Active Directory 그룹이 Team Foundation Server의 그룹에 추가됩니다.
예약된 작업에 지정된 시간이 경과합니다.기본은 한 시간이며 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의 모든 작업을 올바르게 수행할 수 있습니다.자세한 내용은 팀 프로젝트에 사용자 추가, 팀으로 시작, 사용자, 그룹 및 권한 구성, 권한 관리 및 내 프로필 관리 및 내 권한 보기를 참조하십시오.
호스팅 배포의 경우 Microsoft 계정 및 팀 멤버 자격의 조합에 의해 액세스가 제어됩니다.자세한 내용을 알아보려면 Microsoft 계정으로 서비스에 로그온한 후 학습을 선택하십시오.
네트워크 포트 및 프로토콜
TFS의 로컬 배포는 특정 네트워크 포트 및 프로토콜을 사용하도록 기본값이 구성돼 있다.다음 그림에서는 간단한 배포의 Team Foundation Server 네트워크 트래픽을 보여 줍니다.
마찬가지로 지정된 네트워크 포트와 프로토콜을 사용하도록 TFS용 호스팅 서비스가 구성되어 있습니다.다음 그림은 호스팅된 배포의 네트워크 트래픽을 설명한 것이다.
다음 그림에서는 Visual Studio Lab Management의 구성 요소가 포함된 보다 복잡한 배포의 네트워크 트래픽을 보여 줍니다.
기본 네트워크 설정
기본적으로 Team Foundation 배포의 컴퓨터 간 통신에서는 다음 표에 나와 있는 프로토콜 및 포트가 사용됩니다. 포트 번호가 별표(*) 뒤에 오는 경우 해당 포트를 사용자 지정할 수 있습니다.
계층 및 서비스 |
프로토콜 |
포트 |
---|---|---|
응용 프로그램 계층 – 웹 서비스 |
HTTP/HTTPS |
8080/443* |
응용 프로그램 계층 – SharePoint 제품 관리 |
HTTP |
17012*는 SharePoint 제품이 Team Foundation Server와 함께 설치된 경우이며, 그 외에는 무작위로 생성됨 |
응용 프로그램 계층 – 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 |
테스트 컨트롤러-응용 프로그램 계층 |
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 |
Hosted services |
HTTPS |
443 |
사용자 지정할 수 있는 네트워크 설정
이전 테이블을 보면 알 수 있듯이 custom port를 사용하기 위해 Team Foundation Server를 수정함으로써 로컬 배에서 응용 프로그램과 데이터, 클라이언트 계층 간의 통신을 변경할 수 있다.다음 표에서는 HTTP에서 HTTPS로의 포트 변경 예제에 대해 설명합니다.
[!참고]
Team Foundation Server에서 HTTPS 및 SSL(Secure Sockets Layer)을 사용하도록 구성하려면 HTTPS 네트워크 트래픽에 대해 포트를 활성화해야 할 뿐만 아니라 다른 여러 작업도 수행해야 합니다.자세한 내용은 Team Foundation Server 보안을 참조하십시오.
서비스 |
프로토콜 |
포트 |
---|---|---|
SSL을 사용하는 웹 서비스 |
HTTPS |
관리자가 구성함 |
SharePoint 중앙 관리 |
HTTPS |
관리자가 구성함 |
SharePoint 제품 |
HTTPS |
443 |
Reporting Services |
HTTPS |
443 |
클라이언트 웹 서비스 |
HTTPS |
관리자가 구성함 |