Azure 가상 아키텍처에서 Jenkins 및 Terraform을 사용한 변경이 불가능한 인프라 CI/CD 개요

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

Jenkins Azure Virtual MachineScale Sets Terraform Azure Managed Disks(VM Image) Packer GitHub Engineer Azure Log Analytics 1 7 6 5 5 5 4 4 2 3 Visual Studio Code

응용 프로그램 원본 코드를 변경합니다.

코드를 GitHub에 커밋합니다.

Jenkins에 대한 지속적인 통합 트리거.

Jenkins는 Packer 이미지 빌드를 트리거하여 VM을 만들고 Azure Managed Disks를 사용하여 VM 이미지로 저장합니다.

Jenkins는 Terraform을 트리거하여 Azure Managed Disks VM 이미지를 통해 새 가상 머신 확장 집합을 프로비전합니다.

Operations Management Suite Log Analytics는 로그를 수집하고 분석합니다.

응용 프로그램을 모니터링하고 개선합니다.

  1. 1 응용 프로그램 원본 코드를 변경합니다.
  2. 2 코드를 GitHub에 커밋합니다.
  3. 3 Jenkins에 대한 지속적인 통합 트리거.
  4. 4 Jenkins는 Packer 이미지 빌드를 트리거하여 VM을 만들고 Azure Managed Disks를 사용하여 VM 이미지로 저장합니다.
  1. 5 Jenkins는 Terraform을 트리거하여 Azure Managed Disks VM 이미지를 통해 새 가상 머신 확장 집합을 프로비전합니다.
  2. 6 Operations Management Suite Log Analytics는 로그를 수집하고 분석합니다.
  3. 7 응용 프로그램을 모니터링하고 개선합니다.

구현 지침

제품/설명 설명서

Managed Disks

Azure 가상 머신을 위한 영구 보안 디스크 저장소.

가상 머신 크기 집합

Linux 및 Windows 가상 머신을 수천 대까지 관리 및 확장합니다.

Log Analytics

온-프레미스 및 클라우드에서 컴퓨터 데이터를 수집, 검색, 시각화합니다.

Visual Studio 코드

Azure 서비스를 최대로 활용하기 위한 다중 플랫폼 앱을 빌드하고 배포합니다.

관련 솔루션 아키텍처

Visual Studio Team Services Git Visual Studio Team Services CI Visual Studio Team Services CD Engineer Visual Studio Azure Application Insights Azure Web Apps 2 1 7 3 4 5 6 Visual Studio Team Services Backlog 8

Azure Web Apps의 CI/CD

Azure Web Apps는 ASP.NET, Java, Node.js 또는 PHP를 사용하여 웹앱을 만드는 빠르고 간단한 방법입니다. 각 변경 내용을 자동으로 Web Apps에 푸시하는 CI/CD(지속적인 통합 및 지속적인 배포) 파이프라인을 통해 고객에게 더 빠르게 가치를 전달합니다.

Jenkins Azure ContainerRegistry Azure ContainerService (ManagedKubernetes) Azure CosmosDB GitHub Visual Studio Code Engineer Grafana Azure Monitor 1 8 2 3 5 4 6 7 7

AKS(Azure Container Service)에서 Jenkins 및 Kubernetes를 사용한 컨테이너 CI/CD

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