Dev

CI/CD 파이프라인

에린_1 2024. 8. 13. 09:44
728x90

CI/CD 파이프라인

CI(Continuous Integration)

  • CI/CD의 CI는 개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)을 의미한다.
  • CI를 성공적으로 구현할 경우 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 리포지토리에 통합되므로, 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문제를 해결할 수 있다.

CD(Continuous Delivery / Deployment)

  • CI/CD의 CD는 지속적인 서비스 제공(Continuous Delivery) 및 지속적인 배포(Continuous Deployment)를 의미하며 이 두 용어는 상호 교환적으로 사용된다.
  • 두 가지 의미 모두 파이프라인의 추가 단계에 대한 자동화를 뜻하지만 때로는 얼마나 많은 자동화가 이루어지고 있는지를 설명하기 위해 별도로 사용되기도 한다.
  • 지속적인 제공(Continuous Delivery)
    • 애플리케이션에 적용한 변경 사항이 버그 테스트를 거쳐 리포지토리에 자동으로 업로드되는 것을 뜻하며, 운영팀은 이 리포지토리에서 애플리케이션을 실시간 프로덕션 환경으로 배포할 수 있다.
    • 이는 개발팀과 비즈니스팀 간의 가시성과 커뮤니케이션 부족 문제를 해결해준다.
    • 지속적인 제공은 귀찮은 push 작업없이 최소한의 노력으로 새로운 코드를 배포하는 것을 목표로 한다.
  • 지속적인 배포(Continuous Deployment)
    • 개발자의 변경 사항을 리포지토리에서 고객이 사용 가능한 프로덕션 환경까지 자동으로 릴리스하는 것을 의미한다.
    • 이는 애플리케이션 제공 속도를 저해하는 수동 프로세스로 인한 운영팀의 프로세스 과부하 문제를 해결한다.
    • 지속적인 배포는 파이프라인의 다음 단계를 자동화함으로써 지속적인 제공이 가진 장점을 활용한다.

장점

  • 변경 사항을 자주 푸시하고자 하는 개발자와 안정적인 애플리케이션을 원하는 운영 담당자 사이의 마찰을 해결한다.
  • 코드 변경을 사용자에게 푸시하기 전에 검증하기 위해 개발 팀은 지속적인 테스트를 실행해야 한다.
  • 큰 변경보다 안정적으로 통합 및 테스트가 가능한 더 작은 규모의 증분적 코드 변경을 수행하도록 개발자를 독려한다.
  • 개로운 기능을 위한 더 넓은 범위의 개발 작업을 수행하는 동시에 신속한 수정 요청까지 받는 팀에 작업의 유연성을 부여한다.
  • 기능, 성능 및 데이터 중심 테스트를 더 많이 실행해서 더 높은 품질의 애플리케이션을 제공하고 프로덕션 결함을 줄일 수 있게 해준다.

CI/CD Pipeline

 

파이프 라인

  • 컴퓨터 과학에서 데이터 파이프 라인은 제공된 데이터 또는 코드에 대해 사전 정의 된 작업을 수행하는 일련의 처리 단계이다.
  • 파이프 라인 사용의 목적은 반복적인 프로세스를 자동화하여 시간을 절약하고 정밀도를 높이는 것이다.
  • 파이프 라인의 이러한 장점은 CI/CD 인프라와의 호환성과 효율성을 높여준다. 특히 CI/CD 파이프 라인은 최신 버전의 소프트웨어 애플리케이션을 업데이트하고 제공하려는 일련의 처리 단계를 수행할 수 있다.

CI/CD 파이프 라인 구성 요소

  • 빌드(소프트웨어 컴파일)
  • 테스트(호환성 및 오류 검사)
  • 릴리스(버전 제어 저장소의 애플리케이션 업데이트)
  • 배포(개발에서 프로덕션 환경으로의 변환)
  • 규정 준수 및 유효성 검사
  • CI/CD 파이프 라인 목표는 빌드, 테스트 및 제공을 수동 처리보다 더 빠르고 자동화되고 안정적으로 만드는 것이다.

참조

https://inpa.tistory.com/entry/👩‍💻-CI-CD-파이프-라인-이란

728x90

'Dev' 카테고리의 다른 글

Visual Studio Solution Build, Rebuild, Clean  (0) 2024.08.14
빌드 이벤트 지정  (0) 2024.08.13
젠킨스(Jenkins)  (0) 2024.08.09
오토스케일링(AutoScaling)  (0) 2024.08.08
데이터베이스 샤딩  (0) 2024.08.07