[ DevOps ] CI/CD

황승환·2021년 11월 10일
1

DevOps

목록 보기
1/2

CI/CD


애플리케이션 개발 단계를 자동화하여 애플리케이션을 보다 짧은 주기로 고객에게 제공하는 방법으로 최근에 각광받고 있다. CI/CD는 Continuous Integration / Continuous Delivery or Deployment의 약자로 그대로 해석해보면 지속적인 통합과 지속적인 배포를 의미하는 것을 알 수 있다.

CI/CD는 애플리케이션의 통합, 테스트 단계부터 제공, 배포에 이르는 애플리케이션의 lifecycle 전체에 걸쳐서 지속적인 자동화와 지속적인 모니터링을 제공한다. 일반적으로 CI/CD 파이프라인이라고 부르고 애자일 방식 협력을 통해 지원된다.

CI (Continuous Integration)


지속적인 통합을 의미하고 CI를 성공적으로 구현하면 새로운 코드 변경 사항이 정기적으로 빌드, 테스트되어 공유 repository에 통합되고 이는 여러명의 개발자들이 함께 작업을 할 때의 코드 충돌 문제를 해결할 수 있다.

CD (Continous Delivery or Deployment)


CD는 Delivery와 Deployment 두 단어로 모두 쓰인다.

  • 우선 서비스 제공에 해당하는 Delivery는 개발자들이 적용한 변경 사항이 버스 테스트를 거쳐 repository에 자동으로 업로드되는 것을 의미한다. 이는 개발팀과 비즈니스팀 간의 가시성과 소통 문제를 해결해주고, 최소한의 노력으로 새로운 코드를 배포하는 것을 목표로 한다.
  • 배포에 해당하는 Deployment는 변경 사항을 repository에서 고객이 사용 가능한 production 환경까지 자동으로 릴리스하는 것을 의미한다. 이는 수동 프로세스로 인한 운영팀의 프로세스 과부하 문제를 해결한다.

정리

CI/CD는 파이프라인으로 표현되는 실제 프로세스를 의미하고 애플리케이션 개발에 지속적인 자동화 및 지속적인 모니터링을 추가하는 것을 의미한다.

  • 지속적인 통합은 merge 단계에서 발생할 수 있는 개발자들의 코드 충돌 문제를 막을 수 있다.
  • 지속적인 제공은 코드 변경 사항 병합부터 production에 적합한 빌드 제공에 이르는 모든 단계에 테스트 자동화와 코드 릴리스 자동화가 포함되어 운영팀이 보다 빠르고 쉽게 production으로 배포할 수 있게 된다.
  • 지속적인 배포는 개발자가 변경 사항을 작성한 후 몇 분 이내에 애플리케이션을 자동으로 실행할 수 있게 되어 이를 통해 사용자 피드백을 지속적으로 수신하고 통합하는 일이 수월해진다.
profile
꾸준함을 꿈꾸는 SW 전공 학부생의 개발 일기

0개의 댓글