다음을 통해 공유


DevTest Labs 및 DevOps CI/CD 파이프라인 통합

DevOps는 소프트웨어 개발(Dev)과 시스템 운영(Ops)을 통합하는 소프트웨어 개발 방법론입니다. 이 시스템은 비즈니스 목표에 부합하는 새로운 소프트웨어 기능, 업데이트 및 수정 사항을 제공합니다.

DevOps 방법론은 다음도 다룹니다.

  • 목표, 사용 패턴 및 고객 피드백을 기반으로 새로운 기능을 설계합니다.
  • 문제가 발생할 때 시스템을 수정, 복구 및 강화합니다.

DevOps 방법론의 한 구성 요소는 CI(연속 통합) 및 CD(지속적인 업데이트) 파이프라인입니다. CI/CD 파이프라인은 일련의 단계를 통해 원본 제어 커밋에서 정보, 코드 및 리소스를 이동하여 시스템을 생성합니다. 단계에는 빌드, 테스트 및 릴리스가 포함됩니다.

CI/CD 파이프라인에서 Azure DevTest Labs를 사용할 수 있습니다. 이 문서에서는 엔터프라이즈 환경의 CI/CD 빌드 및 릴리스 파이프라인에서 DevTest Labs를 사용하는 방법에 대해 설명합니다.

DevOps 워크플로에서 DevTest Labs의 이점

랩은 기능 영역에서 작업하는 팀에 집중해야 합니다. 이 공통된 초점은 더 빠른 변경을 가능하게 하면서 부정적인 영향을 더 작게 제한합니다. 변경 또는 문제는 다른 어떤 것에도 영향을 주지 않고 랩 환경에서 발생합니다.

공통 초점을 통해 도구, 스크립트 및 ARM(Azure Resource Manager) 템플릿과 같은 영역별 리소스를 공유할 수 있습니다. 개발자는 공유 리소스를 사용하여 필요한 모든 코드, 도구 및 구성이 포함된 VM(가상 머신)을 만들 수 있습니다. ARM 템플릿은 적절한 Azure 리소스를 사용하여 랩 VM 및 랩 환경을 만듭니다. 템플릿은 리소스를 동적으로 만들거나 사용자 지정이 포함된 기본 이미지를 만들어 리소스를 만듭니다.

예를 들어, 제품이 고객의 컴퓨터에 설치되는 독립 실행형 시스템인 시나리오를 고려합니다. DevTest Labs는 빠른 내부 루프 코드 테스트를 위해 고객 소프트웨어, 아티팩트 및 구성이 설치된 랩 VM을 만들 수 있습니다.

다음은 DevOps 워크플로에서 랩을 사용할 때의 몇 가지 이점입니다.

  • 집중 액세스: 랩을 구성 요소로 사용하면 특정 에코시스템을 제한된 사람들과 연결합니다. 일반적으로 공통 영역이나 특정 기능에서 작업하는 팀이나 그룹에는 랩이 할당되어 있습니다.

  • 클라우드의 인프라 복제: 개발자는 소스 코드와 도구가 있는 개발자 VM을 포함하는 개발 에코시스템을 빠르게 설정할 수 있습니다. 개발자는 더 빠른 내부 루프 개발을 위해 프로덕션 구성과 거의 동일한 환경을 만들 수도 있습니다.

  • 사전 프로덕션 환경: CI/CD 파이프라인의 랩은 비동기 테스트를 위해 여러 다른 프로덕션 전 환경이나 컴퓨터를 동시에 실행할 수 있습니다. 랩에서 다양한 지원 인프라를 배포 및 관리하고 에이전트를 빌드할 수 있습니다.

CI/CD 파이프라인에서 랩 사용

CI/CD 파이프라인은 중요한 DevOps 구성 요소입니다. 파이프라인은 개발자의 끌어오기 요청 코드를 기존 코드와 통합하고 코드를 프로덕션 에코시스템에 배포합니다. DevTest Labs 통합의 경우 모든 리소스가 랩에 있을 필요는 없습니다. 예를 들어 보다 지속적인 리소스를 위해 랩 외부에 Jenkins 호스트를 설정할 수 있습니다. 다음은 랩을 CI/CD 파이프라인에 통합하는 몇 가지 구체적인 예입니다.

빌드

빌드 파이프라인은 함께 테스트하고 릴리스로 전달할 구성 요소 패키지를 만듭니다. 동적으로 인프라를 빌드하면 더 큰 제어가 가능합니다. 랩은 빌드 에이전트 및 기타 지원 리소스의 위치로서 빌드 파이프라인의 일부가 될 수 있습니다. DevTest Labs는 랩 액세스를 제한하여 빌드 에이전트의 보안을 강화하고 우발적인 손상 가능성을 줄입니다.

랩에 여러 환경을 가질 수 있는 기능으로 각 빌드를 비동기식으로 실행할 수 있습니다. 빌드 ID는 특정 빌드에서 리소스를 고유하게 식별하는 환경 정보의 일부입니다.

테스트

CI/CD 파이프라인은 자동화된 테스트 및 수동 테스트를 위한 VM 및 환경과 같은 DevTest Labs 리소스 만들기를 자동화할 수 있습니다. 파이프라인은 빌드 정보 아티팩트 또는 수식을 사용하여 다양한 사용자 지정 테스트 구성으로 VM을 만듭니다.

Release

릴리스 프로세스는 코드가 배포되기 전에 검증을 위해 DevTest Labs를 사용할 수 있습니다. 프로세스는 테스트와 유사합니다. 프로덕션 리소스는 DevTest Labs에 배포하면 안 됩니다.

사용자 지정

Azure DevOps Services의 구성 요소인 Azure Pipelines에는 특정 랩 내에서 VM 및 환경을 조작하는 기존 작업이 있습니다. Azure Pipelines는 CI/CD 파이프라인을 관리하는 한 가지 방법입니다. REST API 호출, PowerShell 스크립트 실행 또는 Azure CLI 사용을 지원하는 모든 시스템에 랩을 통합할 수 있습니다.

일부 CI/CD 파이프라인 관리자에는 Azure 및 DevTest Labs 리소스를 관리할 수 있는 기존 오픈 소스 플러그 인이 있습니다. 파이프라인의 요구 사항에 맞게 사용자 지정 스크립팅을 사용해야 할 수도 있습니다. 작업을 실행할 때 적절한 역할(일반적으로 기여자)이 있는 서비스 주체를 사용하여 랩에 액세스합니다.

다음 단계