PaaS/CI CD

Blue / Green 배포의 라우팅 포인트를 어디로 가져가야 하는가?

armyost 2023. 11. 9. 23:36
728x90

Blue / Green 배포는 운영환경 배포에 있어 매우 안정성있는 좋은 전략이다. 

 

요즈음 일반적으로 운영환경으로 사용되는 Public Cloud + k8s 환경에서는 어느 포인트에서 Blue ↔ Green 간 라우팅 포인트를 잡아야 할까?

 

최상단부터 아래로 내려가며 포인트를 발굴해보자.

 

1. DNS에서 새로운 LoadBalancer 로 라우팅 

Public Cloud가 가장 많이 권장하는 방법이다. LoadBalancer ~ Application 구간을 한벌 새로이 만들기를 권장하고 DNS제공자(Route53)이 LoadBalancer Endpoint를 교체한다. 가중치를 줄 수 있어 손쉽게 Canary 구현이 가능하다.

AWS_Blue_Green_Deployments.pdf
1.05MB

 

2. LoadBalancer에서 Target을 변경

AWS의 경우 ALB는 Ingress와 한몸으로 Ingress에서 라우팅 대상 Service를 교체한다. 다만 이때는 Service를 추가로 만들어야 하며 네이밍에 버전관리가 붙어 보기 않좋다.

 

3. k8s의 Service에서 Selector/Label 교체

k8s 내부에서 손쉽게 Application Endpoint를 교체하는 방안이다. 다만 이때는 Application Pod를 구분하는 Selector나 Label을 버전관리 하도록 CICD 파이프라인을 짜놔야 한다. 

 

4. istio가 작용된 경우 Virtual Machine의 가중치 활용

k8s 내부에서 손쉽게 Application Endpoint를 교체하는 방안이다. 가중치를 기반하므로 Canary도 손쉽게 구현이 가능하다.

 

5. ArgoCd와 같은 추가 솔루션을 통한 ReplicaSet 교체

배포의 Needs를 수용하도록 만들어진 솔루션을 사용할 수 도 있다.