호기심으로 시작한 Frontend 꾸준함으로 채워나가는 Developer

[section4] CI/CD 본문

Codestates 부트캠프/Section04 - TIL

[section4] CI/CD

RachelLee 2022. 10. 12. 16:16

CI / CD 란?

-> 자동화를 통해서 더 효율적이고 빠르게  사용자에게 빈번이 배포할 수 있는 것

 

CI (Continuous Integration 지속적인 통합)

- 코드 변경사항을 주기적으로 빈번하게 머지해야 한다.  -> 개발 생산성 향상

- 통합을 위한 단계 (빌드, 테스트, 머지)의 자동화

- 문제점을 빠르게 발견하여 버그 수정 용이

- 코드의 퀄리티 향상

 

CD (Continouous Delivery지속적인 서비스 제공 &  Continuous Deployment지속적인 배포)

- 파이프라인의 추가 단계에 대한 자동화를 뜻하지만 떄로는 얼마나 많은 자동화가 이루어지고 있는지를 설명하기 위해 별도로 사용되기도 한다.

- 최근에는 클라우드 기술 발전과 맞물려 지속적 통합과 지속적 배포가 빠른 속도로 진행되면서 CI/CD를 하나로 묶어서 다루는 경우가 점차 증가

CI/CD 단계 

" Code -> Build -> Test -> Relese -> Deploy "

 

CI 개발자를 위한 자동화 프로세스라고 볼 수 있으며, Code - Build - Test 단계에서 꾀할 수 있습니다.

  • Code : 개발자가 코드를 원격 코드 저장소 (Ex. github repository)에 push하는 단계입니다.
  • Build : 원격 코드 저장소로부터 코드를 가져와 유닛 테스트 후 빌드하는 단계입니다.
  • Test : 코드 빌드의 결과물이 다른 컴포넌트와 잘 통합되는 지 확인하는 과정입니다.

CD 지속적인 서비스 제공(Continuous Delivery) 및 지속적인 배포(Continuous Deployment)를 의미하며

이 두 용어는 상호 교환적으로 사용된다.   Release - Deploy - Operate 단계에서 꾀할 수 있습니다.

  • Release : 배포 가능한 소프트웨어 패키지를 작성합니다.
  • Deploy : 프로비저닝을 실행하고 서비스를 사용자에게 노출합니다. 실질적인 배포 부분입니다.
  • Operate : 서비스 현황을 파악하고 생길 수 있는 문제를 감지합니다.

CI/CD 파이프라인

CI/CD 파이프라인이란?

번잡스럽고 지루한 배포 과정을 자동화시키는 방법을 구축하게 되는 것

(자동화를 꾀하는 부분은 보통 코드가 빌드되면서 최종적으로 배포가 되는 단계까지)

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

대표적인 세 가지 단계

  1. Source 단계: Source 단계에서는 원격 저장소에 관리되고 있는 소스 코드에 변경 사항이 일어날 경우, 이를 감지하고 다음 단계로 전달하는 작업을 수행합니다.
  2. Build 단계: Build 단계에서는 Source 단계에서 전달받은 코드를 컴파일, 빌드, 테스트하여 가공합니다. 또한 Build 단계를 거쳐 생성된 결과물을 다음 단계로 전달하는 작업을 수행합니다.
  3. Deploy 단계: Deploy 단계에서는 Build 단계로부터 전달받은 결과물을 실제 서비스에 반영하는 작업을 수행합니다.

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

 

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

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

다양한 CI/CD Tool 

- Jenkins

- Buildkite

- GitHub Actions

- GitLab CI/CD

- Bitbucket Pipelines

- Circleci