9.3. 배포 전략
9.3.1. 배포 전략이란 무엇입니까?
배포 전략은 애플리케이션을 변경하거나 업그레이드하는 방법입니다. 사용자가 개선 작업을 거의 알아채지 못하도록 다운타임 없이 변경하는 것이 목표입니다.
가장 일반적인 전략은 Blue-Green 배포를 사용하는 것입니다. 테스트 및 평가를 위해 새 버전(Blue 버전)이 제공되며 사용자는 여전히 안정적인 버전(Green 버전)을 사용합니다. 준비가 되면 사용자가 파란색 버전으로 전환됩니다. 문제가 발생하면 녹색 버전으로 다시 전환할 수 있습니다.
일반적인 대체 전략은 동시에 활성 상태인 A/B 버전을 사용하는 것이며 일부 사용자는 한 버전을 사용하며 일부 사용자는 다른 버전을 사용합니다. 이 전략은 사용자 인터페이스 변경 및 기타 기능을 실험하여 사용자 피드백을 받는 데 사용할 수 있습니다. 또한 문제가 제한된 수의 사용자에게 영향을 미치는 프로덕션 컨텍스트에서 작업이 적절한지 확인하는 데 사용할 수도 있습니다.
카나리아 배포는 새 버전을 테스트하지만 문제가 발견되면 신속하게 이전 버전으로 대체합니다. 이는 위의 두 전략 모두에서 수행할 수 있습니다.
경로 기반 배포 전략에서는 서비스의 Pod 수를 확장하지 않습니다. 원하는 성능 특성을 유지하려면 배포 구성을 확장해야 할 수 있습니다.
배포 전략을 선택할 때 고려해야 할 사항이 있습니다.
- 장기간 실행 중인 연결을 정상적으로 처리해야 합니다.
- 데이터베이스 변환은 어려울 수 있으며 애플리케이션과 함께 수행하고 롤백해야 합니다.
- 애플리케이션이 마이크로 서비스의 하이브리드인 경우 전환을 완료하기 위해 기존 구성 요소 다운 타임이 필요할 수 있습니다.
- 이를 위해서는 인프라가 필요합니다.
- 격리되지 않은 테스트 환경이 있는 경우 새 버전과 이전 버전을 모두 중단할 수 있습니다.
최종 사용자는 일반적으로 라우터에서 처리하는 경로를 통해 애플리케이션에 액세스하므로 배포 전략에서는 배포 구성 기능 또는 라우팅 기능에 중점을 둘 수 있습니다.
배포 구성에 중점을 둔 전략은 애플리케이션을 사용하는 모든 경로에 영향을 미칩니다. 라우터 기능을 사용하는 전략은 개별 경로를 대상으로 합니다.
많은 배포 전략은 배포 구성을 통해 지원되며 일부 추가 전략은 라우터 기능을 통해 지원됩니다. 배포 구성 기반 전략에 대해서는 이 섹션에서 설명합니다.
- 롤링 전략 및 카나리아 배포
- 재현 전략
- 사용자 정의 전략
- 경로를 사용한 Blue-Green 배포
- A/B 배포 및 경로를 사용하는 카나리아 배포
- 서비스 1개, 다중 배포 구성
롤링 전략은 배포 구성에 전략이 지정되지 않은 경우 사용되는 기본 전략입니다.
배포 전략에서는 준비 상태 점검을 사용하여 새 Pod를 사용할 준비가 되었는지 확인합니다. 준비 상태 점검에 실패하면 배포 구성이 시간 초과될 때까지 포드를 다시 실행하려고 합니다. 기본 타임아웃은 dc.spec.strategy.*params
의 TimeoutSeconds
에 설정된 값인 10m
입니다.