2. 소프트웨어 공학/정보시스템 운영 및 유지보수
무중단 배포
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 테스트로도 활용 가능 |
단점 | 네트워크 트래픽에 대한 제어 부담 |