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 워크플로에 대해 설명합니다.
아키텍처
이 아키텍처의 Visio 파일을 다운로드합니다.
데이터 흐름
이 섹션에서는 Azure Pipelines 기준 아키텍처를 읽었으며 워크로드를 Azure Virtual Machines 배포하는 세부 사항에만 중점을 두고 있다고 가정합니다.
PR 파이프라인 - 기준선과 동일
CI 파이프라인 - IaaS에 웹앱을 배포하기 위해 만든 빌드 아티팩트가 웹 배포 패키지라는 점을 제외하고 기준과 동일합니다.
CD 파이프라인 트리거 - 기준선과 동일
스테이징에 CD 릴리스 - 2개의 예외가 있는 기준과 동일: 1) 다운로드된 빌드 아티팩트가 웹 배포 패키지이고 2) 패키지가 스테이징 Azure Virtual Machine에 배포됩니다.
프로덕션에 대한 CD 릴리스 - 2개의 예외가 있는 기준과 동일합니다.
a. 프로덕션에 대한 릴리스는 준비 및 프로덕션을 교환하도록 Azure Traffic Manager를 업데이트하여 수행됩니다. 이 전략은 프로덕션이 활성화되고 스테이징이 비활성화된 두 개의 엔드포인트가 있는 Traffic Manager 프로필을 사용하여 수행할 수 있습니다. 스테이징 및 프로덕션을 교환하려면 프로덕션을 사용하지 않도록 설정하고 스테이징을 사용하도록 설정합니다.
b. 프로덕션 및 스테이징을 전환하도록 Azure Traffic Manager를 업데이트하여 롤백을 수행할 수 있습니다.모니터링 - 기준선과 동일
구성 요소
이 섹션에서는 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에서 작동하는 부하 분산 옵션을 고려합니다.
롤백, 수동 수용 테스트 및 성능 테스트와 같은 기능을 사용할 수 있도록 스테이징 및 프로덕션 이외의 환경을 구현하는 것이 좋습니다. 스테이징을 롤백 환경으로 사용하면 다른 용도로 해당 환경을 사용할 수 없게 됩니다.