Azure DevOps Server 프로젝트 컬렉션 관리

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019

Azure DevOps Server 여러 프로젝트를 호스트하는 경우 여러 프로젝트를 그룹화하고 동일한 리소스를 할당하여 보다 효율적으로 관리할 수 있습니다. 예를 들어 특정 코드 베이스에 액세스하는 모든 프로젝트와 같이 요구 사항이나 목표가 비슷한 프로젝트를 그룹화할 수 있습니다. 그런 다음 고유한 사용자 그룹, 서버 리소스 및 유지 관리 일정을 사용하여 팀 프로젝트의 그룹을 자치 리소스로 관리할 수 있습니다.

프로젝트 그룹을 프로젝트 컬렉션이라고 합니다. Azure DevOps Server 설치하면 모든 프로젝트를 포함하도록 기본 컬렉션이 만들어집니다. 컬렉션을 만들 때 해당 컬렉션 내의 프로젝트에서 사용할 수 있는 논리적 및 물리적 리소스를 지정합니다. 해당 프로젝트에 사용되는 모든 아티팩트와 데이터는 컬렉션의 단일 데이터베이스에 저장됩니다.

다음 그림에서는 프로젝트 컬렉션의 데이터베이스를 논리 아키텍처와 통합하는 방법을 보여 줍니다. 프로젝트를 만들 때 해당 데이터를 저장할 컬렉션을 지정합니다.

예제: 컬렉션 데이터베이스의 가능한 위치

정보 보기 또는 기존 프로젝트 구성

  1. Azure DevOps Server 관리자로 추가되지 않은 경우 지금 추가합니다.

    콘솔을 열려는 서버에서 로컬 관리자 그룹의 구성원이어야 하며 Azure DevOps Server 또는 Team Foundation Administrators 그룹의 구성원이거나 Server-Level 정보 편집 권한을 허용으로 설정해야 합니다.

  2. 애플리케이션 계층 서버에 로그인하고 관리 콘솔을 열고팀 프로젝트 컬렉션 노드를 엽니다.

    관리 콘솔, 팀 프로젝트 컬렉션 노드 Azure DevOps Server 2022의 스크린샷

    관리 콘솔, 팀 프로젝트 컬렉션 노드 Azure DevOps Server 2019-2020 스크린샷

  3. 컬렉션의 이름을 강조 표시하고 여러 탭에서 제공되는 정보를 검토합니다. 일부 탭은 해당 애플리케이션이 구성된 경우에만 표시됩니다.

    해당 탭에서 다음 작업을 수행할 수 있습니다.

    작업
    일반
    • 컬렉션 시작 또는 컬렉션 중지: 컬렉션을 시작하거나 중지합니다. 컬렉션을 중지하면 프로젝트를 사용할 수 없게 됩니다. 일반적으로는 컬렉션 이동 또는 분할과 같은 유지 관리 작업을 지원하기 위해 컬렉션을 중지합니다.
    • 컬렉션이 시작되면 컬렉션 중지 만 나타납니다. 컬렉션이 중지되면 시작 컬렉션 만 나타납니다. 컬렉션 시작 또는 중지를 완료하려면 몇 분 정도 걸릴 수 있습니다. 상태 변경을 표시하려면 새로 고침 을 선택해야 할 수 있습니다.
    • 설정 편집: 컬렉션의 설명 또는 구성을 편집합니다.
    • 그룹 멤버 자격: 컬렉션의 구성원으로 사용자 또는 그룹을 추가하거나 제거합니다. 자세한 내용은 프로젝트 컬렉션에 대한 관리자 권한 설정을 참조하세요.
    • 보안 관리: 컬렉션 그룹의 권한을 관리합니다. 자세한 내용은 권한 및 그룹 참조를 참조하세요.
    상태
    • 활동 로그를 보거나 작업을 다시 실행합니다.
    프로젝트

보고 구성

보고 페이지는 Azure DevOps에 보고서 서버를 추가한 경우에만 표시됩니다. 다음 작업을 수행하려면 이 페이지를 선택합니다.

  • 컬렉션에서 사용하도록 보고서 서버를 구성합니다.
  • 기본 폴더 위치를 편집할 때 서버에서 폴더를 만들 권한이 없는 상태에서 해당 서버에 없는 폴더의 경로를 입력하면 작업이 실패합니다. 해당 서버에서 폴더를 만들 권한이 없으면 기존 폴더를 지정해야 합니다.
  • 보고서 하위 폴더의 기본 위치를 제거하려면 구성 지우기를 선택합니다.
  • 구성을 제거하면 컬렉션의 모든 기존 및 이후 프로젝트에 대한 보고 기능이 제거됩니다.

