배치 전략 이해
이 문서에서 설명하는 아키텍처는 Blue-Green 및 Canary 배포 전략을 사용하여 최신 애플리케이션을 구축하고 배포하는 방법을 보여줍니다. 배치 전략은 응용 프로그램을 수정하거나 업그레이드할 수 있는 모델과 연습입니다. 배포 전략을 통해 DevOps 팀은 애플리케이션이 운영 환경에 배포되는 방식을 정의할 수 있습니다.
여러 배포 전략을 선택하면 관리자는 새 릴리스를 배포할 위험, 새 릴리스가 사용자에게 미치는 영향, 전략을 구현하는 데 필요한 인프라 오버헤드 간에 적절한 균형을 유지할 수 있습니다. 우리는 고객에게 애플리케이션 요구 사항에 따라 적절한 거래를 할 수 있는 다양한 옵션을 제공하고자 합니다.
블루-그린 배포 정보
Blue-Green 배포 전략의 경우 DevOps 팀은 두 개의 동일한 환경을 사용하여 새 버전의 애플리케이션을 릴리스하기를 원합니다. 두 환경 중 하나는 지정된 시간에 활성화됩니다. 애플리케이션의 현재 버전은 활성 환경에서 프로비저닝되는 반면 새 버전은 대기 환경에 배포됩니다.
대기 환경에 배치해도 활성 환경이나 사용자 트래픽에는 영향을 주지 않습니다. DevOps 릴리스 파이프라인은 새 버전에 대해 검증 테스트를 실행할 수 있으며, 승인된 후에는 사용자 트래픽을 대기 환경으로 전환하여 운영으로 승격됩니다. 이 프로세스는 애플리케이션의 새 릴리스마다 반복됩니다.
이 전략의 가장 큰 이점은 0에 가까운 다운타임과 즉각적인 롤백 기능을 제공한다는 점입니다. 새 버전에 문제가 있는 경우 트래픽은 이전 안정된 버전으로 즉시 되돌릴 수 있습니다. 그리고 대기 환경을 사용하여 애플리케이션 릴리스에서 잘못된 사항을 디버깅할 수 있습니다.
이 다이어그램은 Blue-Green 배포 아키텍처를 보여줍니다.
Blue-Green 배치 구성 요소 이해
이전 구조에는 다음 구성 요소가 있습니다.
-
지역
OCI 지역은 가용성 도메인이라고 하는 하나 이상의 데이터 센터를 포함하는 지역화된 지리적 영역입니다. 지역은 다른 지역과 독립적이며, 방대한 거리로 이들을 분리할 수 있습니다(국가 또는 대륙 간). 이 구조는 단일 영역을 사용합니다.
-
DevOps 프로젝트
CI/CD 워크플로우를 구현하는 데 필요한 DevOps 리소스의 논리적 그룹화입니다. DevOps 리소스는 아티팩트, 빌드 파이프라인, 배치 파이프라인, 외부 접속, 트리거 및 환경일 수 있습니다. DevOps 프로젝트를 사용하면 모든 DevOps 리소스에 대한 로깅, 모니터링 및 통지를 쉽게 사용으로 설정할 수 있습니다.
-
파이프라인 구축
빌드 파이프라인은 소스 코드 저장소에서 커밋 ID를 가져와서 해당 소스 코드를 사용하여 빌드 지침을 실행합니다. 빌드 파이프라인은 소프트웨어 아티팩트를 빌드, 테스트 및 컴파일하고, OCI 저장소에 아티팩트를 제공하고, 선택적으로 배치를 트리거하는 빌드 프로세스에 대한 일련의 단계를 정의합니다. 빌드 사양 파일에서 빌드 실행의 플로우와 지침을 정의합니다.
-
빌드 단계
단계는 파이프라인 실행 중 발생하는 개별 작업입니다. 여기에 언급된 다양한 빌드 단계는 관리 빌드 단계입니다. 소스 코드를 빌드하고 테스트하기 위한 관리 빌드 단계입니다. 아티팩트 전달 단계: 빌드 단계의 출력을 다양한 저장소에 푸시하는 단계입니다. 컨테이너 저장소와 배치 매니페스트를 아티팩트 레지스트리로 푸시하는 것과 같습니다. 배치 호출: 관리 빌드 단계에서 배치 파이프라인 단계로 익스포트된 변수를 구문 분석하는 동시에 빌드 단계가 완료되면 배치 파이프라인을 호출하는 단계입니다.
-
코드 저장소
DevOps 서비스에서 호스트하는 전용 Git 저장소입니다. DevOps 코드 저장소를 사용하여 소스 코드를 저장, 관리, 개발할 수 있습니다. 배치 파이프라인 대상 환경에 아티팩트 집합을 전달하고 배치하기 위한 일련의 단계입니다. 소프트웨어 릴리스의 흐름과 논리는 직렬 또는 병렬로 실행할 수 있는 단계를 정의하여 제어할 수 있습니다.
-
배포 단계
단계는 파이프라인 실행 중에 발생하는 개별 작업입니다. 여기에 언급된 다양한 빌드 단계는 다음과 같습니다.- 파란색/녹색 OKE 배치 또는 파란색/녹색 인스턴스 그룹 배치: 업데이트된 코드를 대상 환경에 배치하는 단계입니다.
- 배치 검증: 배치 검증을 위한 선택적 단계(기능을 통해)
- 제어: 승인: 대상 운용 환경에 대한 배치를 승인하는 제어 단계입니다.
- 파란색/녹색 OKE 트래픽 이동 또는 파란색/녹색 인스턴스 그룹 트래픽 이동: 운용 트래픽이 배치된 최신 환경으로 전환될 최종 단계입니다.
-
DevOps 아티팩트
DevOps 아티팩트는 애플리케이션을 구성하는 파일, 이진, 패키지, 매니페스트 또는 이미지에 대한 참조 또는 포인터입니다. 아티팩트를 생성할 때 실제 아티팩트의 소스 위치를 Oracle DevOps에 알리십시오. DevOps는 OCI 컨테이너 이미지 레지스트리 및 OCI 아티팩트 레지스트리 저장소를 지원합니다.
-
아티팩트 저장소
아티팩트 저장소는 유사한 아티팩트를 그룹화하는 저장소를 생성합니다. 저장소가 생성되면 아티팩트를 업로드할 수 있습니다. 이러한 아티팩트는 대상 배치 환경에 전달되는 텍스트 파일, 바이너리 및 배치 매니페스트 모음입니다. 각 아티팩트에는 이름(버전)이 있으며, 해당 경로로 구성됩니다. 경로는 아티팩트를 구성하는 문자열입니다.
-
OCI 로깅 및 통지 서비스
OCI 로깅 서비스는 배치와 관련된 로그를 저장합니다. 배치 런타임 출력 및 배치의 최종 결과는 로그 항목으로 표시됩니다. OCI 통지 서비스는 배치 프로젝트의 최신 상태 및 해당 리소스에 대한 가시성을 제공하며 필요한 작업을 수행합니다. 예를 들어, 승인을 대기 중인 배치 파이프라인의 단계와 같은 중요한 이벤트가 발생할 때 통지됩니다. 통지 메시지를 수신하면 DevOps 배치 파이프라인으로 이동하여 단계를 승인할 수 있습니다.
-
배치 환경
환경은 아티팩트가 배치된 고객의 컴퓨팅 리소스 모음입니다. 환경은 기능, VM(컴퓨트 가상 머신) 또는 베어메탈 인스턴스 또는 OKE 클러스터일 수 있습니다. Blue Green 배치는 OKE 클러스터 및 컴퓨트 가상 머신에서만 사용할 수 있습니다.
Blue-Green 배포의 장단점 이해
최신 애플리케이션을 배포할 때 Blue-Green 전략을 사용하는 것이 좋습니다.
- Blue Green 배포를 통해 빠르고 위험한 배포가 가능합니다.
- 이 프로세스는 효과적인 간단한 롤백 방식을 통해 활성화됩니다.
- A/B 소프트웨어 테스트를 통합관리하는 효과적인 방법입니다.
- 운영 환경이 항상 하나의 활성 환경(로드 밸런서 이후)을 통해 운영되므로 제로 또는 거의 제로 다운타임이 발생합니다.
- Blue-Green 배포 환경을 유지하려면 동일한 환경과 리소스의 상당한 비용이 필요합니다.
- 두 환경 간의 릴리스를 관리하려면 두 환경을 면밀히 모니터해야 합니다.
- 배포 간 데이터베이스 종속성 관리는 복잡합니다.
Canary 배치 정보
Canary 배포 전략을 사용하면 응용 프로그램 릴리스가 사용자 하위 세트에 증분적으로 발생합니다. 처음에는 사용자 트래픽이 없는 카나리아 환경에 새 버전이 배포됩니다. DevOps 릴리스 파이프라인은 새 버전에 대해 검증 테스트를 실행할 수 있으며, 준비되면 일부 사용자만 카나리아 환경으로 경로 지정할 수 있습니다.
이 기술을 통해 DevOps 팀은 실제 사용자 트래픽에 대해 새 응용 프로그램 버전을 평가할 수 있습니다. 새 버전을 더 큰 사용자 기반으로 롤아웃하기 전에 두 애플리케이션 버전을 나란히 비교할 수 있습니다. 또한 새 버전은 일부 사용자만 사용할 수 있으므로 위험 완화를 제공합니다. 이러한 사용자는 문제가 발생할 경우 이전 버전으로 쉽게 전환할 수 있습니다.
다음 다이어그램은 Canary 배포 전략을 보여줍니다.
Canary 배치 구성 요소 이해
이전 구조에는 다음 구성 요소가 있습니다.
-
지역
OCI 지역은 가용성 도메인이라고 하는 하나 이상의 데이터 센터를 포함하는 지역화된 지리적 영역입니다. 지역은 다른 지역과 독립적이며, 방대한 거리로 이들을 분리할 수 있습니다(국가 또는 대륙 간). 이 구조는 단일 영역을 사용합니다.
-
DevOps 프로젝트
CI/CD 워크플로우를 구현하는 데 필요한 DevOps 리소스의 논리적 그룹화입니다. DevOps 리소스는 아티팩트, 빌드 파이프라인, 배치 파이프라인, 외부 접속, 트리거 및 환경일 수 있습니다. DevOps 프로젝트를 사용하면 모든 DevOps 리소스에 대한 로깅, 모니터링 및 통지를 쉽게 사용으로 설정할 수 있습니다.
-
파이프라인 구축
빌드 파이프라인은 소스 코드 저장소에서 커밋 ID를 가져와서 해당 소스 코드를 사용하여 빌드 지침을 실행합니다. 빌드 파이프라인은 소프트웨어 아티팩트를 빌드, 테스트 및 컴파일하고, OCI 저장소에 아티팩트를 제공하고, 선택적으로 배포를 트리거하는 빌드 프로세스에 대한 일련의 단계를 정의합니다. 빌드 사양 파일에서 빌드 실행의 플로우와 지침을 정의합니다.
-
빌드 단계
단계는 파이프라인 실행 중 발생하는 개별 작업입니다. 여기에 언급된 다양한 빌드 단계는 다음과 같습니다.- 관리 빌드 단계: 소스 코드를 빌드하고 테스트하는 관리 빌드 단계입니다.
- 아티팩트 전달 단계: 빌드 단계의 출력을 다양한 저장소에 푸시하는 단계입니다. 컨테이너 저장소 및 배치 매니페스트에 대한 컨테이너 이미지와 아티팩트 레지스트리에 유사합니다.
- 배치 호출: 빌드 단계가 완료되면 배치 파이프라인을 호출하는 단계이며, 관리 빌드 단계에서 배치 파이프라인 단계로 익스포트된 변수를 구문 분석합니다.
-
코드 저장소
DevOps 서비스에서 호스트하는 전용 Git 저장소입니다. DevOps 코드 저장소를 사용하여 소스 코드를 저장, 관리, 개발할 수 있습니다.
-
배치 파이프라인
대상 환경에 아티팩트 세트를 전달하고 배치하기 위한 일련의 단계입니다. 소프트웨어 릴리스의 흐름과 논리는 직렬 또는 병렬로 실행할 수 있는 단계를 정의하여 제어할 수 있습니다.
-
배포 단계
단계는 파이프라인 실행 중에 발생하는 개별 작업입니다. 여기에 언급된 다양한 빌드 단계는 다음과 같습니다.- Canary OKE Deployment 또는 Canary Instance Group Deployment: 업데이트된 코드를 대상 카나리아 환경에 배치하는 단계입니다.
- 배치 검증: 배치 검증을 위한 선택적 단계(기능을 통해)
- Canary OKE Traffic Shift 또는 Canary Instance Group Traffic Shift: 램프 제한(교대할 트래픽의 비율)을 기준으로 카나리아 환경으로 트래픽을 전환하는 단계입니다.
- 제어: 승인: 대상 운용 환경에 대한 배치를 승인하는 제어 단계입니다.
- Canary Deploy Instance Group Production 또는 OKE Deploy Production: 운용 트래픽이 배치된 최신 환경으로 전환될 최종 단계입니다.
-
DevOps 아티팩트
DevOps 아티팩트는 애플리케이션을 구성하는 파일, 이진, 패키지, 매니페스트 또는 이미지에 대한 참조 또는 포인터입니다. 아티팩트를 생성할 때 실제 아티팩트의 소스 위치를 Oracle DevOps에 알리십시오. DevOps는 OCI 컨테이너 이미지 레지스트리 및 OCI 아티팩트 레지스트리 저장소를 지원합니다.
-
아티팩트 저장소
아티팩트 저장소는 유사한 아티팩트를 그룹화하는 저장소를 생성합니다. 저장소가 생성되면 아티팩트를 업로드할 수 있습니다. 이러한 아티팩트는 대상 배치 환경에 전달되는 텍스트 파일, 바이너리 및 배치 매니페스트 모음입니다. 각 아티팩트에는 이름(버전)이 있으며, 해당 경로로 구성됩니다. 경로는 아티팩트를 구성하는 문자열입니다.
-
OCI 로깅 및 통지 서비스
OCI 로깅 서비스는 배치와 관련된 로그를 저장합니다. 배치 런타임 출력 및 배치의 최종 결과는 로그 항목으로 표시됩니다. OCI 통지 서비스는 배치 프로젝트의 최신 상태 및 해당 리소스에 대한 가시성을 제공하며 필요한 작업을 수행합니다. 예를 들어, 승인을 대기 중인 배치 파이프라인의 단계와 같은 중요한 이벤트가 발생할 때 통지됩니다. 통지 메시지를 수신하면 DevOps 배치 파이프라인으로 이동하여 단계를 승인할 수 있습니다.
-
배치 환경
환경은 아티팩트가 배치된 고객의 컴퓨팅 리소스 모음입니다. 환경은 기능, VM(컴퓨트 가상 머신) 또는 베어메탈 인스턴스 또는 OKE 클러스터일 수 있습니다. Blue Green 배치는 OKE 클러스터 및 컴퓨트 가상 머신에서만 사용할 수 있습니다.