💡 개요
현업에서 사용되는 무중단 배포 기술을 크게 세 가지 있다.
오늘은 해당 기술에 대해 정리해 보자.
📕 무중단 배포
무중단 배포란 말 그대로 중단 없이 배포하는 것이다.
우리가 만약 단일 Spring 서버를 배포하기 위해선 이 서버는 어쩔 수 없이 잠깐 종료되어야 한다.
왜냐하면 재시작을 해야 하기 때문이다.
그렇기 때문에 재시작을 할 때 동안은 서비스를 이용하지 못한다.
만약 서비스가 총 10개의 Spring 서버를 이용하는데, 동시에 재시작하려면?
시간도 오래 걸리고, 그만큼 클라이언트는 서비스를 사용하지 못하는 상황이 발생한다.
이러한 상황을 해결하기 위해 무중단 배포라는 것이 나오게 되었다.
🛠️ Canary 배포
이전 버전인 v1 서버가 있고, 배포해야 할 새로운 버전인 v2 서버가 있다.
이 방식의 장점은 안전하게 새로운 버전 서버를 배포할 수 있는 것이다.
이전 버전인 v1 서버는 정상적으로 동작하고 있다.
하지만 새로운 버전 v2 서버는 배포할 경우 정상적으로 동작하지 않을 수 있다.
그렇기 때문에 서버를 일부분만 천천히 배포하는 것이다.
이를 통해 만약 v2 서버가 정상적으로 동작하지 않는다면 로드밸런서에 의해 해당 서버는 요청을 받지 않게 되고, 클라이언트는 중단 없이 서비스를 사용할 수 있다.
🛠️ 블루-그린 배포
블루-그린 배포 방식에서는 동일한 서버 환경을 유지하면서 새로운 버전의 서버(v2)를 배포한다.
이때, 로드 밸런서는 하나는 기존 버전(v1)으로, 다른 하나는 새로운 버전(v2)으로 트래픽을 전달한다. 만약 v2 서버에 문제가 발생하면, v2로 향하던 트래픽을 다시 v1로 변경하기만 하면 된다.
즉, 문제가 생겼을 때 빠르게 롤백할 수 있다는 장점이 있다. 반대로 v2 서버에 이상이 없다면, 모든 v1 서버를 v2로 전환하여 배포를 완료하면 된다.
🛠️ 롤링 배포
롤링 배포는 여러 서버가 있는 환경에서 일부 서버에만 새로운 버전 v2 서버를 배포하는 방식이다.
이 과정에서 특정 로드 밸런서는 여전히 v1 서버로만 트래픽을 전달할 수도 있다.
하지만 일부 서버는 v1을, 일부 서버는 v2를 실행하기 때문에 버전이 혼재되어 관리가 어려울 수 있다.
'개발 일기' 카테고리의 다른 글
[개발 일기] 2025.03.25 - forward 프록시 (Nginx) (0) | 2025.03.25 |
---|---|
[개발 일기] 2025.03.24 - JIT 컴파일러 (0) | 2025.03.24 |
[개발 일기] 2025.03.22 - 스케줄링 기법 (0) | 2025.03.22 |
[개발 일기] 2025.03.21 - 외부에서의 주입이 테스트 코드에 용이한 이유 (0) | 2025.03.21 |
[개발 일기] 2025.03.20 - 에러 로그를 찍어도 되나? (Feat : 시큐어 코딩) (0) | 2025.03.20 |