프로젝트 컬렉션 만들기

프로젝트 컬렉션을 만들기 전에 이 문서의 뒷부분에 설명된 대로 여러 프로젝트 컬렉션을 만드는 장단점은 무엇인가요? 를 검토합니다.

  1. 관리자로 추가되지 않은 경우 지금 추가합니다.

    콘솔을 열려는 서버의 로컬 관리자 그룹의 구성원이어야 하며 Team Foundation Administrators 그룹 또는 Server-Level 정보 편집 권한의 구성원을 허용으로 설정해야 합니다.

  2. 관리 콘솔에서 팀 프로젝트 컬렉션 페이지를 열고 컬렉션 만들기를 선택합니다.

    관리 콘솔, 팀 프로젝트 컬렉션 노드, 컬렉션 만들기 Azure DevOps Server 2022의 스크린샷

    컬렉션 만들기 옵션이 강조 표시된 Azure DevOps Server 관리 콘솔의 스크린샷

  3. 팀 프로젝트 컬렉션 만들기 마법사에서 제공하는 지침을 따릅니다.

    이름에 대해 64자 이하의 고유한 이름을 지정하고(더 짧을수록 짧음), 슬래시 또는 명명 제한에 나열된 기타 특수 문자를 지정하지 않습니다.

    상속 옵션이 선택된 2022년 Azure DevOps Server 컬렉션 만들기 대화 상자

    상속 옵션이 선택된 팀 프로젝트 컬렉션 만들기 대화 상자의 스크린샷.

  1. 사용자 인터페이스를 사용하여 작업 추적을 사용자 지정하려면 상속 을 선택합니다. 이 선택은 보고 요구 사항을 지원하기 위해 Analytics Service를 사용합니다.

    XML 정의 파일을 사용하여 작업 추적을 사용자 지정하려면 XML을 선택합니다.

    참고

    온-프레미스 XML 프로세스 모델의 경우 witadmin 을 사용하여 프로젝트의 프로세스를 나열, 가져오기, 내보내기 및 수정할 수 있습니다. 상속된 프로세스 모델의 경우 witadmin 을 사용하여 프로세스 정보를 나열하고 내보낼 수 있습니다. 프로세스 모델 및 지원되는 항목에 대한 개요는 작업 추적 환경 사용자 지정을 참조하세요.

마법사에서는 다음 리소스를 구성할 수 있습니다. 컬렉션을 호스트하는 응용 프로그램 계층 서버가 해당하는 응용 프로그램을 지원하도록 이전에 구성한 경우에만 구성할 수 있는 리소스도 있습니다.

데이터 계층 또는 SQL Server 인스턴스

  1. Azure DevOps 데이터 계층 서버의 이름을 지정합니다. 명명된 instance 사용하여 이 프로젝트 컬렉션에 대한 데이터베이스를 호스트하려는 경우 다음 예제와 같이 instance 이름도 지정해야 합니다.

    Servername\InstanceName

  2. 컬렉션에 대한 데이터베이스를 만들려면 이 컬렉션에 대한 새 데이터베이스 만들기를 선택합니다. 이 옵션을 사용하려면 Visual Studio Team Foundation 백그라운드 작업 에이전트에서 사용하는 서비스 계정에 SQL Server instance 데이터베이스를 만들 수 있는 권한이 있어야 합니다.

    또는 이미 존재하는 데이터베이스를 사용하려는 경우 이 기존 데이터베이스 사용을 선택하고 데이터베이스 이름을 지정합니다. 이 옵션을 사용하려면 명명된 SQL Server 인스턴스에 빈 데이터베이스가 있어야 하며 쓰기 권한이 있어야 합니다.

SQL Server Reporting Services

  1. SQL Server Reporting Services 사용하도록 애플리케이션 계층을 구성한 경우 보고서가 나타나고, 그렇지 않으면 사용하지 않도록 설정됩니다. 나중에 구성하려면 보고서 서버 추가를 참조하세요.

  2. 보고서를 호스트할 서버 및 폴더에 대한 정보를 검토하고 다음을 선택합니다. 이 옵션을 사용하려면 사용자 계정에 Reporting Services를 실행 중인 서버에 폴더를 만들 권한이 있어야 합니다.

    비즈니스 인프라의 보안 제한 사항 때문에 마법사를 통해 자동으로 폴더를 만드는 것이 금지된 상황이 아니라면 폴더를 만드는 데 기본 옵션을 사용해야 합니다.

  3. 관리자가 Reporting Services 실행하는 서버에서 사용자를 위해 만든 폴더를 사용해야 하는 경우 고급 구성을 확장하고 기존 폴더에 대한 경로 지정을 선택한 다음, 만들어진 폴더의 상대 경로를 지정합니다.

    경로 확인을 선택하고 경로가 올바른 경우 다음을 선택합니다.

