본문 바로가기

스파르타 부트캠프(spring)

[내일배움캠프_Spring] 자바 Spring 입문_CI / CD_230130

CI/CD(Continuous Integration/Continuous Delivery)란?

: 자동화하여 애플리케이션을 더욱 짧은 주기로 고객에게 제공하는 방법.

 

기본 개념

  • 지속적인 통합
  • 지속적인 서비스 제공
  • 지속적인 배포
새로운 코드 통합으로 인해 개발 및 운영팀에 발생하는 문제("통합지옥")를 해결하기 위한 솔루션.

애플리케이션의 통합 및 테스트 단계에서부터 제공 및 배포에 이르는 애플리케이션 라이프사이클 전체에 걸쳐 지속적인 모니터링을 제공. (-> "CI/CD 파이프라인")

 

CI/CD

CI(Continuos Integration)

: 개발자를 위한 자동화 프로세스(지속적인 통합).

  • 애플리케이션 코드의 새로운 변경사항이 정기적으로 빌드 및 테스트를 거쳐 공유리포지토리에 병합
  • 여러명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌하느 문제를 이 방법으로 해결할 수 있다.

CD(Continuos Delivery)

: 파이프라인의 추가 단계에 대한 자동화(지속적인 서비스 제공, 지속적인 배포)

 

지속적인 제공

  • 개발자들이 애플리케이션에 적용한 변경 사항이 버그케스트를 거쳐 리포지토리에 자동으로 업로드
  • 운영팀은 이 리포지토리에서 애플리케이션을 실시간 프로덕션 환경으로 배포 가능
  • 개발팀-비즈니스팀 간 가시성 및 커뮤니케이션 부족 문제 해결
  • 최소한의 노력으로 새로운 코드를 배포하는 것을 목표

지속적인 배포

  • 개발자의 변경 사항을 리포지토리에서 고객이 사용 가능한 프로덕션 환경까지 자동으로 릴리스
  • 애플리케이션 제공 속도를 저해하는 수동 프로세스로 인한 운영팀의 프로세스 과부하 문제를 해결
  • 파이프라인의 다음 단계를 자동화함으로서의 장점을 활용