SWExpert 2022. 10. 14. 00:11

I. 무중단 배포

-. 시스템에 의해 제공하는 비즈니스의 연속성과 안정성을 보장하기 위해 운영 환경에 소스 배포 시 서비스가 중단되지 않도록 코드를 배포 할 수 있는 기술

-. 소프트웨어 배포 : 소프트웨어 개발 이후 결과물을 고객에게 제공하는 방법, 시스템을 중단하는 중단배포와 시스템의 중단없이 배포하는 무중단 배포로 부류

 

II. 무중단 배포 기법의 종류  [KPC99-1]

가. Rolling Update(롤링 배포)

구분 설명
개념 - 일반적인 배포를 의미하며, 단순하게 인스턴스(또는 서버)에 대해 동일한 인스턴스를 띄우고, 준비가 되어 있는 상황에서 1개씩 Rolling을 통해 점진적으로 인스턴스를 변경하는 기법
- Ramped, Incremental 이라고도 불리며, 기존에 사용하고 있었던 기본적인 배포 전략 방식
장점 관리 및 롤백이 용이
단점 서버 처리 용량에 대한 사전 고려 필요

나. Blue/Green Deployment(블루-그린 배포)

구분 설명
개념 - Old 버전을 블루, New 버전을 그린으로 호명하고, New 버전을 모두 배포 후 서비스 준비가 되었을 때 모든 트래픽을 New 버전으로 한번에 Switching 을 하는 기법 
- Red-Black 이라고도 불리며, 서버가 2개가 다 active이기 때문에 Rollbak이 다소 쉽게 처리 가능
장점 운영 환경에 영향을 주지 않고, 실제 서비스 환경으로 신버전 테스트가 가능
단점 시스템 자원이 두배로 필요하여 비용이 증가

다. Canary Release(카나리 배포)

구분 설명
개념 - 트래픽 제어를 통해 일부 사용자만 신규 서버로 접속하게 하여 모니터링과 디버깅을 수행 한 후 문제가 없는 경우 모든 서버로 교체하는 기법 
- 수정한 코드가 워낙 많이 바뀌어서 불안할 경우 점진적으로 배포하는 형태를 통해 위험 감소 가능
장점 Risk 를 빠르게 감지 가능, A/B 테스트로도 활용 가능
단점 네트워크 트래픽에 대한 제어 부담