Over the limit

[Devops] CI/CD 란? 본문

Devops/Devops

[Devops] CI/CD 란?

ellapk 2024. 10. 9. 20:06

CI/CD란

테스트, 통합, 배포의 과정을 자동화하는 것을 의미한다.

모든 단계를 자동화하면서 사용자에게 빠르고 효율적이게 배포할 수 있다.

 

 

대표적인 툴로는 Jenkins, GithubActions, GitLab CI/CD, Bitbucket Pipelines 등이 있다.

 

 

 

 

1.1 CI(Continuous Integration), 지속적인 통합 

간단히 설명하면 빌드, 테스트의 자동화이다.

 

한글로 해석하면 지속적인 통합이지만, 더 설명하자면 개발자를 위해 빌드와 테스트를 자동화하는 과정이다.

CI는 변경 사항을 자동으로 테스트해 애플리케이션에 문제가 없다는 것을 보장한다.

또한, 코드를 정기적으로 빌드하고, 테스트하므로 여러 명이 동시에 작업을 하는 경우 충돌을 방지하고 모니터링이 가능하다.

 

보통 코드 변경이 업로드 되면 CI가 시작되는데, 도중 문제가 생기면 CI자체가 실패하게된다. 이 과정에서 코드의 오류도 쉽게 파악할 수 있다.

 

 

 

 

1.2 CD(Continuous Deployment), 지속적 배포

간단히 설명하면 배포의 자동화이다.

 

CI를 끝낸 다음 실행하는 작업이다. 배포 준비가 된 코드를 자동으로 서버에 배포하는 작업을 자동화하는 것이다.

CD는 지속적 제공(delivery)와 배포(deployment)라는 의미를 모두 가진다.

 

 

 

-지속적 제공에서의 CD 의미

애플리케이션에 적용한 코드의 빌드와 테스트를 성공적으로 진행했을 때, 깃허브와 같은 코드 저장소에 자동으로 업로드 하는 과정을 말한다. 최소한의 노력으로 코드 배포를 쉽게 하는 것을 목표로 한다.

 

 

-지속적 배포에서의 CD의미

성공적으로 merge한 코드 내역을 AWS과 같은 배포 환경으로 보내는 것 (릴리즈)을 의미한다.

 

 

 

 

 

 

 

 

 

 

참고)

https://yozm.wishket.com/magazine/detail/2184/