DevOps는 Ops(시스템 작업)와 Dev(소프트웨어 개발)를 통합하는 소프트웨어 개발 방법론입니다. 이 시스템은 비즈니스 목표에 맞는 새로운 소프트웨어 기능, 업데이트 및 수정 사항을 제공하는 데 도움이 됩니다.
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 워크플로에서 랩을 사용할 때의 몇 가지 이점입니다.
랩을 구성 요소로 사용하면 특정 에코시스템을 제한된 사용자와 연결합니다. 일반적으로 공통 영역 또는 특정 기능에서 작업하는 팀 또는 그룹에는 랩이 할당되어 있습니다. Usually, a team or group working in a common area or a specific feature has a lab assigned to them.
클라우드의 인프라 복제. 개발자는 소스 코드 및 도구가 있는 개발자 VM을 포함하는 개발 에코시스템을 신속하게 설정할 수 있습니다. 더 빠른 내부 루프 개발을 사용하도록 설정하기 위해 개발자는 프로덕션 구성과 거의 동일한 환경을 만들 수도 있습니다.
비동기 테스트를 사용하도록 설정하기 위해 CI/CD 파이프라인의 랩은 여러 가지 사전 프로덕션 환경 또는 컴퓨터를 동시에 실행할 수 있습니다. 랩에서 다양한 지원 인프라를 배포 및 관리하고 에이전트를 빌드할 수 있습니다. You can deploy and manage different support infrastructures and build agents in a lab.
CI/CD 파이프라인에서 테스트 환경 사용
CI/CD 파이프라인은 중요한 DevOps 구성 요소입니다. 파이프라인은 개발자의 끌어오기 요청의 코드를 기존 코드와 통합하고 코드를 프로덕션 에코시스템에 배포합니다. DevTest Labs 통합의 경우 모든 리소스가 랩에 있어야 하는 것은 아닙니다. 예를 들어 더 영구적인 리소스를 위해 랩 외부에서 Jenkins 호스트를 설정할 수 있습니다. 다음은 랩을 CI/CD 파이프라인에 통합하는 몇 가지 구체적인 예입니다.
Build
빌드 파이프라인은 함께 테스트하고 출시할 구성 요소 패키지를 생성하여 넘겨줍니다. 인프라를 동적으로 빌드하면 더 큰 제어가 가능합니다. 랩은 빌드 에이전트 및 기타 지원 리소스의 위치로 빌드 파이프라인의 일부가 될 수 있습니다. DevTest Labs는 랩 액세스를 제한할 수 있습니다. 이렇게 하면 빌드 에이전트에 대한 보안이 강화되고 실수로 손상될 가능성이 줄어듭니다.
랩에 여러 환경이 있을 수 있으므로 각 빌드를 비동기적으로 실행할 수 있습니다. 빌드 ID는 특정 빌드의 리소스를 고유하게 식별하는 환경 정보의 일부입니다.
Test
CI/CD 파이프라인은 자동화된 수동 테스트를 위해 VM 및 환경과 같은 DevTest Labs 리소스를 자동으로 만들 수 있습니다. 파이프라인은 빌드 정보 아티팩트 또는 수식을 사용하여 다른 사용자 지정 테스트 구성이 있는 VM을 만듭니다.
Release
릴리스 프로세스는 코드를 배포하기 전에 DevTest Labs를 사용하여 확인을 수행할 수 있습니다. 이 프로세스는 테스트와 유사합니다. 프로덕션 리소스는 DevTest Labs에 배포해서는 안 됩니다.
Customization
Azure DevOps Services의 구성 요소인 Azure Pipelines는 특정 랩에서 VM 및 환경을 조작하기 위한 기존 작업을 제공합니다. Azure Pipelines는 CI/CD 파이프라인을 관리하는 한 가지 방법입니다. REST API 호출, PowerShell 스크립트 실행 또는 Azure CLI 사용을 지원하는 모든 시스템에 랩을 통합할 수 있습니다.
일부 CI/CD 파이프라인 관리자에는 Azure 및 DevTest Labs 리소스를 관리할 수 있는 기존 오픈 소스 플러그 인이 있습니다. 파이프라인의 요구 사항에 맞게 사용자 지정 스크립팅을 사용해야 할 수도 있습니다. 작업을 수행할 때, 적절한 역할(일반적으로 기여자)이 부여된 서비스 주체를 사용하여 랩에 접근하십시오.