241205 TIL CI CD란 무엇인가, Docker 기초

윤수용·2024년 12월 5일
0

TIL

목록 보기
72/89

1. CI/CD란 무엇인가

CI/CD의 정의

CI/CD

  • Continuous Integration / Continuous Deployment(Delievery)의 약자로, 지속적인 통합과 지속적인 제공을 의미

  • 기본 개념

    • 지속적인 통합(Continuous Integration)
    • 지속적인 서비스 제공 (Continuous Delivery)
    • 지속적인 배포(Continuous Deployment)
  • 지속적인 통합(Continuous Integration) : 코드의 지속적인 통합

    • 자동화된 빌드와 자동화된 테스트를 제공
    • 안정적인 코드를 빠르게 제공할 수 있는 밑거름
  • 지속적인 서비스 제공(Continuous Delivery)

  • 지속적인 배포(Continuous Deployment)

    • 배포를 자동화하여 배포 시간을 단축하고 코드 결과물을 빠르게 지속적으로 제공
  • 단계

    • 코드 작성: 개발자들은 소스 코드를 작성하고 저장소(repository)에 업로드
    • 빌드: 저장소에서 최신 소스 코드를 가져와 빌드를 수행. 빌드는 소스 코드를 컴파일하고, 라이브러리를 추가하고, 필요한 파일을 생성하는 과정.
    • 테스트: 빌드된 결과물을 대상으로 테스트를 수행. 테스트는 기능이 정상적으로 작동하는지 확인하고, 버그를 발견하고 수정하는 과정.
    • 배포: 테스트를 통과한 결과물을 배포. 배포는 서버에 업로드하거나, 사용자에게 제공하는 과정

현대적인 개발 과정

  • 애자일 개발
    - 특정 주기마다 개발, 테스트 및 프로덕션에 통합된 기능을 출시
    agile
  • Docker를 통해 서버를 표준화하고 같은 환경에서 테스트 및 배포 테스트를 진행하고 이 과정을 자동화

    • 테스트로 검증된 자동화 배포를 사용하여 실패 확률 저하
  • 자동화된 과정으로 지속적으로 코드를 통합하여 지속적으로 자동 배포

  • 컨테이너와 빌드/테스트 도구의 발전에 따라 Docker가 테스트 뿐만 아니라 실제 배포도 담당
    Kubernetes

2. Docker 기초

왜 Docker 인가

  • 애플리케이션 개발과 배포가 편함
    - Docker Container 내부에서 여러 소프트웨어를 설치해도 호스트 OS에는 영향이 없음
    - CI/CD에서 지속적인 통합 과정의 테스트에서 Docker를 활용
    - 어떤 서버에 올리더라도 같은 환경으로 구성된 컨테이너로 동작하기 때문에 표준화된 배포를 구성 가능
  • 여러 애플리케이션의 독립성과 확장성이 높아짐
  • Docker가 가상화에서 사실상 표준의 위치를 차지
profile
잘 먹고 잘 살자

0개의 댓글