Azure DevOps Server 아키텍처 개요

Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2013

참고

Azure DevOps Server의 이전 이름은 Visual Studio Team Foundation Server였습니다.

배포를 가장 잘 계획하고 관리하려면 먼저 Azure DevOps Server 기본 아키텍처를 이해해야 합니다. 아키텍처를 이해하면 배포의 전반적인 상태를 유지하고 개발 팀에서 필요로 하는 서버 및 서비스의 전반적인 가용성을 보장하는 데 도움이 됩니다.

한 서버에 여러 가지 방법으로 Azure DevOps Server 배포할 수 있습니다. 여러 서버에서 또는 한 도메인 또는 작업 그룹 또는 여러 도메인에 있습니다. 또는 배포의 모든 서버 요소가 Microsoft에서 호스트되는 Azure DevOps Services 사용하도록 선택할 수 있습니다. 아키텍처를 이해하면 비즈니스 요구 사항을 충족하는 데 가장 효과적인 토폴로지를 결정할 수 있습니다. 선택한 토폴로지와 관계없이 아키텍처의 기본 Azure DevOps Server 이해하면 물리적 및 논리적 요구 사항을 더 잘 관리할 수 있습니다. 이 문서에서는 다양한 아키텍처에 대한 간단한 개요와 예제 배포에 대한 자세한 정보 링크를 제공합니다. 또한 로컬 배포의 서비스, 데이터베이스, 구성 정보, 네트워크 포트 및 프로토콜에 대한 기술 정보를 제공합니다.

Azure DevOps Server 아키텍처와 배포에 미치는 영향을 이해하려면 다음을 고려해야 합니다.

  • Azure DevOps 논리 애플리케이션, 데이터 및 클라이언트 계층, 애플리케이션 및 데이터 계층에 하나 이상의 서버를 사용할지 여부 또는 Azure DevOps Services 사용하여 클라우드에서 호스트되는 애플리케이션 및 데이터 계층을 원하는지 여부를 결정합니다.
  • 해당 계층을 호스팅하는 물리적 서버나 가상 서버의 위치
  • Team Foundation Build 및 개발 사례를 지원하는 데 필요한 수 또는 소프트웨어 애플리케이션을 빌드하고 배포하는 데 Azure Pipelines 클라우드 서비스를 사용할지 여부를 포함하여 사용자 환경에서 실행되는 빌드 컴퓨터의 수와 위치
  • Azure DevOps 프록시 서버의 잠재적인 필요성

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

자체 서비스 외에도 Azure DevOps Server 작동하기 위해 다른 서비스에 따라 달라집니다. 이러한 서비스에 대한 자세한 내용은 Azure DevOps Server 데이터 웨어하우스의 Azure DevOps Server 개념 및 구성 요소를 참조하세요. 설치 요구 사항 및 설치에 대한 자세한 내용은 Azure DevOps Server 설치 가이드를 참조하세요.

중요

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

Azure DevOps Services

Azure DevOps Services

Microsoft는 Azure DevOps Server 모든 서버 쪽 측면을 호스트할 수 있는 Azure DevOps Services 사용하는 옵션을 제공합니다. 소스 코드, 작업 항목, 빌드 구성 및 팀 기능이 모두 클라우드에서 호스팅됩니다. 아키텍처 관점에서 볼 때, 이는 Azure DevOps Server 사용을 크게 간소화합니다. 고려해야 하는 아키텍처의 유일한 측면은 클라이언트 구성 요소와 인터넷 액세스뿐입니다.

Azure DevOps Services 사용하는 경우 웹 브라우저를 사용하여 Microsoft 계정 사용하여 서비스에 연결합니다. 서버를 관리하는 오버헤드 없이 프로젝트를 만들고, 팀에 구성원을 추가하고, 로컬에 설치된 Azure DevOps Server 작업할 수 있습니다. Azure DevOps Services 클라우드에서 애플리케이션 계층, 데이터 계층 및 빌드 서버를 호스트합니다.

클라우드 서비스 및 온-프레미스 배포에 대한 자세한 내용은 Azure DevOps Services 및 Azure DevOps Server을 검토합니다.

개체 모델

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

Azure DevOps Server 개체 모델

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

Azure DevOps Server Azure DevOps 논리 애플리케이션, 데이터 및 클라이언트 계층을 호스트하는 서버 또는 서버에서 별도로 설치하고 구성하는 웹 서비스 및 데이터베이스 집합이 포함되어 있습니다. 작업 보드 및 백로그 팀 기반 기능과 같은 일부 기능은 전적으로 웹 기반이며 클라이언트 쪽 웹 기반 서비스인 웹 포털을 통해서만 액세스됩니다. 버전 제어 기능과 같은 다른 기능은 웹 포털 또는 클라이언트 애플리케이션을 통해 액세스할 수 있습니다. 다음 그림에서는 Azure DevOps Server 로컬 배포를 위한 웹 서비스, 애플리케이션 및 데이터베이스의 상위 수준 보기를 제공합니다.

주 서비스 계층 Azure DevOps Server

선택적 Azure DevOps Server 서비스

Azure DevOps Server 클라이언트

