TIL - 2/20

헨도·2025년 2월 20일
0

TIL

목록 보기
7/21
post-thumbnail

이제 배포를 할 단계인데...고민이 되지만 우선 부딪혀봐

전에 차장님이 그러셨다.
머리에 그려보고 하는 방법도 좋지만, 부딪혀보고 되면 거기서 다시 역으로 공부하는 것도 좋다고
지금은 부딪혀보는게 좋은 방법이라고 생각했다.

무중단 배포

  • 말 그대로 서비스의 중단없이 새로운 버전의 소프트웨어를 배포하는 것

  • 서비스 운영 중 새로운 버전을 배포하기 위해서는 기존의 서비스를 종료하고 새로운 서비스를 시작하는 과정이 필요하다.

  • 이렇게 서비스가 중단되는 시간을 다운타임이라고 한다.

  • 이를 해결할 수 있는 방법이 무중단 배포이다.

무중단 배포 방식

  1. Rolling
  2. Blue - Green
  3. Canary

Rolling 배포

  • Rolling 배포는 사용 중인 인스턴스에 새 버전의 서비스를 점진적으로 배포하는 방법으로 무중단 배포의 가장 기본적인 방법이다.
    서비스 중인 인스턴스 하나를 로드 밸런서에서 라우팅하지 않도록 한 뒤, 새로운 버전의 서비스를 적용하여 다시 라우팅하도록 한다.
    이를 반복하여 모든 인스턴스에 새 버전의 서비스를 배포한다.

장점

  • 인스턴스마다 차례로 배포되기 때문에 에러 발생 시 롤백이 쉽다.
  • 기존의 인스턴스에 추가로 인스턴스를 늘리지 않아도 된다.
  • 관리에 용이하다.

단점

  • 새 버전을 배포할 때 라우팅 되어있는 인스턴스의 수가 감소하기에 정상 동작 중인 인스턴스에 트래픽이 몰려 과부하가 올 수 있다. (라우팅되어 있는 인스턴스들의 서비스 처리 용량을 고려해야 하는 이유)
  • 배포가 진행될 때 기존의 버전과 새로운 버전이 함께 존재하여 호환성 문제 발생

Blue - Green 배포

  • Blue 는 기본버전, Green은 새로 배포될 버전을 의미한다.

  • 신 버전을 배포하고 일제히 전환하여 모든 연결이 신 버전을 바라보게 하는 전략
    운영 중인 구 버전과 신 버전의 인스턴스를 나란히 구성 후 배포 시점에 로드 밸런서를 통해 모든 트래픽이 일제히 전환된다.

장점

  • 구 버전의 인스턴스가 그대로 남아있어서 빠른 롤백이 가능하다.
  • 운영환경에 영향을 주지 않고 새 버전 테스트가 가능하다.
  • 구 버전의 환경을 다음 배포에 재 사용할 수 있다.

단점

  • 시스템 자원이 2배로 필요하다.

Canary 배포

  • 지정한 서버 또는 특정한 유저에게만 배포했다가 정상적이면 전체를 배포한다.
    서버의 트래픽을 일부 신버전으로 분산시켜서 오류 여부를 확인할 수 있는 것
    블루 그린과 유사하지만 단계적으로 바꾸는 것에 차이가 있다.

장점

  • 문제 상황을 빠르게 감지할 수 있어 성능 모니터링에 유용하다.
  • A/B 테스트가 가능하다. (대조군/실험군)

단점

  • 네트워크 트래픽 제어에 부담이 될 수 있다.
profile
Junior Backend Developer

0개의 댓글