[소공 목차]

 

개념 : 비즈니스 연속성 보장 기법

  • 시스템에 의해 제공하는 비즈니스의 연속성과 안정성을 보장하기 위해 운영 환경에 소스 배포 시 서비스가 중단되지 않도록 코드를 배포 할 수 있는 기술
  • 소프트웨어 배포 : 소프트웨어 개발 이후 결과물을 고객에게 제공하는 방법, 시스템을 중단하는 중단배포와 시스템의 중단없이 배포하는 무중단 배포로 부류

중단배포의 문제점

문제점 설명
다운타임 발생  - 24시간 항상 가동되어야하는 서비스의 경우 문제 발생 가능
무결성 저하  - 다중 서버 이용시 서버간 시차로 인한 데이터 중복 발생 가능
롤백시 중단  - 배포시 문제 발생할 경우, 롤백시에도 다운타임 발생

무중단 배포 기법의 종류  

(1) Rolling Update(롤링 배포)

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

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

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

(3) Canary Release(카나리 배포)

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

+ Recent posts