MSA 무중단 배포 전략
배포전략(Rolling, Canary, Blue/Green) 비교
Rolling
Rolling 배포는 서버를 한대 씩 구 버전에서 새버전으로 교체해가는 전략이다.
서비스 중인 서버 한대를 제외시키고 그 자리에 새 버전의 서버를 추가한다.
이렇게 구버전 에서 새버전으로 트래픽을 점진적으로 전환한다.
이와 같은 방식은 서버 수의 제약이 있을 경우 유용하나 배포 중 인스턴스의 수가 감소 되므로 서버 처리 용량을 미리 고려해야 한다.
Blue/Green
Blue/Green 배포는 구 버전에서 새버전으로 일제히 전환하는 전략이다.
구 버전의 서버와 새 버전의 서버들을 동시에 나란히 구성하고 배포 시점이 되면 트래픽을 일제히 전환 시킨다.
하나의 버전만 프로덕션 되므로 버전관리 문제를 방지할 수 있고 또한 빠른 롤백이 가능하다.
다른 장점으로 운영 환경에 영향을 주지않고 실제 서비스 환경으로 새 버전 테스트가 가능하다.
예를 들어 구 버전과 새 버전을 모두 구성하고 포트를 다르게 주거나 내부 트래픽일 경우 새 버전으로 접근하도록 설정하여 테스트를 진행해 볼 수 있다.
단 시스템 자원이 두배로 필요하고, 전체 플랫폼에 대한 테스트가 진행되어야 한다.
Canary
구 버전의 서버와 새 버전의 서버들을 구성하고 일부 트래픽을 새 버전으로 분산하여 오류 여부를 판단한다.
이 기법으로 A/B 테스트도 가능한데, 오류율 및 성능 모니터링에 유용하다.
트래픽을 분산시킬 라우팅은 랜덤으로 할 수도 있고 사용자 프로필등을 기반으로 분류할 수도 있다.
분산 후 결과에 따라 새 버전이 운영 환경을 대체할 수 있고 다시 구 버전으로 돌아갈 수도 있다.
배포 전략의 장단점
배포 전략 | 장점 | 단점 |
Rolling Deployment | 다운타임 최소화, 기존 서버 재활용 가능 | 롤백이 어려움, 배포 속도가 느림 |
Canary Deployment | 일부 사용자만 영향, 리스크 완화 가능 | 트래픽 분배 및 모니터링 설정 필요 |
Blue/Green Deployment | 즉시 롤백 가능, 빠른 배포 가능 | 두 개의 환경을 유지해야 하므로 비용 증가 |
결론
- 빠른 롤백이 필요하면 → Blue/Green Deployment
- 점진적 배포가 필요하면 → Rolling Deployment
- A/B 테스트나 실험적 기능이 필요하면 → Canary Deployment