다디와 괴발개발

CI/CD 파이프라인 본문

DevOps

CI/CD 파이프라인

아임다디 2022. 2. 21. 18:13

DevOps 개념을 배우다 보면, 지속적 배포, 지속적 통합, 지속적 전달이라는 개념들을 접할 수 있다.

지속적 배포를 위해 CI, CD 파이프라인이 만들어지게 되었는데 한 번 내용을 살펴보자

지속적 통합 (Continuous Integration)

code -> build -> test 단계를 뜻한다.
여기서 codebuild는 개발자의 영역이다.

  • code : 개발자가 코드를 저장소에 push
  • build : 코드 저장소로부터 코드를 가져와 유닛 테스트 후 빌드
  • test : 코드 빌드의 결과물이 다른 컴포넌트와 잘 통합되는지 확인

지속적 통합(CI) 과정의 필요성

  • 버그를 조기에 발견
  • 테스트가 완료된 코드를 빠르게 전달 가능
  • 지속적인 배포를 가능하도록 함

지속적 전달 (Continuous Delivery)

지속적 통합에 성공한 경우 지속적 전달로 이어진다

이 때, 지속적 통합에 반드시 성공한 경우에만 배포로 이어질 수 있다
test이후, release -> deploy -> operate 단계를 뜻한다.

  • release : 배포 가능한 소프트웨어 패키지를 작성한다. 배포에 적합한 빌드를 선정함
  • deploy : 프로비저닝을 진행한다. 서비스를 사용자에게 배포 서버를 통해 노출하는 과정
  • operate : 서비스에 생길 수 있는 현황을 파악하고 문제를 감지한다

프로비저닝 : 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것을 말한다. (출처 : 위키피디아)

출시 vs 릴리즈

  • 출시 : 상품이 시장에 나오거나 내보냄. 비즈니스 관점에서 용어로 사용
  • 릴리즈 : 배포 가능한 소프트웨어 패키지. 애자일 소프트웨어 개발에서의 의미로 한정한다

지속적 배포 (Continuous Deployment)

지속적 배포 = 지속적 통합 + 지속적 전달 = CI/CD 파이프라인

 

모든 코드의 변경이 배포로 이어진다
개발부터 배포까지 모든 단계를 자동화하는 것이 지속적 배포의 핵심이다

특히, 통합, 테스트, 배포 단계에서 모니터링 및 자동화를 통해 개발 프로세스를 향상시키고 이는 CI/CD 파이프라인의 진가를 드러낸다

 

이러한 CI/CD 파이프라인은 DevOps 방식을 통해 더 효과적으로 소프트웨어를 제공하도록 한다.