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 파이프 라인 목표는 빌드, 테스트 및 제공을 수동 처리보다 더 빠르고 자동화되고 안정적으로 만드는 것이다.
참조
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 |