CI/CD, 무중단 배포

itonse·2024년 2월 25일
0

🎦영상 내용 정리

movie


1. CI/CD 관련 용어 정리


컴파일

프로그래머가 작성한 소스코드를 기계어로 변환하는 과정

빌드

소스 코드 파일을 실행할 수 있는 소프트웨어 산출물로 만드는 과정 (컴파일 과정 내포)

배포

빌드의 결과물을 사용자가 접근할 수 있는 환경에 배치하는 것

CI (Continuous Integration): 지속적 통합

  • 여러 개발자가 공동으로 작업하는 코드를 지속적으로 통합하면서 관리하고 유지하는 프로세스를 의미

CI (Continous Deployment): 지속적 배포

  • CI의 연장선에 있는 개념
  • 빌드의 결과물을 프로덕션으로 지속적으로 배포하는 것을 의미




2. 무중단 배포란?


다운타임 없이 서버를 운영할 수 있게 해주는 배포 방식으로, Rolling, Canary, Blue-Green 배포방식이 존재한다.

이미지 출처

무중단 배포 구현 방법

  • AWS에서 Blue-Green 무중단 배포
  • 도커를 이용한 무중단 배포
  • L4, L7 스위치를 이용한 무중단 배포
  • Nginx를 이용한 무중단 배포

- 관련 용어

1. 리버스 프록시

  • 인터넷과 서버 사이에 위치한 중계 서버
  • 클라이언트가 요청한 내용을 캐싱
  • 서버 정보를 클라이언트로부터 숨길 수 있어 보안에 용이

2. 로드 밸런싱

  • 부하 분산
  • 서버에 가해지는 부하를 분산해주는 역할
  • 하나의 서버가 멈추더라도 서비스 중단 없이 다른 서버가 서비스를
    계속 유지할 수 있는 무중단 배포가 가능
이미지 출처




3. 무중단 배포 방식


Rolling 배포

  • 무중단 배포의 가장 기본적인 방식
  • 서버를 차례대로 업데이트 시키는 방식
  • 장점
    • 인스턴스를 추가하지 않아도 돼서 관리가 간편
  • 단점
    • 사용중인 인스턴스에 트래픽이 몰릴 수 있음
    • 구버전과 신버전의 공존으로 인한 호환겅 문제

Canary 배포

  • 신버전을 소수의 사용자들에게만 배포
  • 문제가 없는 것이 확인되면 점진적으로 다른 서버에 신버전 배포
  • 장점
    • 문제 상황을 빠르게 감지 가능
    • A/B 테스트로 활용 가능
  • 단점
    • 모니터링 관리 비용
    • 구버전과 신버전의 공존으로 인한 호환성 문제

Blue/Green 배포

  • Blue를 구버전, Green을 신버전으로 지칭
  • 구버전과 동일하게 신버전의 인스턴스를 구성
  • 신버전 배포 시 로드 밸런서를 통해 신버전으로만 트래픽을 전환
  • 장점
    • 배포하는 속도가 빠르다
    • 신속하게 롤백 가능
    • 남아 있는 기존 버전의 환경을 다음 배포에 재사용
  • 단점
    • 시스템 자원이 2배로 필요

0개의 댓글