Azure Pipelines를 사용하는 AKS 앱용 CI/CD

Azure Container Registry
Azure DevOps
AKS(Azure Kubernetes Service)
GitHub

Important

AKS 및 Azure DevOps를 사용하는 마이크로 서비스는 Azure DevOps를 사용하여 CI/CD 파이프라인 설계의 변형입니다. 이 문서에서는 Azure Pipelines를 사용하여 AKS 애플리케이션을 배포하는 AKS 관련 패싯에 중점을 둡니다.

잠재적인 사용 사례

Azure Pipelines를 사용하여 AKS 애플리케이션을 배포합니다.

아키텍처

Architecture diagram of an AKS CI/CD pipeline using Azure Pipelines.

이 아키텍처의 Visio 파일을 다운로드합니다.

데이터 흐름

  1. Azure Repos Git에 대한 PR(끌어오기 요청)은 PR 파이프라인을 트리거합니다. 이 파이프라인은 코드 린팅, 빌드 및 단위 테스트와 같은 빠른 품질 검사를 실행합니다. 검사 중 하나라도 실패하면 PR이 병합되지 않습니다. 이 파이프라인의 성공적인 실행 결과는 PR의 성공적인 병합입니다.
  2. Azure Repos Git에 대한 병합은 CI 파이프라인을 트리거합니다. 이 파이프라인은 몇 가지 중요한 추가 사항이 있는 PR 파이프라인과 동일한 작업을 실행합니다. CI 파이프라인은 통합 테스트를 실행합니다. 이러한 테스트에는 비밀이 필요하므로 이 파이프라인은 Azure Key Vault에서 해당 비밀을 가져옵니다.
  3. 이 파이프라인을 성공적으로 실행한 결과는 비프로덕션 Azure Container Registry에서 컨테이너 이미지를 만들고 게시한 결과입니다.
  4. CI 파이프라인이 완료되면 CD 파이프라인이 트리거됩니다.
  5. CD 파이프라인은 준비 AKS 환경에 YAML 템플릿을 배포합니다. 템플릿은 비프로덕션 환경의 컨테이너 이미지를 지정합니다. 그런 다음, 파이프라인은 스테이징 환경에 대해 승인 테스트를 수행하여 배포의 유효성을 검사합니다. 테스트가 성공하면 수동 유효성 검사 작업이 실행되므로 배포의 유효성을 검사하고 파이프라인을 다시 시작해야 합니다. 수동 유효성 검사 단계는 선택 사항입니다. 일부 조직에서는 자동으로 배포됩니다.
  6. 수동 개입이 재개되면 CD 파이프라인은 비프로덕션 Azure Container Registry에서 프로덕션 레지스트리로 이미지를 승격합니다.
  7. CD 파이프라인은 프로덕션 AKS 환경에 YAML 템플릿을 배포합니다. 템플릿은 프로덕션 환경의 컨테이너 이미지를 지정합니다.
  8. Container Insights는 주기적으로 성능 메트릭, 인벤토리 데이터 및 상태 정보를 컨테이너 호스트 및 컨테이너에서 Azure Monitor로 전달합니다.
  9. Azure Monitor는 작업자가 상태, 성능 및 사용 데이터를 분석할 수 있도록 로그 및 메트릭과 같은 가시성 데이터를 수집합니다. Application Insights는 추적과 같은 모든 애플리케이션 관련 모니터링 데이터를 수집합니다. Azure Log Analytics는 이러한 모든 데이터를 저장하기 위해 사용됩니다.

구성 요소

  • Container Insights는 로그 및 메트릭과 로그를 수집하고 Azure Monitor에 전달합니다.
  • Azure Container Registry는 Azure의 관리형 프라이빗 컨테이너 레지스트리 서비스입니다. Container Registry를 사용하여 프라이빗 컨테이너 이미지를 저장합니다.
  • Azure Kubernetes Service는 Azure가 상태 모니터링 및 유지 관리와 같은 중요한 작업을 처리하는 관리되는 Kubernetes 서비스입니다.
  • Defender for DevOps 는 정적 분석을 수행하고 AKS 개발 및 배포의 여러 파이프라인에서 보안 상태를 파악하는 데 도움이 됩니다.

다음 단계