CI/CD

도현수·2022년 10월 13일
1
post-custom-banner

CI CD

CI

개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)

CD

지속적인 서비스 제공(Continuous Delivery) 및/또는 지속적인 배포(Continuous Deployment)

일반적인 앱의 개발 및 유지보수의 단계는 다음과 같다.

Plan - Code - Build - Test - Release - Deploy - Operate -....반복

CI의 단계

개발자를 위한 자동화 프로세스이며 Code - Build - Test 단계에서 꾀할 수 있다.

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

개발자는 코드를 자주 원격 코드 저장소에 push하고, 테스트 및 빌드를 거치며 결과는 통해 빌드가 성공했는지 실패했는지 확인을 하고, 이를 통해 다시 개선 방안을 찾는다.
통합과정을 통해 버그를 일찍 발견하고, 테스트가 완료된 코드에 빠른 전달이 가능해지며 지속적 배포가 가능해진다.

CD의 단계

이 부분은 Release - Deploy - Operate 단계에서 꾀할 수 있다.

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

테스트 자동화와 코드 릴리스 자동화를 포함하며, 운영팀이 보다 빠르고 손쉽게 애플리케이션을 프로덕션으로 배포할 수 있게 된다.

CI/CD의 영역

결과적으로 CI/CD는 파이프라인으로 표현되는 실제 프로세스를 의미하고, 어플리케이션 개발에 지속적인 자동화 및 지속적인 모니터링을 추가하는 것을 의미한다.


배포 자동화

배포 자동화의 이유?

  • 먼저 수동적이고 반복적인 배포 과정을 자동화함으로써 시간이 절약
  • 휴먼 에러(Human Error)를 방지

파이프라인

배포에서 파이프라인(Pipeline)이란 용어는 소스 코드의 관리부터 실제 서비스로의 배포 과정을 연결하는 구조를 뜻한다. 파이프라인은 전체 배포 과정을 여러 단계로 분리하며, 각 단계는 파이프라인 안에서 순차적으로 실행되고, 각 단계마다 주어진 작업들을 수행한다.

파이프라인을 여러 단계로 분히라 때, 대표적으로 쓰이는 세 가지 단계는 다음과 같다.

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

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

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

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

post-custom-banner

0개의 댓글