확인 프로세스

  1. 준비 검사에서 검사의 상태 검토합니다.

    오류가 포함된 구성 옆에 파란색 밑줄이 그은 오류 표시기가 나타납니다. 문제에 대한 자세한 메시지 표시기를 선택할 수 있습니다. 작업을 계속 진행하려면 모든 오류를 해결해야 합니다.

    모든 준비 검사를 통과한 후 만들기를 선택합니다.

  2. 프로젝트 컬렉션을 만드는 프로세스가 시작됩니다.

    만들기 프로세스가 성공했음을 보여 주는 팀 프로젝트 컬렉션 만들기 대화 상자의 스크린샷

    마법사가 완료되면 닫기를 선택합니다.

프로젝트 컬렉션 분리 또는 삭제

컬렉션 이동 또는 분할과 같은 유지 관리 작업을 수행하려는 경우 프로젝트 컬렉션을 분리합니다. 컬렉션을 분리할 때 Teams는 프로젝트 또는 소스 코드에 액세스할 수 없습니다.

컬렉션에 정의된 프로젝트에 저장된 데이터가 더 이상 필요하지 않은 경우 컬렉션을 삭제합니다. 컬렉션을 삭제하는 세 단계는 (1) 컬렉션을 분리하고 (2) 컬렉션 데이터베이스를 삭제하는 것입니다.

컬렉션 분리

  1. 관리 콘솔에서 삭제할 컬렉션의 이름을 강조 표시한 다음 컬렉션 분리를 선택합니다.

    2022년 Azure DevOps Server 컬렉션 분리 선택 스크린샷

    2019-2020 Azure DevOps Server 컬렉션 분리 선택 스크린샷

  2. 팀 프로젝트 컬렉션 분리 마법사에서 제공하는 지침을 따릅니다.

    (선택 사항) 프로젝트 컬렉션에 대한 서비스 메시지 제공 페이지의 서비스 메시지에서 이 컬렉션의 프로젝트에 연결하려고 할 수 있는 사용자에 대한 메시지를 지정합니다.

  3. 모든 준비 검사가 성공적으로 완료되면 분리를 선택합니다.

    프로젝트 컬렉션 분리 진행률 모니터링 페이지에서 모든 프로세스가 완료되면 다음을 선택합니다.

  4. (선택 사항) 이 프로젝트 컬렉션에 대한 추가 정보 검토 페이지에서 로그 파일의 위치를 확인합니다.

프로젝트 컬렉션이 관리 콘솔의 컬렉션 목록에 더 이상 표시되지 않습니다.

Q & A

Q: 컬렉션을 관리하기 위한 명령줄 도구가 있나요?

A:TFSConfig 컬렉션 명령을 사용하여 프로젝트 컬렉션을 연결, 분리, 삭제 또는 복제할 수 있습니다.

Q: 여러 프로젝트 컬렉션을 만드는 장단점은 무엇인가요?

개발 작업이 코드를 분기 및 병합하는 기능을 활용하거나 동일한 코드와 관련된 작업 항목의 상태 쿼리해야 하는 경우 동일한 프로젝트 컬렉션에 프로젝트를 통합해야 합니다.

A: 컬렉션을 두 개 이상 만드는 경우의 장점

각 코드베이스 또는 기타 프로젝트 그룹의 운영 요구 사항을 더 효율적으로 구분할 수 있습니다. 각 컬렉션의 데이터가 자체 데이터베이스에 저장되므로 배포의 다른 컬렉션과는 별도로 각 컬렉션의 다양한 측면을 독립적으로 관리할 수 있습니다. 예를 들어 각 컬렉션을 개별적으로 중지 및 시작할 수 있습니다. 따라서 각 컬렉션의 유지 관리 작업을 각기 다른 시간에 진행하도록 일정을 예약할 수 있습니다.

