본문 바로가기
IT/DevOps

CI/CD 란 무엇인가?

by twofootdog 2020. 1. 13.

DevOps 관련 공부를 하다보면 CI/CD에 대한 말이 자주 나온다. 하여 CI/CD에 대해 정리를 간단하게 해보고자 한다.

 

1. CI/CD란?

CI/CD란 Continuous Integration(지속적인 통합), Continuous Delivery(지속적인 서비스제공), Continuous Deployment(지속적인 배포)의 약자로, 애플리케이션 개발 단계를 자동화하여 애플리케이션 개발을 보다 짧은 주기로 고객에게 제공하는 방법이며, 새로운 코드 통합으로 인해 개발 및 운영팀에서 발생하는 문제(일명 통합지옥(Integration hell))를 해결하는 솔루션이다.

CI/CD는 애플리케이션 통합, 테스트, 제공, 배포에 이르는 라이프사이클 전체에 걸쳐서 지속적인 자동화와 모니터링을 제공하며, 이러한 구축사례를 CI/CD 파이프라인이라 부른다.

 

2. CI와 CD의 차이점?

  • CI : Continuous Integration(지속적인 통합)의 약자로 개발자를 위한 자동화 프로세스를 의미한다. CI가 구축될 경우 애플리케이션 코드 변경사항이 정기적으로 빌드/테스트되고 공유 저장소에 병합되어 여러명의 개발자가 동시에 프로그램을 개발할 경우 서로 충돌할 수 있는 문제를 해결할 수 있다. 
  • CD : Continuous Delivery(지속적인 서비스제공), Continuous Deployment(지속적인 배포) 의 약자로 Continuous Delivery란 개발자들이 애플리케이션에 적용한 변경사항이 버그테스트를 거쳐 저장소에 자동 업로드 되는 것을 의미하며, 운영팀은 애플리케이션을 이 저장소에서 실시간 운영 환경으로 배포할 수 있다. 이는 개발팀과 운영팀의 가시성 및 커뮤니케이션 문제를 해결해 줄 수 있다. 또한 Continuous Deployment(지속적인 배포)란 개발자의 변경사항을 저장소에서 고객이 사용 가능한 운영환경까지 자동으로 릴리즈 하는 것을 의미한다. 이는 애플리케이션 수동 배포 프로세스로 인한 프로세스 과부하 문제를 해결해준다. 

위 설명이 어려우면 그냥 간단하게 CI는 빌드/테스트 자동화, CD는 배포 자동화라고 기억하자.

 

3. CI/CD 지원 툴

  • Jenkins
  • Travis
  • CircleCI
  • Bamboo

 

 

 

 

참고

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

 

CI/CD란 무엇일까요?

CI/CD는 애플리케이션의 통합 및 테스트 단계에서부터 제공 및 배포에 이르는 애플리케이션의 라이프사이클 전체에 걸쳐 지속적인 자동화와 지속적인 모니터링을 제공합니다.

www.redhat.com

 

 

 

댓글