CI/CD란? – 지속적 통합/지속적 배포의 기본 개념

CI(지속적 통합)

요약하면 CI 빌드/테스트 자동화 프로세스 과정입니다.

CI는 개발자를 위한 자동화된 프로세스입니다.

지속적인 통합수단. CI가 성공적으로 구현되면 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드, 테스트 및 공유 리포지토리에 통합되어 여러 개발자가 애플리케이션 개발과 관련된 코드에서 동시에 작업하여 서로 충돌할 수 있는 문제를 해결할 수 있습니다.

지속적인 통합 실행은 소스/버전 제어 시스템에 대한 변경 사항을 정기적으로 커밋하여 모든 사람에게 공평한 경쟁 환경을 제공하는 것으로 시작합니다.

각 커밋에는 동작을 확인하고 변경 사항으로 인해 문제가 발생하지 않는지 확인하기 위한 빌드 및 일련의 자동화된 테스트가 포함됩니다.

지속적인 통합은 그 자체로 이점이 있지만 CI/CD 파이프라인을 구현하는 첫 번째 단계이기도 합니다.

지속적 전달(CD)

CD즉, 배포 자동화 프로세스입니다.

CD 지속적 전달 또는 지속적 전달의미하며, 이 두 용어는 같은 의미로 사용됩니다.

두 가지 의미 모두 파이프라인의 추가 단계를 자동화하는 것을 의미하지만 자동화가 얼마나 진행되고 있는지 설명하기 위해 별도로 사용되는 경우도 있습니다.

지속적인 사용빌드, 테스트 및 배포 단계를 자동화하는 DevOps 접근 방식을 논리적 한계까지 밀어붙입니다.

코드 변경이 파이프라인의 모든 이전 단계를 성공적으로 통과하면 수동 개입 없이 프로덕션에 자동으로 배포됩니다.

것이 가능하다.

지속적인 전달을 채택하면 품질 저하 없이 사용자가 가능한 한 빨리 새로운 기능을 사용할 수 있습니다.

CI/CD 개념을 귀사에 적용한다면,

CI와 CD 결합 기업에서 CI/CD를 적용할 때 배포 및 소스 제어가 매우 유용합니다.


변경된 소스로 commit & push로 구성 관리 및 배포를 동시에 수행할 수 있어 개발 시간 및 수작업을 줄일 수 있습니다.


이를 통해 동일한 시간에 더 많은 작업을 수행하고 불필요한 다운타임을 줄일 수 있습니다.

CI/CD 유형

-젠킨스
– 서클CI
– 트래비스CI
– Github 작업
-등

CI/CD를 사용하기 전에다음의 고전적인 코드 통합 프로세스를 살펴보겠습니다.

1. 개발자가 코드를 개발하고 수정합니다.


2. 자신의 기능 분기에 코드를 푸시합니다.

(하지만 개발자가 눈치채지 못한 부분에 버그가 있었습니다.

)
3. 각 코드를 Git에 업로드하고 통합합니다.


4. 오류가 발생했는데 어디에서 오류가 발생했는지 알 수 없기 때문에 오류가 발생한 곳을 다시 디버깅하여 코드를 수정합니다.


5. 단계 (1)에서 (4)까지 반복합니다.

6. 많은 시간을 들여 오류가 수정되면 배포를 시작합니다.

하지만 개발자가 직접 배포 프로세스를 진행하기 때문에 배포 프로세스에도 많은 시간이 걸립니다.

그러나 CI/CD 환경을 구성하기 위해서는 엔지니어링도 필요하며, 대기업에는 CI/CD 전담 부서가 있어 이 비율이 증가하고 있습니다.