Blue-Green 배포

최대 1 분 소요

Blue-Green

Blue-Green 배포는 구 버전에서 새 버전으로 일제히 전환하는 배포 전략이다. 구 버전의 서버와 새 버전의 서버들을 동시에 나란히 구성하고 배포 시점이 되면 트래픽을 일제히 전환시킨다. 하나의 버전만 프로덕션 되므로 버전 관리 문제를 방지할 수 있고, 롤백도 가능하다. 단, 시스템 자원이 2배로 필요하다.

Kubernetes에서의 Blue-Green

쿠버네티스 환경에서 블루그린 배포는 젠킨스를 이용하여 구현할 수 있다. 모든 파드가 업데이트된 이후에 트래픽을 전달하는 형태이다.

2개의 디플로이먼트를 생성하고 기존에 배포된 디플로이먼트(Blue)로 계속 트래픽을 전달하고 있다가 새로 배포되는 디플로이먼트(Green)에 모든 파드가 업데이트 되어 트래픽을 처리하는데 문제가 없을 때 서비스를 모두 새로 배포된 디플로이먼트(Green)으로 넘긴다.

그리고 기존에 있었던 디플로이먼트(Blue)를 제거한다. 이처럼 디플로이먼트에서 제공하는 서비스를 넘긴다면 서비스의 중단 없이 연속적으로 배포가 가능하다.

배포를 위한 디플로이먼트를 만들어야 하기 때문에 기존 디플로이먼트 배포 대비 최소 2배 이상의 리소스를 더 필요로 한다는 제약 사항이 있다. 하지만 장애 복구가 수월하다는 점과 무중단 배포가 가능하다는 장점이 더 크기 때문에 리소스의 사용이 크게 부각되는 단점은 아니다.

새로운 배포가 완료되기 전까지는 파란색(Blue)을 유지하고 있는 화면이 배포가 완료되는 순간 초록색(Green)으로 변경되는 것을 볼 수 있다.


배포가 진행 중이지 않은 상태


배포가 진행 중인 상태


배포가 완료된 상태