서비스 배포전략

  25 Nov 2020


서비스 배포 전략

롤링 업데이트

  • 일반적인 배포
  • 단순하게 서버를 구성하여 배포하는 전략
  • 구버전에서 신버전으로 트래픽을 점진적으로 전환하는 배포
  • 관리가 편하지만, 배포 중 한쪽 인스턴스의 수가 감소되므로 서버 처리 용량을 미리 고려해야함

장점

  • Downtime이 없음
  • 버전의 업데이트와 테스팅을 동시에 할 수 있음

단점

  • 구버전과 신버전이 공존하는 시기가 있으므로, 두 버전을 모두 고려해 개발해야 함
  • 세션 영속성에 대한 고려사항 👉 서버가 롤링업데이트를 진행할 때, 기존 서버에 접속하고 있던 사용자의 세션을 신규 서버로 이전해야 함

카나리 배포

  • 일부 서버(10% 정도)만 신 버전을 배포하여 운영한 후 문제가 없는 것이 확인되면 점차적으로 모든 서버에 신 버전을 배포하는 방식

장점

  • capacity testing을 운영환경에서 진행할 수 있음
  • Rollback도 간단하게 가능함

단점

  • 동시에 여러 소프트웨어 버전을 관리해야 함
  • 동시에 2개 이상의 버전이 운영환경에 배포되도록 할 수 있으나, 좋은 방법은 아님
  • 사용자 PC나 모바일 기기에 설치하는 경우, 사용이 어려움

블루 그린

  • 새 버전의 서버 그룹을 모두 배포 완료한 뒤에, 로드밸런서에서 트래픽을 구 버전에서 새 버전으로 일시 바꾸는 방식

장점

  • Downtime의 최소화 가능
  • 신규 버전의 문제 발생시 빠른 rollback이 가능함

단점

  • 인프라 리소스가 2배로 들어감
  • 기존 운영되고 있는 서버에서 Long-term 트랜잭션이 수행중이었다면 전환시 어떤 방식으로 처리할 지 고려가 필요함
  • 두 서버 환경간 migration이 배포때마다 필요하며, Rollback 수행시에도 고려되어야 함

참고자료

배포 전략의 종류 : reference-m1
배포 전략 : poikilo

...