PaaS/CI CD

배포전략 - Rolling, Blue/Green, Canary 배포

armyost 2021. 6. 28. 21:22
728x90

1. Rolling: 

가장 많이 사용하는 배포 전략이다. OneByOne 으로 배포를 하며, 여기서 핵심은 자동으로 로드벨런싱에서 제외 시켜야 한다는 점이다. AWS CodeDeploy, Kubernetes의 Deployment(Rolling) 의 기본 배포 방식이다.  하나씩 배포되고 Roll Back을 하게되면 다시 하나씩 롤백된다. 

 

장점 : 사용자 기준으로 트래픽이 중단되는 현상없이 안정적으로 배포됨. 

        워크노드 자원을 안정적으로 사용하는 편

단점 : 배포중에는 동시에 신/구 버전 동시존재

 

 

2. Blue/Green :

Blue/Green 배포는 구 버전에서 새 버전으로 일제히 전환하는 전략이다. 구 버전의 서버와 새 버전의 서버들을 동시에 나란히 구성하고 배포 시점이 되면 트래픽을 일제히 전환시킨다

 

장점 : 버전관리가 단순하고, 롤백이 빠르게 가능하다. 

단점 : 시스템 자원이 두배로 필요하다. 

        신규 버전에 대한 테스트가 불가능한 채로 오픈해야 한다.

 

3. Canary :

Canary 배포는 카나리아 새처럼 위험을 빠르게 감지할 수 있는 배포 기법이다. 구 버전의 서버와 새 버전의 서버들을 구성하고 일부 트래픽을 새 버전으로 분산하여 오류 여부를 판단한다. 이 기법으로 A/B 테스트도 가능한데, 오류율 및 성능 모니터링에 유용하다. 트래픽을 분산시킬 라우팅은 랜덤으로 할 수도 있고 사용자 프로필 등을 기반으로 분류할 수도 있다. 분산 후 결과에 따라 새 버전이 운영 환경을 대체할 수도 있고, 다시 구 버전으로 돌아가 수도 있다.

 

장점 : 트래픽을 조금씩 분산하는 방식으로 신버전에서 오류 여부를 모니터링 하면서 배포할 수 있다. 

        Blue/Green처럼 롤백이 용이하다.

단점 : Blue/Green과 같이 두배의 자원이 가능하다.