본문 바로가기
IT Knowledge/DevOps

CI/CD의 개념, 필요이유, 장점

by Seok. 2020. 12. 29.
반응형

CI/CD란?

- 애플리케이션 개발 단계를 자동화하여 애플리케이션을 보다 짧은 주기로 고객에게 제공하는 방법 또는 전략

- 코드통합, 테스트, 릴리즈, 배포(Deployment)의 애플리케이션 라이프사이클 전체 과정을 자동화하고 모니터링 가능하도록 하는 것, 이러한 연속된 과정을 "CI/CD 파이프라인"이라고 부른다.

 

CI와 CD의 차이점

CI/CD는 세부적으로 아래와 같이 나눠지며 개발,배포 단계에 따라 적용되는 전략이 달라진다.

 - CI : Continuous Integration(지속적인 통합)

 - CD : Continuous Delivery(지속적인 서비스 제공)

 - CD : Continuous Deployment(지속적인 배포)

 

CI(Continuous Integration)

 - 여러 개발자들이 같은 애플리케이션을 동시에 작업할 있도록 하는 것이 목표

 - 여러 개발자들 간에 서로 코드 충돌을 방지하는 것이 목적

 - 개발자들이 적용한 변경사항이 버그 테스트를 거쳐 공유 레포지터리(SVN or GitHub) 병합되는 것을 뜻한다.

 - 자동화된 테스트에서 기존코드와 신규코드간에 충돌이 발견되면, CI 통해 버그를 빠르고 자주 수정할 있음.

 

 

CD(Continuous Delivery)

 - CI과정 이후, 유효한 코드를 최종 프로덕션 환경의 레포지토리에 릴리즈.

 - 운영팀은 이 레포지토리에서 애플리케이션을 실시간으로 프로덕션 환경으로 배포할 있게 .

 

 

CD(Continuous Deployment)

 - CI/CD 마지막 단계로, 애플리케이션을 레포지토리(SVN or GitHub)에서 프로덕션으로 자동 릴리즈 하는 작업

 - 수동으로 릴리즈하는 운영팀의 문제를 해결합니다. (서버가 여러대일 경우 중요하다)

 

 

CI/CD 지원 툴

 - Jenkins

 - Openshift

 - Travis

 - CircleCI ...

 

 

CI/CD 적용 장점

많은 수정을 한 번에 배포하지 말고, 자주 여러번 수정배포하면서, 개발의 효율성과 릴리즈 기간도 단축할 있다!

소스 커밋에서 릴리즈까지 자동으로 수행!

 

 

 

출처 : https://www.redhat.com/ko/topics/devops/what-is-ci-cd

 

반응형

댓글