본문 바로가기
  • 오늘도 한걸음. 수고많았어요.^^
  • 조금씩 꾸준히 오래 가자.ㅎ
IT기술/CI CD

CI/CD 배포방법 정리

by 미노드 2022. 5. 25.

1. Rolling
여러대의 서버가 있을 때 차례대로 배포하는 방법이다. 첫번째 서버가 배포 중이라 역할을 못할 때면 나머지 2개 서버가 대신 부하를 감당하며 서비스를 지속한다.
마찬가지로 나머지 서버들도 배포 중인 서버를 제외한 나머지 서버들이 부하를 감당해준다.
 * Rolling에서 주의할 점은 하나의 서버가 중단 되었을 때 나머지 서버의 부하량을 잘 파악해야한다.

예를 들어, 100까지 감당 가능한 서버 3대가 있을 때 70,70,70씩 부하를 가지고 있다면,
한개 서버만 다운타임이 생겨도 0,105,105가 되버려서 모든 서비스가 마비가 되버린다.



2. Blue Green
구 버전의 서버와 함께 신 버전의 서버를 준비한다. 신 버전의 서버 준비하는 동안은 구 버전 서버로 트래픽을 흘린다.
그리고 배포 시점에 트래픽을 일제히 신 버전 서버로 돌린다.
(컨테이너 환경에서 사용 기법) 

장점으로는 빠른 롤백이 가능하다. 트래픽만 구 서버로 흘려주면 된다.
단점으로는 구 버전과 신 버전을 동시에 갖추어야하므로 다른 방법보다 리소스가 2배로 든다.



3. Canary
특정 서버만 배포를 해놓고 배포된 서버로 트래픽을 조금씩 흘려보낸다.
이때 정상적이라면 트래픽을 계속 흘려보내면서 다른 서버도 점진적으로 배포를 한다.

최종적으로는 모든 서버에 배포한다.
이 방법은 오류 감지를 하는데 효과적이다.
조금씩 업데이트된 신 서버로 트래픽을 흘려보내면서 정상 여부를 체크하고 만약 정상적이지 않다면 바로 롤백할 수도 있고 정상적이라면 배포를 할 수도 있다.