가상 환경 개념 및 지침
참고
이 항목에서는 사용자가 응용 프로그램 수명 주기에 가상 랩 사용 항목에 설명된 가상 컴퓨터 및 가상 컴퓨터 템플릿 등의 기본 가상화 개념에 대해 잘 알고 있다고 가정합니다.
이 항목에서는 Microsoft Test Manager에서 Visual Studio Lab Management를 사용하여 가상 환경을 만드는 과정의 개념과 지침에 대해 설명합니다. 이 항목에는 다음과 같은 단원이 포함되어 있습니다.
가상 환경
저장 및 배포된 환경
팀 프로젝트 랩의 배포된 환경
팀 프로젝트 라이브러리의 저장된 개체
환경 뷰어
가상 환경 만들기 지침
네트워크가 격리되지 않은 환경
네트워크 격리 환경
구성된 환경
저장된 컴퓨터 및 템플릿에 대한 지침
가상 환경
가상 환경은 가상 컴퓨터의 컬렉션으로, Lab Management에서 관리합니다. 이 가상 환경을 사용하여 Microsoft Test Manager에서 수동 및 자동화된 테스트를 실행할 수 있습니다. 응용 프로그램을 빌드하고 가상 환경에 빌드를 배포한 다음 테스트하도록 Microsoft Team Foundation Build 워크플로를 예약할 수 있습니다. Lab Management가 Microsoft SCVMM(System Center Virtual Machine Manager)과 통합되어 있어 이러한 환경을 효과적으로 만들고, 저장하고, 실행할 수 있습니다.
Lab Management 환경에서는 테스터가 다음 작업을 수행할 수 있습니다.
특정 시점에 환경의 전체 가상 컴퓨터의 상태를 저장하는 환경의 스냅숏을 저장할 수 있습니다.
테스터는 구성된 환경의 스냅숏을 만든 다음 테스트 후에 환경을 이 정상 상태로 되돌릴 수 있습니다. 버그를 발견한 테스터는 환경의 스냅숏을 만든 다음 스냅숏에 대한 링크를 버그에 첨부할 수 있습니다. 버그를 조사하는 개발자는 테스터가 작업을 계속하는 동안 스냅숏 환경의 복사본을 만들 수 있습니다.
가상 시스템을 동시에 시작하고 중지할 수 있습니다.
라이브러리에 저장된 여러 환경 복사본을 실행할 수 있습니다.
Microsoft Test Manager 랩 및 라이브러리의 저장 및 배포된 환경
테스트 관리자의 랩 및 라이브러리 탭에서 팀 프로젝트에 대한 Lab Management 환경을 관리합니다.
랩 탭에서는 팀 프로젝트의 호스트 그룹에 배포된 가상 환경과 컴퓨터에 액세스할 수 있습니다. 호스트 그룹은 환경을 호스팅하기 위해 Lab Management에서 관리하는 하나 이상의 실제 컴퓨터 컬렉션입니다. 단일 컴퓨터인 것처럼 호스트 그룹과 상호 작용합니다.
라이브러리 탭에서는 팀 프로젝트 랩에 가상 환경을 만드는 데 사용하는 저장된 환경, 가상 컴퓨터 및 템플릿에 액세스할 수 있습니다.
팀 프로젝트 랩의 배포된 환경
테스트 관리자의 랩 탭에서는 팀 프로젝트에 사용할 수 있는 배포된 환경 및 가상 컴퓨터를 보여 줍니다.
배포된 환경은 팀 프로젝트 호스트 그룹에 있는 가상 컴퓨터 컬렉션입니다. 배포된 환경은 실행 중이거나 중지되었을 수 있습니다.
랩 탭에서 환경 뷰어를 통해 개별 컴퓨터에 연결하고 팀 프로젝트 라이브러리에 가상 컴퓨터 및 템플릿을 만들고 저장할 수 있습니다.
배포된 환경의 소스
다음 소스에서 배포된 환경을 만들 수 있습니다.
1 |
하나 이상의 템플릿 템플릿은 컴퓨터 ID가 제거된 가상 컴퓨터입니다. |
2 |
저장된 가상 컴퓨터 또는 템플릿의 조합 대부분의 경우 오류 가능성을 줄이려면 저장된 가상 컴퓨터에서만 또는 템플릿에서만 환경을 만드는 것이 좋습니다. |
3 |
템플릿의 저장된 환경 |
4 |
저장된 가상 컴퓨터 또는 템플릿 조합의 저장된 환경 |
5 |
Lab Management 외부에서 만들어진 하나 이상의 배포된 가상 컴퓨터 이러한 환경을 구성된 환경이라고 합니다. |
팀 프로젝트 라이브러리의 저장된 개체
라이브러리 탭에서 저장된 가상 컴퓨터와 템플릿을 가져오고 수정 및 제거할 수 있습니다. 저장된 환경을 생성 및 수정하고 이러한 환경을 랩에 배포할 수도 있습니다.
저장된 가상 컴퓨터 및 템플릿
랩 탭의 저장된 컴퓨터 및 템플릿 영역에는 배포된 환경을 만드는 데 사용하는 가상 컴퓨터와 가상 컴퓨터 템플릿이 표시됩니다.
저장된 컴퓨터 및 템플릿에는 다음 두 가지 소스가 있습니다.
관리자가 만들어 SCVMM 라이브러리 공유에 저장합니다. 그런 후에 가상 컴퓨터와 템플릿을 팀 프로젝트 라이브러리로 가져옵니다.
배포된 환경의 가상 컴퓨터에서 가상 컴퓨터 또는 템플릿을 만들어 라이브러리에 저장합니다.
저장된 템플릿
템플릿은 해당 ID 정보가 제거된 가상 컴퓨터입니다. 배포된 환경에 템플릿을 포함하면 새 가상 컴퓨터가 만들어집니다. ID 정보를 자동으로 제공하도록 템플릿을 구성하거나, 환경을 배포할 때 ID 정보를 제공할 수 있습니다.
저장된 가상 컴퓨터
팀 프로젝트 라이브러리의 저장된 가상 컴퓨터를 배포된 환경에 포함하면 가상 컴퓨터의 복제본이 랩의 호스트로 복사됩니다. 복사된 컴퓨터의 ID는 소스 컴퓨터와 같으므로 네트워크에 가입된 컴퓨터에서 중복 ID를 방지하는 단계를 수행해야 합니다.
라이브러리의 모든 가상 컴퓨터가 작업 그룹 컴퓨터이며 도메인에 가입되지 않도록 하는 것이 좋습니다.
네트워크가 격리되지 않은 환경을 만드는 경우 컴퓨터 이름을 변경한 다음 외부 도메인에 가입시킵니다.
컴퓨터 이름을 변경한 다음 컴퓨터를 도메인에 가입시키면 컴퓨터가 고유 ID를 갖게 됩니다.
네트워크가 격리된 환경을 만드는 경우 Lab Management는 외부 네트워크에 있는 컴퓨터의 별칭을 만듭니다. 환경 내에서 개인 네트워크의 컴퓨터를 사용하거나 작업 그룹 컴퓨터로 유지할 수 있습니다.
환경
라이브러리 탭의 환경 영역에는 팀 프로젝트에 대해 저장된 환경이 표시됩니다. 저장된 환경에는 가상 컴퓨터 및 템플릿에 대한 구성 정보와 참조가 포함되어 있습니다. 저장된 환경에서 새 환경을 배포할 수 있습니다.
환경 뷰어
랩에서 실행 중인 환경과 가상 컴퓨터를 관리하기 위한 Microsoft 환경 뷰어입니다. 환경 뷰어에서는 다음 작업을 수행할 수 있습니다.
환경을 시작, 중지 및 일시 중지합니다.
환경 상태의 스냅숏을 만들거나 환경을 이전 스냅숏으로 복원합니다.
환경 및 환경에 포함된 가상 컴퓨터의 상태 및 시스템 정보를 봅니다.
환경의 개별 컴퓨터에 연결합니다.
자세한 내용은 가상 환경 만들기 및 수정을 참조하십시오.
가상 환경 만들기 지침
가상 환경을 만들고 사용하는 세 가지 일반적인 패턴은 다음과 같습니다.
네트워크가 격리되지 않은 환경 사용
네트워크 격리 사용
구성된 환경에서 배포된 가상 컴퓨터 사용
네트워크가 격리되지 않은 환경
네트워크 격리를 사용하지 않는 환경은 외부 네트워크에만 가입됩니다. 이러한 환경은 프로젝트 라이브러리의 가상 컴퓨터, 템플릿 및 저장된 환경에서 만들어집니다.
저장된 가상 컴퓨터 및 템플릿에서 환경 만들기
저장된 가상 컴퓨터 또는 템플릿에서 배포된 환경을 만드는 경우 배포된 각 컴퓨터가 고유한 이름을 갖도록 사용자 지정합니다. 자동으로 사용자 지정을 제공하도록 템플릿을 구성할 수 있습니다. 환경에서 작업이 끝난 경우 환경을 삭제합니다. 다른 사용자가 동일한 방식으로 동일한 저장된 가상 컴퓨터 또는 템플릿에서 비슷한 환경을 만들 수 있습니다. 자세한 내용은 방법: 가상 컴퓨터 또는 템플릿에서 환경 만들기를 참조하십시오.
저장된 환경에서 환경 만들기
저장된 가상 컴퓨터, 템플릿 또는 배포된 환경에서 저장된 환경을 만들 수도 있습니다. 저장된 환경을 배포하는 경우 저장된 가상 컴퓨터에서 만든 가상 컴퓨터의 이름을 사용자 지정해야 합니다. 자동으로 사용자 지정을 제공하도록 템플릿을 구성할 수 있습니다. 자세한 내용은 저장된 환경 만들기를 참조하십시오.
저장된 템플릿 환경으로부터 생성된 환경은 동일하게 기능합니다. 배포된 환경의 컴퓨터 ID는 모두 고유하므로 각 환경이 완전히 동일하지 않습니다.
장점
여러 환경 복사본을 동시에 실행할 수 있습니다.
환경에서 실행 중인 미리 설치된 응용 프로그램이 변경된 가상 컴퓨터 ID의 영향을 받지 않는 경우 환경 배포는 간단한 작업일 수 있습니다.
환경에 포함되는 가상 컴퓨터의 수 및 크기에 제한이 없습니다.
단점
배포되는 각 가상 컴퓨터에 ID 정보를 제공해야 합니다. 템플릿을 사용하여 이 프로세스를 자동화할 수 있습니다.
배포된 각 환경이 완전히 동일하지 않습니다.
이미 설치되어 있으며 변경된 ID를 처리하도록 다시 구성할 수 없는 응용 프로그램에서는 문제가 발생할 수 있습니다. 따라서 이러한 응용 프로그램은 배포 후에 설치해야 합니다.
환경의 스냅숏을 한 번에 하나만 실행할 수 있습니다. 예를 들어 테스터가 버그를 발견할 때 환경 상태의 스냅숏을 만드는 경우 조사를 위해 환경의 복사본을 개발자와 공유하는 동시에 환경에서 작업을 계속할 수 없습니다.
네트워크가 격리된 환경
네트워크가 격리된 환경의 컴퓨터는 네트워크 어댑터 두 개를 사용하여 네트워크 충돌로부터 보호됩니다. 네트워크 어댑터 하나는 환경 내의 개인 네트워크용으로 사용됩니다. 두 번째 어댑터는 Lab Management에서 외부 네트워크에 별도의 고유 ID를 나타내도록 구성됩니다. 컴퓨터의 NetBIOS 브로드캐스트는 사용 중지되며 Lab Management ID가 컴퓨터에 대한 별칭으로 등록됩니다. 여러 환경 복사본이 실행 중이더라도 이러한 별도의 ID를 통해 환경 및 외부 네트워크에 있는 가상 컴퓨터 간의 양방향 통신이 가능합니다.
환경의 복사본을 동시에 여러 개 실행할 수 있도록 네트워크가 격리된 환경을 저장할 수 있습니다. 네트워크가 격리된 환경을 복사하는 경우 개인 네트워크의 컴퓨터 ID는 배포될 때마다 동일하게 유지되므로 두 복사본의 해당 가상 컴퓨터가 완전히 동일하지 않습니다. 외부 네트워크의 가상 컴퓨터 별칭은 네트워크 충돌이 발생하지 않도록 합니다.
가상 컴퓨터 또는 템플릿에서 환경을 배포할 때 네트워크 격리 기능을 선택하여 네트워크가 격리된 환경을 만듭니다. 그런 후에 필요한 응용 프로그램을 설치합니다. 필요한 경우 가상 컴퓨터를 개인 네트워크에 연결합니다. 환경의 복사본을 라이브러리에 직접 저장할 수 있습니다. 팀 멤버는 저장된 환경의 복사본을 동시에 여러 개 배포할 수 있습니다. 자세한 내용은 방법: 네트워크 격리 환경 만들기 및 사용을 참조하십시오.
장점
배포된 각 환경이 완전히 동일합니다. 개발자와 테스터가 환경이 동일하다고 확신할 수 있습니다.
이미 설치된 응용 프로그램이 배포의 영향을 받지 않습니다. 컴퓨터의 ID가 변경되지 않으므로 응용 프로그램을 다시 구성하거나 다시 설치할 필요가 없습니다.
프로덕션 환경을 모델링하는 환경이 격리된 환경으로 쉽게 만들어집니다.
환경의 스냅숏을 동시에 여러 개 실행할 수 있습니다. 예를 들어 테스터가 버그를 발견할 때 환경 상태의 스냅숏을 만든 다음 환경의 복사본을 라이브러리에 저장할 수 있습니다. 개발자가 저장된 복사본에서 새 환경을 배포하고 저장된 스냅숏을 사용하여 버그를 조사하는 동안 테스터가 환경에서 작업을 계속할 수 있습니다.
단점
격리된 네트워크의 모든 가상 컴퓨터가 단일 호스트에 맞아야 합니다.
네트워크가 격리된 환경의 가상 컴퓨터는 작업 그룹에 가입되거나 가상 환경 내에서 도메인 컨트롤러가 호스팅하는 개인 도메인에 가입되어야 합니다. 랩 네트워크에서 도메인 컨트롤러가 호스팅하는 도메인에 가입된 가상 컴퓨터는 네트워크가 격리된 환경에 포함할 수 없습니다.
격리된 환경에서 개인 도메인을 사용하는 경우 배포된 각 환경에 도메인 컨트롤러와 DNS 서버가 필요합니다. 따라서 이러한 역할을 위한 가상 컴퓨터가 추가되어야 합니다. 개인 작업 그룹의 경우에는 추가 컴퓨터가 필요하지 않습니다.
환경의 각 가상 컴퓨터마다 두 개의 네트워크 어댑터가 필요합니다. 하지만 두 개의 네트워크 어댑터를 사용하는 컴퓨터에서는 응용 프로그램이 작동하지 않을 수 있습니다.
구성된 환경
구성된 환경은 호스트에 배포된 가상 컴퓨터에서 만들어집니다. 이러한 가상 컴퓨터는 테스트 관리자에서 만들어지고 관리됩니다. 따라서 환경을 만들기 전에 네트워크 충돌이 발생하지 않도록 배포된 가상 컴퓨터를 구성해야 합니다.
관리자가 팀 프로젝트 랩에 있는 실제 컴퓨터에 가상 컴퓨터를 배치한 후 구성된 환경에서 하나 이상의 컴퓨터를 선택하여 새 환경을 만듭니다. 환경에서 작업이 끝나면 환경을 삭제하여 컴퓨터를 관리자에게 다시 해제합니다. 구성된 환경의 복사본을 라이브러리에 저장하면 안 됩니다. 자세한 내용은 방법: 배포된 가상 컴퓨터에서 환경 구성을 참조하십시오.
구성된 환경은 다음 두 가지 일반적인 시나리오에서 유용합니다.
기존 가상 컴퓨터를 사용하여 Lab Management를 시작합니다. 구성을 통해 신속하게 가상 환경을 만들고 해당 환경에서 테스트할 수 있습니다. 시작하기 전에 템플릿과 라이브러리의 개념을 알아보지 않아도 됩니다.
조직 내에서 테스트 작업에 이미 사용 중인 가상 컴퓨터를 통합합니다. 모든 자산을 다시 만드는 대신 기존 가상 컴퓨터를 사용하고 가상 환경에 구성한 다음 워크플로 배포 또는 테스트 대상으로 사용할 수 있습니다.
장점
Lab Management 및 해당 테스트 관리자 소프트웨어 에이전트가 기존 가상 컴퓨터에 설치되어 있으면 즉시 가상 환경을 만들고 사용할 수 있습니다.
현재 테스트를 방해하지 않고 Lab Management로 전환할 수 있습니다.
단점
이러한 환경을 라이브러리에 저장하고 여러 복사본을 만들 수 있습니다.
구성된 환경에 네트워크 격리 기능을 구성할 수 없습니다.
저장된 컴퓨터 및 템플릿에 대한 지침
팀 프로젝트 라이브러리에 있는 저장된 가상 컴퓨터와 템플릿의 모든 조합을 사용할 수 있습니다.
팀 프로젝트 라이브러리에서 저장된 가상 컴퓨터와 템플릿 증에 선택할 때의 주요 고려 사항은 도메인에서 이름 충돌을 방지하는 것입니다.
가상 컴퓨터의 이름 충돌
컴퓨터에는 네트워크나 작업 그룹에서 컴퓨터를 고유하게 식별할 수 있는 몇 개의 식별자가 있습니다. 이러한 식별자는 다음과 같습니다.
컴퓨터 이름 - 이 이름을 컴퓨터 또는 호스트 이름이라고도 합니다.
MAC(Media Access Control) 주소 - 네트워크 어댑터의 식별자입니다.
SID - 컴퓨터에 할당된 Windows 보안 식별자입니다.
IP(인터넷 프로토콜) 주소 - 컴퓨터의 고유한 숫자 식별자입니다.
가상 컴퓨터의 여러 복사본이 도메인 또는 작업 그룹에서 실행되고 있고 이러한 식별자 중 하나 이상을 공유하는 경우 이름 충돌이 발생할 수 있으며 자주 발생합니다. 두 컴퓨터 간의 이름 충돌로 인해 다음과 같은 상황이 발생할 수 있습니다.
컴퓨터 중 하나 또는 둘 다가 네트워크에서 연결이 끊어집니다.
네트워크 트래픽의 대상이 잘못 지정됩니다. 네트워크에서 두 컴퓨터의 ID가 같으면 한 컴퓨터로 보내는 명령이나 메시지가 다른 컴퓨터로 전송될 수 있습니다.
가능한 경우 항상 템플릿을 사용하는 것이 좋습니다. 일부 사용자에게는 템플릿이 익숙하지 않은 개념일 수 있지만 템플릿을 사용할 경우 이름 충돌이 발생할 가능성이 줄어들기 때문에 알아두는 것이 좋습니다. 템플릿에서 만든 가상 컴퓨터의 고유 ID를 자동으로 만들도록 템플릿을 구성하거나, 템플릿을 배포할 때 사용자가 ID를 제공해야 하도록 템플릿을 구성할 수 있습니다. 템플릿은 컴퓨터 배포 시 스크립트 실행, 배포된 컴퓨터가 가입되는 도메인 또는 작업 그룹 지정 등 저장된 가상 컴퓨터에는 사용할 수 없는 추가 배포 옵션도 제공합니다.
저장된 가상 컴퓨터를 선택해야 하는 경우도 있습니다. 예를 들어 수정된 컴퓨터 이름을 사용하는 SQL Server 등의 응용 프로그램이 설치되어 있는 경우 템플릿 대신 가상 컴퓨터를 사용하여 구성된 컴퓨터의 복사본을 팀 프로젝트 라이브러리에 저장해야 합니다. 이 경우 가상 컴퓨터의 복사본을 동시에 여러 개 실행하려면 환경에서 네트워크 격리를 사용해야 합니다.
팀 프로젝트 라이브러리에 저장된 가상 컴퓨터와 가상 컴퓨터 템플릿 둘 다에서 고유 ID를 가진 가상 컴퓨터를 배포된 환경에 만들 수 있습니다.