배포자동화가 해결해야할 문제 : 컷오버할때 다운타임을 최소화 시키는것 (무중단배포)
컷오버를 해결하기 위한 전략
이전 버전에 있던 사용자 트래픽을 이전 버전과 거의 동일한 새 버전으로 점진적으로 이전하는 애플리케이션 릴리스 모델입니다.
블루 / 그린 배포의 원칙
두 환경은 다르지만, 최대한 동일해야 합니다.
무중단 배포여야 합니다.
한 시점에 하나의 버전만 액티브 상태여야 하며, 롤백이 쉬워야 합니다.
롤링 배포는 애플리케이션이 실행 중인 인프라를 완전히 교체하여 이전 버전의 애플리케이션을 새로운 버전의 애플리케이션으로 서서히 교체하는 배포 전략입니다.
롤링 배포는 가용 자원이 제한적일 경우에 사용 됩니다.
롤링 배포의 단점
배포가 진행되는 동안 구버전과 신버전이 공존하기 때문에 호환성 문제가 발생할 수 있습니다.
배포중인 서버는 서비스가 중단된 상태이기 때문에 서버 부하량을 체크하며 배포를 진행해야 합니다.
광부들이 광산으로 들어갈 때 새장에 카나리아를 넣어 가져가는 것에서 유래된 기법으로 전체 서버중 일부만 배포를 진행하여 버그가 없으면 모든 서버에 새로운 버전을 단계적으로 배포하는 방식
카나리 배포 장점
문제 발생 시 먼저 배포가 진행되었던 서버만 롤백 하면 됨으로 비교적 롤백이 간편합니다.
운영 환경에서 신규버전을 테스트 할 수 있습니다.
특정 서버로 먼저 배포를 진행하기 때문에 문제 발생시 리스크가 비교적 적습니다.
블루/그린 배포는 동일한 환경의 두 배의 시스템자원을 준비하여 신버전이 생기면 일제히 신 버전 서버로 이동하는 방식
장점으로는 버그 발생시 빠른 롤백이 가능하고 신버전이 이전버전의 환경에 전혀 영향을 주지 않으며 실제 서비스 환경으로 신 버전 테스트가 가능하다는 장점이 있지만 똑같은 양에 서버를 하나 더 갖춰야 하기 때문에 비용이 많이 들어가게 됨
롤링 배포는 애플리케이션이 실행 중인 인프라를 완전히 교체하여 이전 버전의 애플리케이션을 새로운 버전의 애플리케이션으로 서서히 교체하는 배포 전략으로 롤링 배포는 가용 자원이 제한적일 경우에 사용됨 단점으로는 배포가 진행되는 동안 구버전과 신버전이 공존하기 때문에 호환성 문제가 발생할 수 있고, 배포중인 서버는 서비스가 중단된 상태이기 때문에 서버 부하량을 체크하며 배포를 진행해야 함
카나리 배포는 지정한서버, 특정user들에게만 신버전을 배포했다가 문제가 없을시 전체적으로 신버전을 배포하는 형식으로 위험을 빠르게 감지할 수 있는 배포전략이라고 할 수 있음.
장점으로는 문제 발생 시 먼저 배포가 진행되었던 서버만 롤백 하면 됨으로 비교적 롤백이 간편하고 특정 서버로 먼저 배포를 진행하기 때문에 문제 발생시 리스크가 비교적 적음
배포 전략 | 블루/그린 | 롤링 | 카나리 |
---|---|---|---|
리스크 | 0 | 2 | 1 |
비용 | 2 | 0 | 1 |