컬렉션 수준 서비스

컬렉션 수준 서비스는 프로젝트 컬렉션 수준에서 작업에 대한 기능을 제공합니다. 이러한 서비스 중 일부를 사용하여 Azure DevOps Server 확장하는 애플리케이션을 만들 수 있습니다. Azure DevOps Server 애플리케이션을 만드는 자세한 내용은 확장 개발을 참조하세요.

참고

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

프레임워크 서비스:

  • 레지스트리 서비스
  • 등록 서비스(이전 버전의 Azure DevOps Server와의 호환성을 위해)
  • 속성 서비스
  • 이벤트 서비스
  • 보안 서비스
  • 위치 서비스
  • ID 관리 서비스
  • 버전 제어 웹 서비스
  • 작업 항목 추적 웹 서비스
  • Team Foundation 빌드 웹 서비스
  • Lab Management 웹 서비스
  • VMM 관리 웹 서비스
  • 테스트 에이전트 컨트롤러 웹 서비스

서버 수준 서비스

서버 수준 서비스(애플리케이션 수준 서비스라고도 함)는 소프트웨어 애플리케이션으로 Azure DevOps Server 작업을 위한 기능을 제공합니다. 이러한 서비스 중 일부를 사용하여 Azure DevOps Server 확장하는 애플리케이션을 만들 수 있습니다.

프레임워크 서비스:

  • 레지스트리 서비스
  • 이벤트 서비스
  • Project 컬렉션 서비스
  • 속성 서비스
  • 보안 서비스
  • 위치 서비스
  • ID 관리 서비스
  • 관리 서비스
  • 컬렉션 관리 서비스
  • 카탈로그 서비스

데이터 계층

데이터 계층에는 데이터, 저장 프로시저 및 기타 관련 논리가 포함되어 있습니다. Azure DevOps Services 사용하면 SQL Server Azure를 사용하여 데이터 계층이 호스트됩니다. Azure DevOps Server 로컬 배포에서 논리 데이터 계층은 SQL Server 내의 다음과 같은 운영 저장소로 구성됩니다. 이러한 저장소는 하나의 물리적 서버에 있거나 여러 서버에 분산되어 있을 수 있습니다. 이러한 운영 저장소 중 일부를 사용하여 Azure DevOps Server 확장하는 애플리케이션을 만들 수 있습니다.

  • 구성 데이터베이스(TFS_Configuration)
  • 응용 프로그램 웨어하우스(TFS_Warehouse)
  • Analysis Services 데이터베이스(TFS_Analysis)
  • 프로젝트 컬렉션에 대한 데이터베이스(TFS_CollectionName)

다음 표에서는 로컬 배포에서 Azure DevOps Server 사용하는 데이터베이스 목록을 제공합니다. 다른 설명이 없는 한 설치되어 있는 원래 서버와 인스턴스에서 이 목록의 모든 데이터베이스를 이동하고 다른 서버 또는 인스턴스로 복원할 수 있습니다.

데이터베이스 이름 Description 서버
TFS_Configuration 이 데이터베이스는 리소스 카탈로그와 Azure DevOps Server 대한 구성 정보를 저장합니다. 이 데이터베이스에는 Azure DevOps Server 대한 운영 저장소가 포함되어 있습니다. Azure DevOps Server 설치 및 구성할 때 사용되는 SQL Server 인스턴스입니다.
TFS_Warehouse 이 데이터베이스는 보고서의 데이터를 저장합니다. Azure DevOps Server 설치 및 구성할 때 사용되는 SQL Server 인스턴스입니다.
TFS_Analysis 이 다차원 데이터베이스는 프로젝트 컬렉션에서 집계된 데이터를 저장합니다. SQL Server Analysis Services 설치 및 구성할 때 사용되는 SQL Server 인스턴스입니다.
프로젝트 컬렉션에 대한 데이터베이스 각 프로젝트 컬렉션에 대한 하나의 데이터베이스로, 해당 컬렉션에 있는 모든 프로젝트의 데이터를 포함합니다. Azure DevOps Server 호환되는 SQL Server 인스턴스입니다.

클라이언트 계층

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

구성

호스팅 서비스는 로컬에 배포된 클라이언트 서비스 및 클라우드에서 호스팅되는 응용 프로그램 및 데이터 계층에 대한 인터넷 연결에 따라 달라집니다. Azure DevOps Server 로컬 배포는 IIS(SQL Server, 인터넷 정보 서비스) 및 Windows 운영 체제에 따라 달라집니다. 선택한 토폴로지에 따라 Azure DevOps Server SQL Server Reporting Services 또는 SharePoint 제품에 따라 달라질 수도 있습니다. 따라서 Azure DevOps Server 대한 구성 정보를 다음 위치 중 어느 위치에나 저장할 수 있습니다.

  • IIS 데이터 저장소
  • Azure DevOps Server 대한 구성 파일입니다.
  • Reporting Services 데이터 소스(예: TFSREPORTS 데이터)
  • Azure DevOps Server 대한 구성 데이터베이스입니다. Azure DevOps Server 레지스트리는 구성 데이터베이스의 일부입니다.
  • Windows 레지스트리

