[F-Lab 챌린지 72일차 TIL]

성수데브리·2023년 9월 7일
0

f-lab_java

목록 보기
60/73

아래 내용 출처 :
10분 테코톡 찬, 레넌의 CI/CD와 무중단 배포
추가로 볼 자료
카카오엔터프라이즈가 GitHub Actions를 사용하는 이유
NHN Github Actions으로 배포 자동화하기

컴파일

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

빌드

  • 소스코드 파일을 컴퓨터에서 실행할 수 있는 소프트웨어 산출물로 만드는 과정

배포

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

CI (Continuous Integration)

  • 지속적 통합이라는 뜻으로 개발을 진행하면서도 품질을 관리할 수 있도록 여러 명이 하나의 코드에 대해서 수정을 진행해도 지속적으로 관리할 수 있음을 의미한다.

마틴 파울러가 제시하는 CI 4가지 규칙

  1. 빌드 프로세스를 자동화해서 누구든 소스로부터 시스템을 빌드할 수 있게 할 것
  2. 테스팅을 자동화해서 언제든지 시스템에 대한 건전한 테스트 수트를 실행할 수 있게 할 것
  3. 모든 소스코드가 살아 있고 누구든 현재의 소스에 접근할 수 있는 단일 지점을 유지할 것
  4. 누구든 현재 실행 파일을 얻으면 지금까지 가장 완전한 실행 파일을 얻었다는 확신을 하게 할 것

CD (Continuous Deployment)

지속적 배포라는 뜻으로 빌드의 결과물을 프로덕션으로 릴리스하는 작업을 자동화하는 것을 의미한다.

무중단 배포

새로운 버전으로 배포하는 사이에 발생하는 다운타임을 해소하고자 등장한 개념

무중단 배포 구현 방법

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

리버스 프록시

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

로드 밸런싱

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

롤링 배포

  • 서버를 차례대로 업데이트 하는 방식
    단점
  • 사용중인 인스턴스에 트래픽이 몰릴 수 있음
  • 구버전과 신버전의 공존으로 인한 호환성 문제

0개의 댓글