배포 전략

신동수·2024년 3월 25일
0

잡동사니

목록 보기
8/17

인플레이스 배포


사용중인 환경에 새로운 변경사항이 포함된 어플리케이션만 반영하는 방법이다.

장점:

  • 인플레이스 배포는 배포 프로세스가 비교적 단순하며, 새로운 버전을 기존 시스템에 빠르게 적용할 수 있다.
  • 이전 버전을 중지하고 새로운 버전을 설치한 후 다시 시작하는 과정이 빠르게 진행될 수 있다.
  • 모든 서버 인스턴스를 즉시 업데이트하기 때문에, 새로운 기능이나 버그 수정이 즉시 모든 사용자에게 적용된다.

단점:

  • 인플레이스 배포는 업데이트 과정 중에 애플리케이션이 일시적으로 중지되기 때문에, 사용자에게 일시적인 다운타임을 제공해야 합니다. (가용성이 낮아짐)
  • 배포 프로세스가 단순하고 빠르게 진행될 수 있지만, 잠시 동안의 다운타임이 있을 수 있어서 큰 규모의 서비스나 중요한 시스템에서는 적합하지 않을 수 있다.

롤링 배포


롤링 배포는 애플리케이션이 실행 중인 인스턴스를 갖춘 환경에서 정해진 수만큼의 서버를 새로운 버전의 애플리케이션으로 점진적으로 교체하는 배포 방법이다.

장점

  • 가용 자원이 한정적일 경우 사용될 수 있는 유용한 방법이다.
  • 일부 인스턴스만 종료되므로 서비스의 다운타임을 가지지 않고 배포할 수 있다.

단점

  • 배포가 진행중에는 서비스내에서 구버전과 신버전이 공존하기 때문에 호환성 문제를 염두에 두고 대응방안을 준비해야 한다.
  • 제한된 자원 내에서 사용할 수 있지만, 구 버전의 인스턴스를 종료하고 신 버전의 인스턴스를 생성하는 과정에서 서버부하를 서비스에 부족하지 않도록 미리 고려해야 한다.

인플레이스와 롤링의 차이

인플레이스 배포는 한 번에 전체 시스템을 업데이트하고 다운타임이 발생할 수 있지만 빠른 배포가 가능하며, 롤링 배포는 다운타임 없이 서비스의 지속적인 가용성을 유지하면서 점진적으로 업데이트를 진행하는 방식의 차이가 있다.

블루/그린 배포


블루/그린 배포는 구 버전을 운영하면서 신 버전의 환경을 구축하고 테스트 후 서비스를 점진적으로 전환하는 배포 방법이다.

장점

  • 새 버전으로 사용자 트래픽을 이전하면서 문제가 생길 시, 구 버전으로 롤백이 용이하다. (인플레이스 배포보다 빠르다.)
  • 거의 동일하게 구성된 환경을 구축해놓으면 문제가 생길 시 가동 중단 시기를 최소화 할 수 있다.
  • 사용하지 않는 환경은 백업 또는 테스트 서버로 활용할 수 있다.

단점

  • 블루/그린 두 가지 환경을 구축해야 하기 때문에 시스템 자원을 두 배로 필요로 한다.

카나리 배포


카나리아 배포는 가동 중인 서버의 일부 인스턴스만 신 버전의 애플리케이션으로 교체하면서 프로덕션 환경에서 새로운 소프트웨어 버전을 도입함으로써 생기는 위험을 줄여주는 배포 방법이다.
일부 트래픽을 신 버전의 환경에 분산 배포하면서 문제가 발견되지 않으면 신 버전의 환경으로 점차 트래픽을 이동시키거나 다시 구 버전으로 되돌릴 수 있다.

장점

  • 특정 서버에만 배포함으로써 신 버전의 오류 및 성능을 모든 서버에 배포하기전에 미리 모니터링할 수 있다.
  • 여러가지 방법으로 신버전을 체험하는 사용자를 분류할 수 있다.

단점

  • 동시에 여러 개의 소프트웨어 버전을 관리해야 한다.

블루/그린 카나리 배포 차이

블루/그린 배포는 다운타임 없이 프로덕션 환경에서 앱을 안전하게 업데이트하기 위한 릴리스 전략으로 새 버전의 검증 테스트를 거치며 안전해지면 구 버전에서 새 버전으로 이동하고 구 버전은 대기 상태로 유지된다.
새로운 버전에 문제가 있는 경우 사용자는 구 버전으로 이동되며 눈치채지 못하는 사이 원활한 전환과 최대 가동 시간을 보장한다.
따라서 블루-그린 배포는 전체적인 트래픽이 이동하지만, 카나리아 배포는 특정 사용자를 표적으로 업데이트 하기 때문에 일부 트래픽만 다른 환경으로 나뉜다는 차이가 있다.

profile
조금씩 성장하는 DevOps 엔지니어가 되겠습니다. 😄

0개의 댓글