[BE] 배포 방법

kiteB·2021년 10월 1일
0

BE

목록 보기
2/2
post-thumbnail

오늘은 배포 방법에 대해 알아보도록 하겠다!

1. 롤링 (Rolling)

  • 무중단 배포의 가장 기본적인 방식
  • 단순하게 서버를 구성하여 배포하는 전략
  • 서비스 중인 구 버전을 하나씩 제외시키고 그 자리에 새 버전을 하나씩 올려 구 버전에서 새 버전으로 트래픽을 점진적으로 전환한다.
  • 특징
    • 인스턴스마다 차례로 배포를 진행하기 때문에 상황에 따라 손쉽게 롤백(Roll Back)이 가능하다.
    • 롤링 배포 방식은 서버 수의 제약이 있을 경우 유용하다.
    • 새 버전을 배포할 때 인스턴스 수가 감소하기 때문에 서비스 처리 용량을 고려해야 한다.
      • 예를 들어, 100까지 감당 가능한 서버 3개가 있을 때 70씩 부하를 가지고 있을 경우,
        서버 한 개만 다운타임이 생겨도 0, 105(70 + 35), 105(70 + 35)가 되어서 모든 서비스가 마비된다.
    • 배포가 진행되는 동안 구버전과 신버전이 공존하기 때문에 호환성 문제가 발생할 수 있다.

2. 블루 그린 (Blue Green)

  • 구 버전(블루), 신 버전(그린) 서버를 동시에 나란히 구성하여 배포 시점에 트레픽이 일제히 전환됨
  • 운영 환경에 구 버전과 동일하게 신 버전의 인스턴스를 구성한 후,
    로드밸런서를 통해 신 버전으로 모든 트래픽을 전환하는 배포 방식이다.
  • 특징
    • 롤링과 마찬가지로 빠른 롤백이 가능하다.
    • 구 버전과 동일한 운영 환경으로 신 버전의 인스턴스를 구성하기 때문에
      운영환경에 영향을 주지 않고 실제 서비스 환경으로 신 버전 테스트가 가능하다.
    • 배포 후 남아 있는 기존 버전의 환경을 다음 배포에 재사용할 수 있다.
    • 단, 이런 구성은 시스템 자원이 두 배로 필요하여 비용이 더 많이 발생하며,
      새로운 환경에 대한 테스트가 전제되어야 한다.

3. 카나리 (Canary)

  • 카나리 배포는 위험을 빠르게 감지할 수 있는 배포 전략이다.
  • 구 버전의 서버와 새 버전의 서버들을 구성하고 일부 트래픽을 새 버전으로 분산하여 오류 여부를 판단한다.
  • 특징
    • 이 기법으로 A/B 테스트가 가능하며, 성능 모니터링에 유용하다.
    • 트래픽을 분산시킬 때는 라우팅을 랜덤하게 할 수 있고, 사용자로 분류할 수도 있다.
    • 신 버전의 배포 전에 실제 운영 환경에서 미리 테스트할 수 있다는 점이 블루-그린 방식과 비슷하다.
      • 하지만 카나리 배포는 단계적인 전환 방식을 통해 부정적 영향을 최소화하고 상황에 따라 트래픽 양을 늘리거나 롤백할 수 있다.
    • 롤링 배포와 마찬가지로, 구 버전과 신 버전이 공존하기 때문에 버전 관리가 필요하다.

추가 개념 정리

  • 무중단 배포
    • 서비스 장애와 배포의 부담을 최소화하기 위해 운영 중인 서비스를 중단하지 않고 신규 소프트웨어를 배포하는 기술.
    • 무중단 배포의 핵심은 로드밸런서를 통해 연결된 두 개 이상의 (서로 다른 IP, 포트를 가진) 인스턴스에 트래픽을 제어해 배포하는 것.
  • 로드밸런서(Load Balancer)
    • 여러 대의 서버에게 균등하게 트래픽을 분산시켜주는 역할을 하는 것
    • 하나의 인터넷 서비스가 발생하는 트래픽이 많을 때 여러 대의 서버가 분산처리하여 서버의 로드율 증가, 부하량, 속도저하 등을 고려하여 분산처리하여 해결해주는 서비스
  • 다운타임(downtime)
    • 시스템을 이용할 수 없는 시간
    • 시스템이 오프라인이거나 사용할 수 없는 상황에 놓이는 상태를 가리킨다.

참고 자료

profile
🚧 https://coji.tistory.com/ 🏠

0개의 댓글