🎦영상 내용 정리

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을 신버전으로 지칭
- 구버전과 동일하게 신버전의 인스턴스를 구성
- 신버전 배포 시 로드 밸런서를 통해 신버전으로만 트래픽을 전환
- 장점
- 배포하는 속도가 빠르다
- 신속하게 롤백 가능
- 남아 있는 기존 버전의 환경을 다음 배포에 재사용
- 단점