프로젝트를 둘 이상의 컬렉션으로 그룹화하면 다음과 같은 이점이 있습니다.

  • 데이터베이스 및 리소스를 관리하고 배포할 때 유연성과 확장성이 향상되었습니다. 관련 프로젝트 그룹은 보고서, 작업 항목 및 프로세스 지침과 코드 베이스를 공유합니다.

    각 컬렉션에 대해 데이터베이스를 만들면 팀과 관리자가 다음 작업을 수행할 수 있습니다.

    • 컬렉션 내의 프로젝트 요구 사항에 따라 자치 코드베이스를 빌드, 분기, 병합 및 반복할 수 있습니다. 컬렉션 외부의 코드 종속성을 체계적으로 관리할 수 있습니다.
    • 다른 컬렉션과 독립적으로 각 컬렉션에 대해 데이터를 백업 및 복원할 수 있습니다.
    • 단일 SQL Server 인스턴스에 모든 컬렉션 데이터베이스를 저장하거나 하나 이상의 인스턴스로 데이터베이스를 분산시킵니다.
    • 컬렉션을 분리하고 백업한 다음 다른 Azure DevOps 배포로 복원합니다.
    • 시간이 경과함에 따라 프로젝트 크기가 커지면 프로젝트 수요를 더 효율적으로 충족하기 위해 리소스를 다시 할당합니다.
  • 운영 보안을 강화했습니다. 각 컬렉션에는 고유한 사용자 및 권한 집합이 있으므로 컬렉션마다 서로 다른 코드베이스를 격리할 수 있습니다. 관리자는 특정 코드베이스에 관련된 프로젝트를 하나 이상 포함하는 컬렉션에만 사용자를 추가할 수 있습니다.

  • 사용자 지정 워크플로 프로세스를 지원하는 기능이 향상되었습니다. 각 컬렉션은 프로세스 템플릿, 작업 항목 형식, 링크 형식, 전역 목록 및 작업 항목 필드를 다른 컬렉션과 별도로 관리합니다. 워크플로 프로세스가 다른 프로젝트를 다른 컬렉션으로 분리하면 컬렉션 내의 프로젝트에 필요한 사용자 지정만 노출됩니다.

A: 컬렉션을 두 개 이상 만드는 경우의 단점

둘 이상의 프로젝트 컬렉션을 만드는 기본 단점은 Azure DevOps 배포의 복잡성을 증가한다는 것입니다.

  • 각 컬렉션의 데이터베이스를 개별적으로 백업 및 복원해야 할 뿐만 아니라 컬렉션의 수에 비례하여 기타 유지 관리 작업의 양도 많아집니다. 예를 들어 각 프로젝트 컬렉션에 대한 사용자 및 권한 집합을 개별적으로 관리해야 합니다.
  • 팀에서 컬렉션 간에 작업 항목을 연결할 수 없습니다.
  • 팀에서 컬렉션 간에 코드를 분기하거나 병합할 수 없습니다.
  • 팀에서 컬렉션 간에 쿼리를 만들 수 없습니다.

Q: 컬렉션 수준에서 관리되는 리소스는 무엇인가요?

A: 각 프로젝트는 컬렉션에 속합니다. 컬렉션 관리에 대한 자세한 내용은 organization 또는 프로젝트 컬렉션 관리 시작을 참조하세요.

Q: 다른 팀 컬렉션에 대해 저장된 데이터는 보고를 어떻게 지원하나요?

A: 단일 관계형 데이터 웨어하우스에는 Azure DevOps 배포에 대한 모든 프로젝트 컬렉션에 정의된 모든 프로젝트의 모든 보고 가능한 데이터가 포함됩니다. 그러면 해당 웨어하우스의 데이터가 처리되어 OLAP 큐브에 기록됩니다. 데이터는 단일 데이터 웨어하우스로 수집되므로 여러 프로젝트 컬렉션에서 보고할 수 있습니다.

보고서를 만들거나 사용자 지정하려면 TfsWarehouseDataReader 역할에 사용자 계정을 추가해야 합니다. 보고서 작성자에게는 관계형 데이터 웨어하우스 및 Analysis Services 큐브 둘 다에 대한 읽기 액세스 권한이 필요합니다. 이러한 계정은 Azure DevOps 배포의 모든 프로젝트 컬렉션에서 호스트되는 모든 팀 프로젝트에 대한 데이터를 볼 수 있습니다. 프로젝트 또는 컬렉션에 대한 액세스를 제한할 수 있는 방법은 없습니다.

Q: 컬렉션을 사용하여 배포를 확장하려면 어떻게 해야 하나요?

A:프로젝트 컬렉션 이동 또는 프로젝트 컬렉션분할을 참조하세요.