배포 전략
롤링 배포
전체 시스템을 중단하지 않고 새로운 버전을 점진적으로 배포하는 방법
롤링 배포는 전체 시스템을 한꺼번에 업데이트 하는 것이 아니라, 서버를 하나씩 차례로 업데이트하는 방식이다.
서비스 가용성 유지 + 새로운 기능 및 버그 수정분 배포 가능
장점
전체 시스템의 처리 능력을 대부분 유지하면서 배포 가능
서버 하나씩 순차적으로 업데이트
점진적 적용으로 리스크 최소화
단점
느린 배포 속도
동시에 서로 다른 버전으로 서비스 될 수 있음
블루 그린 배포
기존 버전의 서비스를 유지해둔 상태에서 새로운 버전을 별도 배포하고 즉시 전환
현재 운영중인 블루 환경과 완전히 동일한 그린 환경에 새로운 버전의 소프트웨어를 배포하여 실행한다. 그 다음 테스트를 통과한 후, 트래픽을 블루에서 그린으로 전환한다.
전환은 보통 로드밸런싱 설정을 변경하는 것으로 이루어지는데 이 전환은 거의 즉각적으로 이루어진다.
하지만 그린 환경으로 새로운 버전이 바뀌게 되더라도 일정 기간 블루 환경은 유지해야 한다. 그린 환경의 배포가 끝났다 하더라도 예상치 못한 문제로 서비스 장애가 생길 수 있다. 이 때 롤백을 하기 위해서는 블루 환경이 존재해야 한다.
장점
즉각적인 전환과 롤백
서비스 중단 시간 최소화
새로운 버전을 실제 환경과 동일한 환경에서 테스트
단점
리소스 사용량
복잡한 설정과 관리
빠른 전환을 위한 자동화 스크립트 또는 도구 개발
카나리 배포
새로운 버전의 소프트웨어를 전체 사용자에게 적용하기 전에 일부 사용자에게 먼저 배포하여 문제 발생 여부를 확인하고 점진적으로 배포 범위를 넓혀 나가는 방식
롤링 배포와 유사하지만, 카나리 배포는 일부의 서버만 배포된 상태로 오랜 기간 유지한다. 즉, 전체 서비스를 새로운 버전으로 연속적으로 배포해나가는 것이 아니다. 오랜 기간 문제가 없다면 나머지 서버들 역시 배포를 이어나간다.
일부 서버에 배포하거나 일부 사용자에게 배포
일부 사용자 : 카나리 배포 버전의 서버로만 계속 트래픽이 포워딩
일부 서버 : 로드 밸런싱
문제 시, 롤링 배포와 같이 롤백 처리
장점
위험 취소화
예상치 못한 오류의 범위 최소 => 안정적 배포
성능 지표 모니터링
단점
설정 관리 복잡
특정 사용자 그룹만 새로운 기능 사용
A/B 테스트 배포
A 그룹과 B 그룹 중 어느 그룹이 더 사용자 경험에 영향을 미치는지 비교
새로운 버전으로의 배포가 목적이 아님
사용자 경험이나 비즈니스적인 지표 향상 목적
Last updated