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
댓글