책너두 (도메인 주도 설계로 시작하는 마이크로서비스 개발) 44일차 (~375p)

요약

  • 10장. 애플리케이션 통합과 배포
    • 통합 및 배포 파이프라인 정의
      • 지속적 통합

메모

10장. 애플리케이션 통합과 배포

  • 지속적 통합(CI)과 지속적 배포(CD)는 애플리케이션 배포 시 핵심 요소임.
    • 마이크로서비스에만 적용되는 개념이 아님.
  • 애플리케이션을 자주 빌드하고 배포를 자동화하는 활동은 애플리케이션을 예기치 않은 결함이나 장애로부터 보호하며, 애플리케이션이 지원하는 비즈니스를 빠르게 개선하는 데 도움을 줌.

10.1 통합 및 배포 파이프라인 정의

  • 지속적 통합(CI)은 애플리케이션 소스코드의 변경 사항이 지속적으로 병합, 빌드, 테스트되는 것을 의미함.
  • 지속적 배포(CD)는 CI를 통해 준비된 애플리케이션이 테스트 및 프로덕션 환경에 자동으로 배포되는 것을 의미함.
  • 개발자들은 작성한 소스코드를 형상관리 시스템에 커밋, 푸시하고, 이 변경 사항들은 빌드, 테스트 과정을 거쳐 테스트 또는 프로덕션 환경으로 배포됨.
    • 이렇게 일련의 작업을 자동화한 것을 CI/CD 라고 함.
  • 컨테이너 기술을 적용하는 경우, 빌드 단계에서 생성된 결과물을 도커 이미지로 만들어 컨테이너 레지스트리에 등록하고, 이 도커 이미지를 사용해 쿠버네티스 환경에 애플리케이션을 배포함.
  • 이러한 모든 과정 또는 일부 과정을 자동화하는 데 사용하는 도구로는 젠킨스, AWS CodePipeline, Azure DevOps Pipeline, GCP Cloud Build 등이 있음.

10.1.1 지속적 통합

  • 지속적 통합에는 빌드, 컨테이너화, 컨테이너 레지스트리 등록의 과정이 있음.
  • 빌드
    • 소스코드를 실행 가능한 소프트웨어로 만드는 과정을 의미함.
    • 컴파일, 테스트 등의 단계가 포함되며, 빌드 도구를 통해 이 과정을 쉽게 진행 가능.
    • ex) maven, gradle
  • 컨테이너화
    • 애플리케이션을 컨테이너 이미지로 생성하는 과정
    • 컨테이너 이미지 → 애플리케이션 실행에 필요한 모든 것을 압축한 형태임.
      • 가장 많이 사용되는 도구는 도커임.
      • 구글에서 개발한 jib 라이브러리를 통해 도커 파일 없이도 도커 이미지 생성 가능함.
  • 컨테이너 레지스트리 등록
    • 생성된 컨테이너 이미지를 관리함.
    • 컨테이너 레지스트리에 컨테이너 이미지를 업로드 및 다운로드 가능.
    • 검증된 컨테이너 이미지 재사용 가능.
    • ex) 도커 허브, AWS ECR, 마이크로소프트 ACR, 구글 GCR

###

댓글

Designed by JB FACTORY