무중단 배포

유수민·2022년 7월 11일
0

지식창고

목록 보기
35/64

📌무중단 배포란?

애플리케이션의 중단 없이 배포를 하는 것

📌초기 배포 방식

📖Recreate

가장 단순한 배포 전략으로, 기존 버전의 서버를 모두 삭제한 다음 새로운 버전의 서버를 생성하는 방법이다.

출처) https://yongdev91.tistory.com/23

📚장점 

  • 자원 사용량이 증가하지 않아, 비용 상의 이점이 있다.
  • 네트워크 변경등이 불필요

📚단점 

  • Downtime(중단시간) 존재

DownTime을 없애기 위해 무중단 배포가 등장하였다.

📌무중단 배포 방식

📖1. Rolling

사용 중인 인스턴스 내에서 새 버전을 점진적으로 교체하는 것. 즉, 배포된 서버를 한 대씩 구버전에서 새 버전으로 교체하는 것

출처) https://dunchi.tistory.com/69

📚장점

  • 인스턴스마다 차례로 배포를 진행하기에 상황에 따라 손쉽게 롤백이 가능하다.
  • 인프라에 구성된 현재 자원을 그대로 유지하고 무중단 배포가 가능하다.
    → 기존의 서버의 연결을 끊고 그 자리에 새로운 서버로 대치시켜버리니 기존의 자원에 크게 줄이거나 늘일 필요가 없는 것이다

📚단점

  • 배포 속도가 느리다.
  • 새 버전을 배포할때 인스턴스의 수가 감소하기 때문에 사용 중인 인스턴스에 트래픽이 몰릴 수 있다.  즉, 업데이트 도중에 일부 서버를 필연적으로 끊어야 하기 때문에 서버 과부하가 발생할 가능성이 높다.
  • 배포 중 인스턴스의 수가 감소 되므로 서버 처리 용량을 미리 고려해야 한다
  • 배포가 진행될때 구버전과 신버전이 공존하기에 호환성 문제가 발생할 수 있다.
    → 배포가 끝나기 전까지는 이전 버전을 서비스 받는 유저와 신규 버전을 서비스 받는 유저가 공존

📖2. BlueGreen

블루는 구버전, 그린은 신버전을 의미한다.

운영중인 구버전과 동일하게 신버전의 인스턴스를 구성한 후 로드밸런서를 통해 모든 트래픽을 한번에 신버전 쪽으로 전환 하는 방식이다.

출처) https://dunchi.tistory.com/69

📚장점.

  • 새롭게 배포할 환경에만 배포하면 되기 때문에 배포 속도가 매우 빠르다
  • 구버전의 인스턴스가 그대로 남아있어서 손쉬운 롤백이 가능하다.
  • 구버전의 환경을 다음 배포에 재사용할 수 있다.
  • 운영환경에 영향을 주지 않고 새 버전 테스트 가능하다.

📚단점.

  • 구 버전과 신 버전을 동시에 갖추어야하므로 시스템 자원이 두배로 필요하다.
  • 새로운 환경에 대한 테스트가 전제되어야 한다.

📖3. Canary

신버전을 소수의 유저들에게만 배포를 해보고 문제가 없는것을 확인해가며 점차 많은 유저들에게 배포하는 기법이다. 새 버전을 구성하고 트래픽 일부를 분산 처리한다. 트래픽을 한번에 확 바꾸는 것이 아니라 단계적으로 전환하기에 부정적 영향을 최소화하고 상황에 따라 트래픽 양을 조절하며 롤백할 수 있다.

출처) https://dunchi.tistory.com/69

📚장점.

  • 문제 상황을 빠르게 감지할 수 있다 (오류률 / 성능모니터링에 용이)
    → A/B 테스트
  • Production 환경에서 테스트에 용이하다.

📚단점.

  • Routing 변경이 필요하므로, 네트워크 트래픽 제어 부담이 된다.
profile
배우는 것이 즐겁다!

0개의 댓글