CI/CD 파이프라인

leekoby·2023년 4월 3일
0

개발방법

목록 보기
4/5

🔧변경내용🔨

제목날짜내용
발행일23.04.03

📌들어가기에 앞서


해당 포스트는 CI/CD 파이프라인를 학습한 것을 정리한 내용입니다.


배포 자동화

배포 자동화란 한번의 클릭 혹은 명령어 입력을 통해 전체 배포 과정을 자동으로 진행하는 것을 뜻한다.

배포 자동화가 왜 필요할까?

  • 먼저 수동적이고 반복적인 배포 과정을 자동화함으로써 시간이 절약
  • 휴먼 에러(Human Error)를 방지
    • 휴먼 에러란 사람이 수동적으로 배포 과정을 진행하는 중에 생기는 실수들을 뜻함.
    • 그 전에 했던 배포 과정과 비교하여 특정 과정을 생략하거나 다르게 진행하여 오류가 발생하는 것이 휴먼 에러의 예

배포 자동화를 통해 전체 배포 과정을 매번 일관되게 진행하는 구조를 설계하여 휴먼 에러 발생 가능성을 낮출 수 있다.




🌈 CI/CD 파이프라인

수없이 진행되는 배포 과정을 자동화시키는 방법을 구축하게 되는데, 그것을 CI/CD 파이프라인이라고 한다.

[그림] 배포 과정

해당 그림은 배포 과정을 도식화한 것이다.

  • 개발자가 코드를 원격 저장소에 업로드
  • 그 코드가 빌드 및 테스트와 릴리즈를 거쳐 배포 서버로 전달
  • 배포 서버에 도달한 빌드된 코드는 애플리케이션 서버로 최종 배포
  • 그 결과물을 유저가 직접 확인

여기서 자동화를 적용할 부분은 보통 코드가 빌드되면서 최종적으로 배포가 되는 단계까지다.

이 부분을 지속적인 통합 및 배포를 위하여 일련의 자동화 단계로 만드는데, 이것을 파이프라인을 구축한다고 표현한다.




CI/CD 파이프라인을 구성하는 기본 단계와 수행 작업

[그림] 파이프라인을 구성하는 기본 단계와 수행 작업

배포에서 파이프라인(Pipeline)이란 용어는 소스 코드의 관리부터 실제 서비스로의 배포 과정을 연결하는 구조를 뜻한다.

파이프라인은 전체 배포 과정을 여러 단계(Stages)로 분리한다.

각 단계는 파이프라인 안에서 순차적으로 실행되며, 각 단계마다 주어진 작업(Actions)들을 수행한다.

파이프라인을 여러 단계로 분리할 때, 대표적으로 쓰이는 세 가지 단계가 있다.

  1. Source 단계 :

    • 원격 저장소에 관리되고 있는 소스 코드에 변경 사항이 일어날 경우,
    • 이를 감지하고 다음 단계로 전달하는 작업을 수행
  2. Build 단계 :

    • Source 단계에서 전달받은 코드를 컴파일, 빌드, 테스트하여 가공
    • Build 단계를 거쳐 생성된 결과물을 다음 단계로 전달하는 작업을 수행합니다.
  3. Deploy 단계 :

    • Build 단계로부터 전달받은 결과물을 실제 서비스에 반영하는 작업을 수행

파이프라인의 단계는 필요에 따라 더 세분화되거나 간소화될 수 있다.

DevOps를 전문으로 학습하는 경우 아래와 같이 파이프라인의 단계를 세분화해서 나누기도 한다.

해당 툴을 소개하는 업체에 따라 용어를 미묘하게 다르게 사용하기도 한다.




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

  • 빌드 (소프트웨어 컴파일)
  • 테스트 (호환성 및 오류 검사)
  • 릴리스 (버전 제어 저장소의 애플리케이션 업데이트)
  • 배포 (개발에서 프로덕션 환경으로의 변환)
  • 규정 준수 및 유효성 검사

로 이루어져 있으며, 이 과정이 실무에서는 반복적인 프로세스이기 때문에 이 부분을 일련의 자동화 단계로 만든다고 볼 수 있다.

이렇게 구축된 파이프라인은 최신 버전의 소프트웨어 애플리케이션을 업데이트하고 제공하려는 일련의 처리 단계에 걸리는 시간을 수동으로 하는 것보다 더 빠르고 안정적이며 효과적으로 줄여주고 CI/CD 인프라와의 호환성과 효율성을 높여준다.




📚 레퍼런스

0개의 댓글