본문 바로가기

Infra/Cloud

[CI/CD] CI/CD(지속적 통합, 지속적 제공 및 배포) 파이프라인이란?

CI/CD(지속적 통합, 지속적 제공 및 배포) 파이프라인이란?


개요

  DevOps(데브옵스) 엔지니어에게 요구되는 CI/CD(지속적 통합, 지속적 제공 및 배포) 파이프 라인에 관하여 알아본다.

 

 

목차

 

소개

 1. CI/CD(지속적 통합, 지속적 제공 및 배포) 파이프라인의 소개 

CI/CD(지속적 통합, 지속적 제공 및 배포) PIPELINE 소개 및 배경

  CI/CD 는 DevOps 개발 방식에서 사용된다. 이 방법은 새로운 코드를 통합하는데에서 나오는 문제를 개선하기 위한 해결책으로 등장하였다. CI/CD는 각 하위 과정으로 이루어져 있어 PIPELINE STAGE라고 불리우며, 각 단계들은 모니터링 및 자동화를 거쳐 애플리케이션의 개발 프로세스를 효율적으로 개선하여, 짧은 주기에 고객에게 제공 할 수 있도록 하는  방법이다. 

 

CI/CD(지속적 통합, 지속적 배포 및 배치) PIPELINE의 요소

(출처: https://www.redhat.com/ko/topics/devops/what-is-ci-cd)

BUILD: 각 애플리케이션을 컴파일 하는 단계

TEST: 컴파일 한 새로운 코드들을 테스트 하는 단계

MERGE: 테스트가 완료된 코드들을 합치는 단계

 

DELIVERY: CI(지속적 통합) 과정이 끝나 준비가 완료된 BUILD를 저장소(Repository)에 자동으로 릴리즈 해주는 단계

 

DEPLOYMENT: DELIVERY가 끝나 프로덕션 준비가 완료된 빌드가, 애플리케이션에 빠르게 적용되도록 하는 단계

 

 2. CI/CD(지속적 통합, 지속적 제공 및 배포) 파이프라인의 필요성 및 이점 

CI(지속적  통합)

  CI(지속적 통합)은 각 개발자마다 변경한 코드들을 지속적으로 통합하는 것을 의미한다. 회사 혹은 학교에서 여러 사람이 하나의 프로젝트를 진행하면 각 사람이 진행한 코드를 통합해야 하는 문제가 발생한다. 자동화 단계 이전에는, 하나의 날을 잡아 사람별로 다른 코드를 하나하나 통합하고, 충돌하는 문제를 잡기 위해 많은 시간이 걸렸다. 하지만 CI(지속적 통합)이 등장한 이 후, 개발자들은 BUILD - TEST - MERGE 를 통해 지속적으로 자신의 변경된 코드를 확인 및 테스트 하며 통합하는 과정을 거치며 변경된 코드들을 즉각적으로 확인하고, 거대하게 통합하던 과정들을 작은 단위로 나누게 되면서 시간을 줄일 수 있게 되었다.

 

CD(지속적 서비스 제공)

  CD(지속적 서비스 제공)은 CI(지속적 통합)을 거친 수정 사항이, 저장소(Github Repository or Container Repository)에 자동적으로 릴리즈 되는 것을 의미한다. 이를 통해 운영팀은 변경된 코드들을 저장소에서 애플리케이션(프로덕션 환경)에 배포 할 수 있게 된다. 따라서 이 전에 개발자와 운영팀 사이에서 이러한 전달 관련하여 발생하던 문제들을 자동화 하여 서로 간의 의사소통이 좀 더 쉽게 이루어질 수 있도록 해주었고, 이를 통해 두 팀간의 최소한의 노력으로 수정된 코드들을 빠르게 배포 할 수 있게 되었다.

 

CD(지속적 배포)

  CD(지속적 배포)는 위의 CD(지속적 서비스 제공)을 넘어, 고객이 사용하는 애플리케이션 까지 자동으로 릴리즈 될 수 있도록 해주는 것이다. 즉 CD(지속적 서비스 제공)에서 레퍼지토리에서 가져오는 일 까지를 운영팀에서 했다면, CD(지속적 배포)는 신뢰할 수 있는 테스트 환경을 구축하여 고객이 사용하는 애플리케이션까지 자동으로 릴리스 될 수 있도록 해주는 것이라고 할 수 있다. 이는 운영팀이 애플리케이션까지 릴리스 하는 수동적인 과정에서 발생할 수 있는 지연 시간을 단축 할 수 있으며, 파이프 라인의 단계들을 자동화 시키며 CD(지속적인 제공 및 배포)의 효율성을 극대화 시킬 수 있게 되었다.

 

참고사이트

1. https://www.redhat.com/ko/topics/devops/what-is-ci-cd

 

CI/CD(지속적 통합/지속적 제공): 개념, 방법, 장점, 구현 과정

CI/CD는 애플리케이션의 통합 및 테스트부터 제공 및 배포까지 전체 라이프사이클에서 지속적인 자동화와 모니터링을 제공합니다. 개념, 차이점, 학습방법(인강)을 보세요.

www.redhat.com