Azure VM의 CI/CD

Azure는 Windows 또는 Linux를 실행하는 가상 머신을 호스팅하기 위한 세계적 수준의 클라우드입니다. 응용 프로그램을 개발하는 데 ASP.NET, Java, Node.js 또는 PHP 중 무엇을 사용하는지와 관계없이 변경 내용을 이러한 가상 머신으로 자동으로 푸시하려면 CI/CD(지속적인 통합 및 지속적인 배포) 파이프라인이 필요합니다.

Visual Studio Team Services는 응용 프로그램 소스 코드와 인프라 코드(ARM 템플릿)를 관리하기 위한 Git 리포지토리부터, 패키지 및 기타 빌드 아티팩트를 생성하기 위한 빌드 시스템과 개발, 테스트 및 프로덕션 환경을 통해 변경 내용을 배포하기 위한 파이프라인 설정을 위한 Release Management 시스템에 이르기까지 CI/CD 파이프라인을 제공합니다. 이 파이프라인에서는 ARM 템플릿을 사용하여 각 환경에서 필요에 따라 인프라를 프로비전하거나 업데이트한 다음, 업데이트된 빌드를 배포합니다. Azure Dev/Test Lab을 사용하여 사용되지 않는 테스트 리소스를 자동으로 분해할 수도 있습니다.

Visual StudioTeam Services Git Visual StudioTeam Services CI Visual StudioTeam Services Backlog Visual StudioTeam Services CD AzureVirtual Machines Azure DevTestLabs AzureVirtual Machines 3 2 1 4 6 5 8 8 8 9 7 AzureApplication Insights Visual Studio Engineer 10

응용 프로그램 소스 코드 변경

응용 프로그램 코드 및 ARM(Azure Resource Manager) 템플릿 커밋

지속적인 통합은 응용 프로그램 빌드 및 단위 테스트를 트리거함

지속적인 배포 트리거는 환경별 매개 변수를 사용하여 응용 프로그램 아티팩트의 배포를 오케스트레이션함

QA 환경에 배포

스테이징 환경에 배포

프로덕션 환경에 배포

Application Insights는 상태, 성능 및 사용 현황 데이터를 수집 및 분석함

상태, 성능 및 사용량 정보를 검토함

백로그 항목을 업데이트함

  1. 1 응용 프로그램 소스 코드 변경
  2. 2 응용 프로그램 코드 및 ARM(Azure Resource Manager) 템플릿 커밋
  3. 3 지속적인 통합은 응용 프로그램 빌드 및 단위 테스트를 트리거함
  4. 4 지속적인 배포 트리거는 환경별 매개 변수를 사용하여 응용 프로그램 아티팩트의 배포를 오케스트레이션함
  5. 5 QA 환경에 배포
  1. 6 스테이징 환경에 배포
  2. 7 프로덕션 환경에 배포
  3. 8 Application Insights는 상태, 성능 및 사용 현황 데이터를 수집 및 분석함
  4. 9 상태, 성능 및 사용량 정보를 검토함
  5. 10 백로그 항목을 업데이트함

구현 지침

관련 솔루션 아키텍처

Visual StudioTeam Services Git Visual StudioTeam Services CI Visual StudioTeam Services CD Azure Container Service(Managed Kubernetes) Azure ContainerRegistry 3 5 4 7 6 Engineer Visual Studio Azure ApplicationInsights 1 9 8 Visual StudioTeam Services Backlog 2 10

컨테이너의 CI/CD

컨테이너를 통해 매우 손쉽게 응용 프로그램을 지속적으로 빌드 및 배포할 수 있습니다. Azure Container Service에서 Kubernetes를 사용하여 해당 컨테이너의 배포를 오케스트레이션하는 방식으로 컨테이너의 복제 가능하고 관리 가능한 클러스터를 얻을 수 있습니다.

Jenkins Azure ContainerInstances AzureFiles Azure WebApps Azure Databasefor MySQL GitHub IntelliJ Engineer ApplicationInsights 1 8 2 3 4 5 6 7 7

Jenkins 및 Azure Web Apps를 사용한 Java CI/CD

Azure App Service는 Java, Node, PHP 또는 ASP.NET을 사용하여 웹앱을 만들고 Docker를 사용하여 사용자 지정 언어 런타임을 지원하는 빠르고 간단한 방법입니다. 각 변경 내용을 자동으로 Azure App Service에 푸시하는 CI/CD(지속적인 통합 및 지속적인 배포) 파이프라인을 통해 고객에게 더 빠르게 가치를 전달할 수 있습니다.