Azure DevOps Server에서 프로젝트 컬렉션 관리
Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019
Azure DevOps Server에서 여러 프로젝트를 호스트하는 경우 여러 프로젝트를 그룹화하고 동일한 리소스를 할당하여 보다 효율적으로 관리할 수 있습니다. 예를 들어 특정 코드 베이스에 액세스하는 모든 프로젝트와 같이 요구 사항이나 목표가 비슷한 프로젝트를 그룹화할 수 있습니다. 그런 다음 자체 사용자 그룹, 서버 리소스 및 유지 관리 일정을 사용하여 팀 프로젝트 그룹을 자율 리소스로 관리할 수 있습니다.
프로젝트 그룹을 프로젝트 컬렉션이라고 합니다. Azure DevOps Server를 설치하면 모든 프로젝트를 포함하도록 기본 컬렉션이 만들어집니다. 컬렉션을 만들 때 해당 컬렉션 내의 프로젝트에서 사용할 수 있는 논리적 및 물리적 리소스를 지정합니다. 해당 프로젝트에서 사용하는 모든 아티팩트 및 데이터는 컬렉션의 단일 데이터베이스에 저장됩니다.
다음 그림에서는 프로젝트 컬렉션의 데이터베이스를 논리 아키텍처와 통합하는 방법을 보여 줍니다. 프로젝트를 만들 때 해당 데이터를 저장할 컬렉션을 지정합니다.
정보 보기 또는 기존 프로젝트 구성
Azure DevOps Server 관리자 로 추가되지 않은 경우 지금 추가됩니다.
콘솔을 열려는 서버의 로컬 관리자 그룹의 구성원이어야 하며, Azure DevOps Server 또는 Team Foundation Administrators 그룹의 구성원이거나 서버 수준 정보 편집 권한을 허용으로 설정해야 합니다.
애플리케이션 계층 서버에 로그인하고 관리 콘솔을 열고 팀 프로젝트 컬렉션 노드를 엽니다.
컬렉션의 이름을 강조 표시하고 다양한 탭에서 제공된 정보를 검토합니다. 일부 탭은 해당 애플리케이션이 구성된 경우에만 표시됩니다.
해당 탭에서 다음 작업을 수행할 수 있습니다.
Tab 작업 일반 - 컬렉션 시작 또는 컬렉션 중지: 컬렉션을 시작하거나 중지합니다. 컬렉션을 중지하면 프로젝트를 사용할 수 없게 됩니다. 일반적으로 컬렉션 이동 또는 분할과 같은 유지 관리 작업을 지원하기 위해 컬렉션을 중지합니다.
- 컬렉션이 시작되면 컬렉션 중지만 나타납니다. 컬렉션이 중지된 경우 시작 컬렉션만 나타납니다. 컬렉션을 시작하거나 중지하는 데 몇 분 정도 걸릴 수 있습니다. 상태 변경을 표시하려면 새로 고침을 선택해야 할 수 있습니다.
- 설정 편집: 컬렉션의 설명 또는 구성을 편집합니다.
- 그룹 멤버 자격: 컬렉션의 구성원으로 사용자 또는 그룹을 추가하거나 제거합니다. 자세한 내용은 프로젝트 컬렉션에 대한 관리자 권한 설정을 참조 하세요.
- 보안 관리: 컬렉션 그룹의 사용 권한을 관리합니다. 자세한 내용은 사용 권한 및 그룹 참조를 참조하세요.
상태 - 활동 로그를 보거나 작업을 다시 실행합니다.
프로젝트 - 컬렉션 에 대해 정의된 프로젝트를 보고 프로젝트를 삭제합니다.
- 프로젝트에 대한 자세한 내용은 프로젝트 만들기를 참조하세요.
보고 구성
보고 페이지는 Azure DevOps에 보고서 서버를 추가한 경우에만 표시됩니다. 다음 작업을 수행하려면 이 페이지를 선택합니다.
- 컬렉션에서 사용할 보고서 서버를 구성합니다.
- 기본 폴더 위치를 편집할 때 서버에 없는 폴더의 경로를 입력하고 해당 서버에 폴더를 만들 수 있는 권한이 없는 경우 작업이 실패합니다. 해당 서버에 폴더를 만들 수 있는 권한이 없는 경우 기존 폴더를 지정해야 합니다.
- 보고서 하위 폴더의 기본 위치를 제거하려면 [구성 지우기]를 선택합니다.
- 구성을 제거하면 컬렉션의 모든 기존 및 이후 프로젝트에 대한 보고 기능이 제거됩니다.
프로젝트 컬렉션 만들기
프로젝트 컬렉션을 만들기 전에 이 문서의 뒷부분에 설명된 대로 여러 프로젝트 컬렉션을 만드는 장단점을 검토 하세요 .
관리자 로 추가되지 않은 경우 지금 추가합니다.
콘솔을 열려는 서버의 로컬 관리자 그룹의 구성원이어야 하며 Team Foundation Administrators 그룹의 구성원 또는 서버 수준 정보 편집 권한을 허용으로 설정해야 합니다.
관리 콘솔에서 팀 프로젝트 컬렉션 페이지를 열고 컬렉션 만들기를 선택합니다.
팀 프로젝트 컬렉션 만들기 마법사에서 제공하는 지침을 따릅니다.
이름에 대해 64자 이하의 고유 이름을 지정하고(더 짧을수록 짧음), 슬래시 또는 명명 제한에 나열된 기타 특수 문자를 지정하지 않습니다.
사용자 인터페이스를 사용하여 작업 추적을 사용자 지정하려면 상속을 선택합니다. 이 선택은 보고 요구 사항을 지원하기 위해 Analytics Service에 의존합니다.
XML 정의 파일을 사용하여 작업 추적을 사용자 지정하려면 XML을 선택합니다.
참고 항목
온-프레미스 XML 프로세스 모델의 경우 witadmin을 사용하여 프로젝트에 대한 프로세스를 나열, 가져오기, 내보내기 및 수정할 수 있습니다. 상속된 프로세스 모델의 경우 witadmin을 사용하여 프로세스 정보를 나열하고 내보낼 수 있습니다. 프로세스 모델 및 지원되는 항목에 대한 개요는 작업 추적 환경 사용자 지정을 참조하세요.
마법사는 다음 리소스의 구성을 지원합니다. 컬렉션을 호스트하는 애플리케이션 계층 서버가 이전에 해당 애플리케이션을 지원하도록 구성된 경우에만 일부 리소스를 구성할 수 있습니다.
데이터 계층 또는 SQL Server 인스턴스
Azure DevOps 데이터 계층 서버의 이름을 지정합니다. 명명된 인스턴스를 사용하여 이 프로젝트 컬렉션의 데이터베이스를 호스트하려면 다음 예제와 같이 인스턴스의 이름도 지정해야 합니다.
ServerName \ InstanceName
컬렉션에 대한 데이터베이스를 만들려면 이 컬렉션에 대한 새 데이터베이스 만들기를 선택합니다. 이 옵션을 사용하려면 Visual Studio Team Foundation 백그라운드 작업 에이전트에서 사용하는 서비스 계정에 SQL Server 인스턴스에 데이터베이스를 만들 수 있는 권한이 있어야 합니다.
또는 이미 존재하는 데이터베이스를 사용하려면 이 기존 데이터베이스 사용을 선택하고 데이터베이스의 이름을 지정합니다. 이 옵션을 사용하려면 명명된 SQL Server 인스턴스에 빈 데이터베이스가 있고 쓰기 권한이 있어야 합니다.
SQL Server Reporting Services
SQL Server Reporting Services를 사용하도록 애플리케이션 계층을 구성한 경우 보고서가 나타나고, 그렇지 않으면 사용하지 않도록 설정됩니다. 나중에 구성하려면 보고서 서버 추가를 참조하세요.
보고서를 호스트할 서버 및 폴더에 대한 정보를 검토하고 다음을 선택합니다. 이 옵션을 사용하려면 사용자 계정에 Reporting Services를 실행하는 서버에 폴더를 만들 수 있는 권한이 있어야 합니다.
비즈니스 인프라의 보안 제한으로 인해 마법사의 일부로 폴더가 자동으로 생성되지 않는 한 기본 옵션을 사용하여 폴더를 만들어야 합니다.
관리자가 Reporting Services를 실행하는 서버에서 사용자를 위해 만든 폴더를 사용해야 하는 경우 고급 구성을 확장하고, 기존 폴더에 대한 경로 지정을 선택하고, 사용자가 만든 폴더의 상대 경로를 지정합니다.
경로 확인을 선택하고 경로가 올바른 경우 다음을 선택합니다.
확인 프로세스
준비 검사에서 검사 상태를 검토합니다.
오류가 포함된 구성 옆에 파란색 밑줄 이 그은 오류 표시기가 나타납니다. 문제에 대한 자세한 메시지에 대한 표시기를 선택할 수 있습니다. 계속하려면 모든 오류를 해결해야 합니다.
모든 준비 검사를 통과한 후 만들기를 선택합니다.
프로젝트 컬렉션을 만드는 프로세스가 시작됩니다.
마법사가 완료되면 닫기를 선택합니다.
프로젝트 컬렉션 분리 또는 삭제
컬렉션 이동 또는 분할과 같은 유지 관리 작업을 수행하려는 경우 프로젝트 컬렉션을 분리합니다. 컬렉션을 분리할 때 Teams는 프로젝트 또는 소스 코드에 액세스할 수 없습니다.
컬렉션에 정의된 프로젝트에 저장된 데이터가 더 이상 필요하지 않은 경우 컬렉션을 삭제합니다. 컬렉션을 삭제하는 세 단계는 (1) 컬렉션을 분리하고 (2) 컬렉션 데이터베이스를 삭제하는 것입니다.
컬렉션 분리
관리 콘솔에서 삭제할 컬렉션의 이름을 강조 표시한 다음 컬렉션 분리를 선택합니다.
팀 프로젝트 컬렉션 분리 마법사에서 제공하는 지침을 따릅니다.
(선택 사항) 프로젝트 컬렉션에 대한 서비스 메시지 제공 페이지의 서비스 메시지에서 이 컬렉션의 프로젝트에 연결하려고 할 수 있는 사용자에 대한 메시지를 지정합니다.
모든 준비 검사가 성공적으로 완료되면 분리를 선택합니다.
프로젝트 컬렉션 분리 진행률 모니터링 페이지에서 모든 프로세스가 완료되면 다음을 선택합니다.
(선택 사항) 이 프로젝트 컬렉션 에 대한 추가 정보 검토 페이지에서 로그 파일의 위치를 확인합니다.
컬렉션 데이터베이스 삭제
SQL Server Management Studio를 열고, 컬렉션 데이터베이스를 호스트하는 SQL Server 데이터베이스 엔진 인스턴스에 연결하고, 인스턴스를 확장합니다.
컬렉션 데이터베이스의 이름(기본적으로 TFS_CollectionName)을 강조 표시한 다음 데이터베이스를 삭제합니다.
자세한 내용은 데이터베이스 삭제를 참조하세요.
프로젝트 컬렉션이 관리 콘솔의 컬렉션 목록에 더 이상 표시되지 않습니다.
질문 & 답변
Q: 컬렉션을 관리하기 위한 명령줄 도구가 있나요?
A: TFSConfig 컬렉션 명령을 사용하여 프로젝트 컬렉션을 연결, 분리, 삭제 또는 복제할 수 있습니다.
Q: 여러 프로젝트 컬렉션을 만드는 장단점은 무엇인가요?
개발 노력이 코드를 분기 및 병합하는 기능을 활용하거나 동일한 코드와 관련된 작업 항목의 상태를 쿼리해야 하는 경우 프로젝트를 동일한 프로젝트 컬렉션에 통합해야 합니다.
A: 둘 이상의 컬렉션을 만들 때의 이점
하나의 코드 베이스 또는 다른 프로젝트 그룹화에 대한 운영 요구 사항을 다른 그룹화에 대한 운영 요구 사항과 더 잘 분리할 수 있습니다. 각 컬렉션의 데이터는 자체 데이터베이스에 저장되므로 배포의 다른 컬렉션과 별도로 각 컬렉션의 여러 측면을 독립적으로 관리할 수 있습니다. 예를 들어 각 컬렉션을 개별적으로 중지하고 시작할 수 있습니다. 따라서 각 컬렉션에 대한 유지 관리 작업을 서로 다른 시간에 예약할 수 있습니다.
프로젝트를 둘 이상의 컬렉션으로 그룹화하면 다음과 같은 이점이 있습니다.
데이터베이스 및 리소스를 관리하고 배포할 때 유연성과 확장성이 향상됩니다. 관련 프로젝트 그룹은 보고서, 작업 항목 및 프로세스 지침과 코드 베이스를 공유합니다.
각 컬렉션에 대한 데이터베이스를 만들어 팀과 관리자는 다음 작업을 수행할 수 있습니다.
- 컬렉션 내 프로젝트의 요구 사항에 따라 자치 코드 베이스를 빌드, 분기, 병합 및 반복합니다. 컬렉션 외부의 코드 종속성을 공식적으로 관리할 수 있습니다.
- 다른 컬렉션과 독립적으로 각 컬렉션에 대한 데이터를 백업하고 복원합니다.
- SQL Server의 단일 인스턴스에 모든 컬렉션 데이터베이스를 저장하거나 하나 이상의 인스턴스에 데이터베이스를 배포합니다.
- 컬렉션을 분리하고 백업한 다음 다른 Azure DevOps 배포로 복원합니다.
- 시간이 지남에 따라 크기가 증가함에 따라 프로젝트의 요구를 더 잘 충족하도록 리소스를 다시 할당합니다.
운영 보안 강화. 각 컬렉션에는 고유한 사용자 및 권한 집합이 있으므로 서로 다른 코드 베이스를 격리하는 것은 다른 컬렉션에서 격리될 수 있습니다. 관리자는 특정 코드 베이스와 관련된 프로젝트 또는 프로젝트가 포함된 컬렉션에만 사용자를 추가할 수 있습니다.
사용자 지정 워크플로 프로세스를 지원하는 기능이 향상되었습니다. 각 컬렉션은 프로세스 템플릿, 작업 항목 유형, 링크 형식, 전역 목록 및 작업 항목 필드를 다른 컬렉션과 별도로 관리합니다. 워크플로 프로세스가 다른 프로젝트를 다른 컬렉션으로 분리하면 컬렉션 내의 해당 프로젝트에 필요한 사용자 지정만 노출됩니다.
A: 둘 이상의 컬렉션을 만드는 단점
둘 이상의 프로젝트 컬렉션을 만드는 경우의 주요 단점은 Azure DevOps 배포의 복잡성을 증가한다는 것입니다.
- 각 컬렉션에 대한 데이터베이스를 백업 및 복원해야 하며, 다른 관리 및 유지 관리 작업도 컬렉션 수에 비례하여 증가합니다. 예를 들어 각 프로젝트 컬렉션에 대한 사용자 및 권한 집합을 개별적으로 관리해야 합니다.
- Teams는 컬렉션 간에 작업 항목을 연결할 수 없습니다.
- Teams는 컬렉션 간에 코드를 분기하거나 병합할 수 없습니다.
- Teams는 컬렉션 간에 쿼리를 만들 수 없습니다.
Q: 컬렉션 수준에서 관리되는 리소스는 무엇인가요?
A: 각 프로젝트는 컬렉션에 속합니다. 컬렉션 관리에 대한 자세한 내용은 조직 또는 프로젝트 컬렉션 관리 시작을 참조하세요.
Q: 다른 팀 컬렉션에 대해 저장된 데이터는 보고를 어떻게 지원하나요?
A: 단일 관계형 데이터 웨어하우스에는 Azure DevOps 배포에 대한 모든 프로젝트 컬렉션에 정의된 모든 프로젝트의 모든 보고 가능한 데이터가 포함됩니다. 그런 다음 해당 웨어하우스의 데이터가 처리되어 OLAP 큐브에 기록됩니다. 데이터는 단일 데이터 웨어하우스로 수집되므로 여러 프로젝트 컬렉션에서 보고할 수 있습니다.
보고서를 만들거나 사용자 지정하려면 TfsWarehouseDataReader 역할에 사용자 계정을 추가해야 합니다. 보고서 작성자는 관계형 데이터 웨어하우스와 Analysis Services 큐브 모두에 대한 읽기 권한이 필요합니다. 이러한 계정은 Azure DevOps 배포의 모든 프로젝트 컬렉션에서 호스트되는 모든 팀 프로젝트에 대한 데이터를 볼 수 있습니다. 프로젝트 또는 컬렉션에 대한 액세스를 제한할 수 있는 방법은 없습니다.
Q: 컬렉션을 사용하여 배포 크기를 조정할 어떻게 할까요? 있나요?
A: 프로젝트 컬렉션 이동 또는 프로젝트 컬렉션 분할을 참조하세요.