IaaS용 Azure Pipelines 아키텍처

중요

IaaS 애플리케이션용 CI/CD는 Azure DevOps를 사용하여 CI/CD 파이프라인 디자인의 변형입니다. 이 문서에서는 Azure Virtual Machines 웹 애플리케이션을 배포하는 세부 사항에 중점을 둡니다.

Azure Virtual Machines는 유연하고 세부적인 컴퓨팅 관리가 필요할 때 사용자 지정 애플리케이션을 호스트하기 위한 옵션입니다. VM(가상 머신)은 개발 수명 주기 전반에 걸쳐 PaaS(Platform-as-a-Service) 제품과 동일한 수준의 엔지니어링 엄격성을 따라야 합니다. 예를 들어 자동 빌드 및 릴리스 파이프라인을 구현하여 VM에 변경 내용을 적용합니다.

이 문서에서는 Azure Pipelines의 CI(연속 통합) 및 CD(지속적인 배포) 작업 방식을 사용하여 VM에 애플리케이션 변경 내용을 배포하기 위한 고급 DevOps 워크플로에 대해 설명합니다.

아키텍처

Azure Pipelines를 사용하는 CI/CD 파이프라인의 아키텍처 다이어그램.

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

데이터 흐름

이 섹션에서는 Azure Pipelines 기준 아키텍처를 읽었으며 워크로드를 Azure Virtual Machines 배포하는 세부 사항에만 중점을 두고 있다고 가정합니다.

  1. PR 파이프라인 - 기준선과 동일

  2. CI 파이프라인 - IaaS에 웹앱을 배포하기 위해 만든 빌드 아티팩트가 웹 배포 패키지라는 점을 제외하고 기준과 동일합니다.

  3. CD 파이프라인 트리거 - 기준선과 동일

  4. 스테이징에 CD 릴리스 - 2개의 예외가 있는 기준과 동일: 1) 다운로드된 빌드 아티팩트가 웹 배포 패키지이고 2) 패키지가 스테이징 Azure Virtual Machine에 배포됩니다.

  5. 프로덕션에 대한 CD 릴리스 - 2개의 예외가 있는 기준과 동일합니다.

    a. 프로덕션에 대한 릴리스는 준비 및 프로덕션을 교환하도록 Azure Traffic Manager를 업데이트하여 수행됩니다. 이 전략은 프로덕션이 활성화되고 스테이징이 비활성화된 두 개의 엔드포인트가 있는 Traffic Manager 프로필을 사용하여 수행할 수 있습니다. 스테이징 및 프로덕션을 교환하려면 프로덕션을 사용하지 않도록 설정하고 스테이징을 사용하도록 설정합니다.
    b. 프로덕션 및 스테이징을 전환하도록 Azure Traffic Manager를 업데이트하여 롤백을 수행할 수 있습니다.

  6. 모니터링 - 기준선과 동일

구성 요소

이 섹션에서는 Azure Pipelines 기준 아키텍처 구성 요소 섹션을 읽었으며 워크로드를 Azure Virtual Machines 배포하는 세부 사항에만 중점을 두고 있다고 가정합니다.

  • Azure Virtual Machines는 Windows 또는 Linux 서버를 사용하여 주문형의 안전한 대규모 가상화 인프라를 제공합니다. Virtual Machines 이 아키텍처에서 워크로드를 호스트하는 데 사용됩니다.

  • Virtual Machine Scale Sets 동일한 부하 분산 VM 그룹을 만들고 관리할 수 있습니다. VM 인스턴스의 수는 요구 또는 정의된 일정에 따라 자동으로 늘리거나 줄일 수 있습니다. 확장 집합을 사용하여 워크로드를 호스트할 수도 있습니다.

  • Azure Traffic Manager 는 구성된 엔드포인트에 트래픽을 분산하는 데 사용할 수 있는 DNS 기반 트래픽 부하 분산 장치입니다. 이 아키텍처에서 Traffic Manager는 클라이언트의 단일 진입점이며 프로덕션 Virtual Machine 및 스테이징 Virtual Machine을 나타내는 여러 엔드포인트로 구성됩니다. 프로덕션 Virtual Machine 엔드포인트를 사용하도록 설정하고 스테이징을 사용하지 않도록 설정합니다.

대안

이 문서에서는 Azure Traffic Manager를 부하 분산 장치로 사용하는 데 중점을 둡니다. Azure는 고려할 수 있는 다양한 부하 분산 옵션을 제공합니다.

고려 사항

이 섹션에서는 Azure Pipelines 기준 아키텍처의 고려 사항 섹션을 읽었으며 워크로드를 Azure Virtual Machines 배포하기 위한 고려 사항만 중시하는 것으로 가정합니다.

운영 효율성

  • Traffic Manager는 DNS 기반이므로 IP 주소의 클라이언트 캐싱에는 대기 시간이 발생합니다. 하나의 엔드포인트를 사용하도록 설정하고 Traffic Manager에서 다른 엔드포인트를 사용하지 않도록 설정할 수 있지만 클라이언트는 DNS TTL(Time to Live)이 만료될 때까지 캐시된 IP 주소를 계속 사용합니다. 계층 4 또는 계층 7에서 작동하는 부하 분산 옵션을 고려합니다.

  • 롤백, 수동 수용 테스트 및 성능 테스트와 같은 기능을 사용할 수 있도록 스테이징 및 프로덕션 이외의 환경을 구현하는 것이 좋습니다. 스테이징을 롤백 환경으로 사용하면 다른 용도로 해당 환경을 사용할 수 없게 됩니다.

다음 단계