다양한 로컬 배포 토폴로지 및 이러한 리소스가 저장되는 위치에 대한 예제는 간단한 토폴로지의 예, 보통 토폴로지의예 및 복잡한 토폴로지의 예를참조하세요. Azure DevOps Server 로컬 배포를 유지 관리하려면 이러한 구성 원본을 고려해야 합니다. 구성을 변경하려면 여러 위치에 저장된 정보를 수정해야 할 수 있습니다. 데이터 계층과 클라이언트 계층에 대한 구성 정보를 변경해야 할 수도 있습니다. Azure DevOps Server 관리 콘솔과 이러한 변경을 지원하는 여러 명령줄 유틸리티가 포함되어 있습니다. 자세한 내용은 관리 작업 빠른 참조를 참조하세요.

Active Directory 및 그룹 ID 동기화

active Directory 도메인에서 Azure DevOps 실행 중인 로컬 배포에서는 다음 이벤트 중 일부가 발생하면 그룹 및 ID 정보가 동기화됩니다.

  • 애플리케이션 계층 서버가 시작됩니다.
  • Active Directory 그룹이 Azure DevOps 그룹에 추가됩니다.

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

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

그룹 및 권한

로컬 배포에서 Azure DevOps Server 프로젝트, 컬렉션 또는 서버 수준에서 설정할 수 있는 고유한 기본 그룹 및 권한 집합이 있습니다. 사용자 지정 그룹을 만들고 그룹 및 개인 수준에서 권한을 사용자 지정할 수 있습니다. 그러나 Azure DevOps Server 추가하는 사용자 또는 그룹은 Azure DevOps Server 로컬 배포가 달라질 수 있는 두 가지 구성 요소인 SharePoint 제품 및 Reporting Services 자동으로 추가되지 않습니다. 배포에서 이러한 프로그램을 사용하는 경우 사용자 및 그룹을 추가하고 해당 사용자 또는 그룹이 Azure DevOps Server 모든 작업에서 올바르게 작동하도록 적절한 권한을 부여해야 합니다. 자세한 내용은 Azure DevOps Server 사용자 또는 그룹 관리를참조하세요.

호스팅된 배포의 경우 Microsoft 계정 및 팀 멤버 자격의 조합을 통해 액세스가 제어됩니다. 자세한 내용은 Azure DevOps Services 개요를 참조하세요.

네트워크 포트 및 프로토콜

기본적으로 Azure DevOps Server 로컬 배포는 특정 네트워크 포트 및 프로토콜을 사용하도록 구성됩니다. 다음 그림에서는 간단한 배포에서 Azure DevOps Server 대한 네트워크 트래픽을 보여줍니다.

간단한 온-프레미스 설치

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

호스트된 Azure DevOps Server

다음 그림에서는 Visual Studio Lab Management 대한 구성 요소를 포함하는 보다 복잡한 배포의 네트워크 트래픽을 보여 주는 일러스트레이션입니다. (Lab Management TFS 2017 이상 버전에서 더 이상 사용되지 않습니다.)

애플리케이션 계층

가상 환경

가상 컴퓨터

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

기본 네트워크 설정

기본적으로 Azure DevOps 배포에 있는 컴퓨터 간의 통신은 다음 표에 표시된 프로토콜과 포트를 사용합니다. 포트 번호 뒤에 별표(*)가 있는 경우 해당 포트를 사용자 지정할 수 있습니다.

계층 및 서비스 프로토콜 포트
응용 프로그램 계층 – 웹 서비스 HTTP/HTTPS 8080/443*
애플리케이션 계층 – SharePoint 제품 관리 HTTP SharePoint Products가 Azure DevOps 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 구성 관리자를 사용하여 배포에서 사용되는 포트를 확인합니다.
Azure DevOps 프록시 서버 - 클라이언트에서 프록시로 HTTP 8081*
Azure DevOps 프록시 서버 - 애플리케이션 계층에 대한 프록시 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

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

이전 표와 같이 사용자 지정 포트를 사용하도록 Azure DevOps Server 수정하여 로컬 배포에서 애플리케이션, 데이터 및 클라이언트 계층 간의 통신을 변경할 수 있습니다. 다음 표에서는 HTTP에서 HTTPS로의 포트 변경 예제에 대해 설명합니다.

참고

HTTPS 및 SSL(Secure Sockets Layer) 사용하도록 Azure DevOps Server 구성하려면 HTTPS 네트워크 트래픽에 대한 포트를 사용하도록 설정할 뿐만 아니라 다른 많은 작업을 수행해야 합니다. 자세한 내용은 Azure DevOps Server SSL(SSL(Secure Sockets Layer))을 통해 HTTPS 설정을참조하세요.

서비스 프로토콜 포트
SSL을 사용하는 웹 서비스 HTTPS 관리자가 구성함
SharePoint 중앙 관리 HTTPS 관리자가 구성함
SharePoint 제품 HTTPS 443
Reporting Services HTTPS 443
클라이언트 웹 서비스 HTTPS 관리자가 구성함
Release Management HTTPS 관리자가 구성함