사전 프로덕션 환경에서 업그레이드를 시험 실행

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

귀찮게 해야 하나요?

사전 프로덕션 환경에서 업그레이드를 건조하게 실행하는 것이 좋지만 항상 의미가 있는 것은 아닙니다. 사전 프로덕션 업그레이드를 수행할지 여부를 논의하는 경우 그렇게 하지 않는 비용에 대해 비용을 평가합니다. 특히 프로덕션 업그레이드에 문제가 발생하는 경우 기본 비용은 이전 버전의 TFS로 롤백하는 동안 발생하는 가동 중지 시간이 됩니다. 업그레이드의 세부 사항에 따라 빠르고 간단한 프로세스가 될 수도 있고, 시간이 오래 걸리고 많은 부품 이동이 포함될 수 있습니다. 업그레이드와 마찬가지로 롤백의 복잡성은 데이터베이스 크기, 관련된 컴퓨터 수 등에 따라 달라집니다.

기본 사항

사전 프로덕션 업그레이드를 진행하기로 결정한 경우 일반 프로세스는 다음으로 구성됩니다.

  1. 프로덕션 환경과 유사한 사전 프로덕션 환경을 유지합니다.
  2. 프로덕션 환경 보호.
  3. 백업에서 데이터베이스 복원
  4. 업그레이드를 수행합니다.

환경 일어서기

이상적인 환경에서는 사전 프로덕션 환경이 프로덕션 환경과 똑같을 것입니다. 이렇게 하면 업그레이드에 걸리는 시간, 진행 중에 문제가 발생하는지 여부에 대한 그림을 최대한 정확하게 파악할 수 있습니다. 그러나 현실 세계에서는 이것이 항상 가능하거나 바람직한 것은 아닙니다. 사전 프로덕션 테스트를 위해 두 번째 동일한 컴퓨터 집합을 프로비전하는 비용은 엄청나게 들 수 있습니다. 그러나 이러한 불일치가 당신을 단념시키지 않도록 하십시오. 그러나 거의 모든 사전 프로덕션 환경이 아무것도 아닌 것보다 낫습니다.

프로덕션 보호

TFS 데이터베이스에는 배포 환경의 다양한 리소스를 가리키는 여러 설정이 포함되어 있습니다. 예를 들어 컬렉션 데이터베이스 연결 문자열은 예약된 백업 기능에서 사용하는 네트워크 공유와 마찬가지로 구성 데이터베이스에 저장됩니다. 따라서 사전 프로덕션 환경에서 프로덕션 환경에서 문제를 일으킬 수 있으며, 사전 프로덕션 환경을 설치할 때 이를 방지하기 위한 조치를 취하는 것이 가장 좋습니다.

수행할 수 있는 가장 중요한 단계는 프로덕션 환경에 대한 권한이 없는 사전 프로덕션 환경에서 서비스 계정을 사용하는 것입니다. 이상적으로는 TFS, SQL, 네트워크 공유 등에 대한 사용 권한이 없어야 합니다. 이 옵션에는 아래 예제와 같이 네트워크 서비스(사전 프로덕션 컴퓨터 계정에 프로덕션에 권한이 필요하지 않다고 가정) 또는 전용 사전 프로덕션 도메인 계정이 포함됩니다.

사전 프로덕션 서비스 계정 예제

또 다른 선택적 단계는 프로덕션 컴퓨터의 호스트 파일에 항목을 추가하여 프로덕션 머신 이름을 잘못된 IP 주소에 매핑하는 것입니다. 호스트 파일이 무엇인지 확실하지 않은 경우 여기에서 Wikipedia 항목을 참조하세요. 이렇게 하면 사전 프로덕션 컴퓨터에서 프로덕션 머신에 대한 아웃바운드 통신을 방지할 수 있습니다.

AT 및 DT의 파일 리디렉션을 호스트하는 예제

데이터베이스 복원

예약된 백업 마법사를 사용하여 프로덕션 배포에서 데이터베이스 백업을 생성하는 경우 이를 사용하여 사전 프로덕션 배포에서 백업을 복원할 수도 있습니다. 그렇지 않은 경우 표준 SQL 절차에 따라 백업도 복원할 수 있습니다. 백업 및 복원할 데이터베이스 목록에는 항상 구성 데이터베이스와 모든 컬렉션 데이터베이스가 포함되어야 합니다. 사전 프로덕션 환경에 보고 기능이 포함된 경우 웨어하우스 및 보고서 서버 데이터베이스도 포함해야 합니다.

업그레이드 수행

애플리케이션 계층 컴퓨터에 새 버전의 TFS를 설치합니다. 업그레이드 마법사를 실행하기 전에 ChangeServerId 명령을 실행합니다. 이렇게 하면 동일한 클라이언트에서 프로덕션 환경과 사전 프로덕션 환경에 모두 액세스하는 경우 문제가 발생하지 않으며 컬렉션 또는 전체 배포를 복제할 때마다 수행해야 합니다.

준비가 되면 프로덕션을 업그레이드하는 데 사용하는 것과 동일한 단계를 사용하여 사전 프로덕션 환경을 업그레이드합니다. 프로덕션 환경에서 권한이 없는 서비스 계정을 사용해야 합니다.

새 기능 구성

일부 업그레이드에서는 기존 프로젝트에 대한 프로세스 변경이 포함되므로 구성하기 위한 추가 단계를 수행하는 새로운 기능이 도입됩니다. 프로젝트의 세부 사항 및 업그레이드할 TFS 버전에 따라 다소 복잡할 수 있습니다. 자세한 내용은 여기를 참조하세요.

사용해 보기

스핀을 위해 사전 프로덕션 서버를 꺼내세요! 조금 주위를 찌르고, 새로운 기능 중 일부를 사용해 보세요... 빌드 실행과 같은 일부 항목에는 몇 가지 추가 구성이 필요합니다.

문제가 발견되면 프로덕션 환경에서 문제가 다시 발생하지 않도록 여기에서 문제를 해결해 보세요. 만족하면 하루에 호출하고 프로덕션 업그레이드로 이동합니다.