쌩로그

CI/CD + 지속적인 전달(Continuous Delivery) 본문

Deploy

CI/CD + 지속적인 전달(Continuous Delivery)

.쌩수. 2023. 6. 29. 13:25
반응형

목록

  1. 포스팅 개요
  2. 본론
      2-1. CI
      2-2. CD
      2-3. 지속적인 전달
  3. 요약

1. 포스팅 개요

CI/CD를 구축하는데 있어서 CI/CD에 대한 개념을 정리해보고자 포스팅하게 되었다.

쁠라스(+) 지속적인 전달

2.본론

2-1. CI

CIcontinuous integration 의 줄임말로써 지속적인 통합을 의미한다.

CICI/CD 파이프라인을 구현하기 위한 첫 번째 단계이다.

CI의 이점

  • 배포 위험 감소 : 코드를 작성하면서 지속적으로 병합하면 초기에 발생하는 모든 오류를 해결할 수 있다.
  • 높은 품질 : 수작업의 상당 부분을 자동화하면 개발자가 더 높은 수준의 테스트 활동에 집중할 수 있다.
  • 비용 절감 : 지속적 통합을 구현하고 세분화된 배치로 나누어 많은 작업을 자동화하면 소프트웨어 전달과 관련된 비용을 크게 줄일 수 있다.

라고 나온다.

글 하단에 관련 링크를 걸어놨는데, 인텔리제이를 만든 회사JET BRAINS의 글이니 참고바란다.

2-2. CD

CDcontinuous deploy의 줄임말이다.
CD에 대해서 아래에 참고한 링크에서 말하길

"코드 변경이 파이프라인의 이전 단계를 모두 성공적으로 통과하면 수동 개입 없이 해당 변경 사항이 프로덕션에 자동으로 배포되는 것"

을 의미한다고 나와있다.

다음으로 설명할 지속적인 전달 쪽에서 CD에 대한 설명을 조금 더 보충할 수 있을 거 같다.

2-3. 지속적인 전달

지속적인 전달도 영어로만 보면 CD이긴한데, CI/CD에서 쓰는 CD와는 다른 의미의 CD이다.
영어로는 continuous delivery인데, 앞글자를 따면 지속적인 전달도 CD이긴하다.

그런데 지속적인 배포를 나타내는 CD빌드로부터 배포 이전 과정이 모두 완료되면 자동으로 배포하는 것을 의미한다고 앞서 얘기했는데, 이 지속적인 전달은 배포 이전 단계의 릴리즈(배포 준비 완료)과정까지를 의미한다.

CD(Continuous Deploy : 지속적인 배포) 의 그림과 비교해보면, 마지막 단계와의 차이점을 확인할 수 있을 것이다.

지속적인 전달(Continuous Delivery)CI와 CD(지속적인 배포)의 중간단계가 아닐까..라는 개인적인 생각이 든다.

역시 페이지 하단에 관련링크가 있다.

지속적인 전달의 특징들을 보면 다음과 같다.

지속적인 전달은 소프트웨어를 빌드하고 릴리스하는데 필요한 수작업 단계를 자동화하는 방법이다.

지속적인 전달의 핵심은 프로젝트의 코드가 항상 배포 가능한 상태에 있도록 하는 것이 핵심이다.

지속적인 전달의 목표는 소프트웨어 릴리즈 프로세스를 더 빠르고 안정적으로 만들어 피드백을 받기까지 소요되는 시간을 단축하고, "수동 프로세스를 통해 가능한 것보다" 더 빠르게 사용자에게 가치를 제공하는 것이다.

사용자에게 빠르고 안정적으로 소프트웨어를 제공하는 것이 지속적인 전달의 목표가 아닐까..라는 개인적인 생각이 든다.

지속적이 전달의 이점소프트웨어를 보다 간편하고 빠르게 릴리스할 수 있어 프로덕션으로 배포 빈도를 높일 수 있고, 사용자는 신규 기능과 버그 수정을 사용자에게 더 빠르게 받아볼 수 있으며, 개발자소프트웨어의 사용 방식을 확인하고 그에 따라 계획을 조정할 수 있다.

즉, 변경사항이 생기면 빠르게 수정해서 배포할 수 있고, 버그나 오류가 있을 경우 역시 빠르게 개선해서 제공할 수 있는 이점이 있다.

그리고 이 과정이 끝났을 때 바로 지속적인 배포(CD)를 통해 사용자에게 서비스를 제공할 수 있다.

3. 요약

CI는 지속적인 통합을 의미하고, 이를 적용하면 개발 초기에 오류를 잡을 수 있어 더욱 더 안정적으로 소프트웨어 서비스를 제공할 수 있다.

CD는 지속적인 배포를 의미하고, 배포 이전까지의 모든 단계가 완료되었을 때 자동으로 배포되는 것을 의미한다.

배포되기 이전에 배포 준비 완료 단게를 거쳐야 하는데, 이 과정이 바로, 지속적인 전달이다.

관련 블로그&링크

JET BRAINS 지속적인 통합
JET BRAINS 지속적인 전달
JET BRAINS 지속적인 배포
참고 블로그

728x90
Comments