CI : 지속적인 통합 (Continuous Integration )
CD : 지속적인 서비스 제공 ( Continuous Delivery ) 또는 지속적인 배포 (Continuos Deployment) 를 의미
CI/CD 는 애플리케이션 개발 단계를 자동화하여 애플리케이션을 보다 짧은 주기로 고객에게 제공하는 방법입니다.
CI/CD 의 기본 개념은 지속적인 통합, 지속적인 서비스 제공, 지속적인 배포입니다. CI/CD 는 새로운 코드 통합으로 인해 개발 및 운영팀에 발생하는 문제 ( 일명 : Integration hell ) 을 해결하기 위한 솔루션.
'CI'
개발자를 위한 자동화 프로세스인 지속적인 통합 (Continuous Integration ) 을 의미. CI 를 성공적으로 구현할 경우 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 리포지토리에 통합되므로 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문제를 해결할 수 있습니다.
'CD'
지속적인 서비스 제공 (Continuous Delivery ) 및 지속적인 배포 ( Continuous Deployment)를 의미하며 이 두 용어는 상호 교환적으로 사용된다. 두 가지 의미 모두 파이프라인의 추가 단계에 대한 자동화를 뜻하지만 때로는 얼마나 많은 자동화가 이루어지고 있는지를 설명하기 위해 별도로 사용되기도 합니다.
지속적인 제공 이란 개발자들이 애플리케이션에 적용한 변경 사항이 버그 테스트를 거쳐 리포지토리(예: GitHub 또는 컨테이너 레지스트리) 에 자동으로 업로드되는 것을 뜻한다. 운영팀은 이 리포지토리에서 애플리케이션을 실시간 프로덕션 환경으로 배포할 수 있습니다.
이는 개발팀과 비즈니스팀 간의 가시성과 커뮤니케이션 부족 문제를 해결해 줍니다..(?)
지속적인 배포 란 개발자의 변경 사항을 리포지토리에서 고객이 사용 가능한 프로덕션 환경까지 자동으로 릴리스하는 것을 의미한다.이는 애플리케이션 제공 속도를 저해하는 수동 프로세스로 인한 운영팀의 프로세스 과부하 문제를 해결합니다.
'CI/CD' 는 지속적 통합 및 지속적 제공의 구축 사례만을 지칭할 때도 있고, 지속적 통합, 지속적 제공, 지속적 배포라는 3가지 구축 사례 모두를 의미하는 것일 수도 있습니다. '지속적인 서비스 제공'은 때로 지속적인 배포의 과정까지 포함하는 방식으로 사용되기도 합니다.
결과적으로 CI/CD는 파이프라인으로 표현되는 실제 프로세스를 의미하고, 애플리케이션 개발에 지속적인 자동화 및 지속적인 모니터링을 추가하는 것을 의미합니다. 대부분의 기업에서는 CI 를 먼저 추가한 다음 클라우드 네이티브 애플리케이션의 일부로서 배포 및 개발 자동화를 구현해 나갑니다.
'간단용어' 카테고리의 다른 글
TreeMap (0) | 2021.03.28 |
---|---|
Map 과 HashMap 차이 (0) | 2021.03.22 |
SimpleDateFormat , Calendar (0) | 2021.03.14 |
@NoArgsConstructor(AccessLevel.PROTECTED) 와 @Builder (0) | 2021.03.11 |
Lombok (0) | 2021.03.11 |