CI/CD
Continuous Integration/Continuous Delivery(지속적 통합/지속적 배포)
→ 애플리케이션 개발 단계를 자동화해서 애플리케이션을 더욱 짧은 주기로 고객에게 제공하는 방법이다.
지속적인 통합, 지속적인 서비스 제공, 지속적인 배포 세 단계로 걸친다.
CI/CD 파이프라인
CI/CD는 애플리케이션의 통합 및 테스트 단계서부터 제공 및 배포에 이르는 애플리케이션의 라이프 사이클 전체에 걸쳐 지속적인 자동화와 모니터링을 제공한다. 이런 구축 사례를 일반적으로 CI/CD 파이프라인이라고 부른다.
CI
개발자를 위한 자동화 프로세스인 지속적인 통합을 의미한다. 지속적인 통합이 제대로 구현되면 애플리케이션 코드의 새로운 변경 사항이 정기적으로 빌드 및 테스트를 거쳐 공유 레포지토리에 병합된다.
- 여러명의 개발자가 동시에 개발과 관련된 코드 작업을 할 경우 서로 충돌하는 문제를 이 방법으로 해결할 수 있다.
- 빌드와 테스트가 자동화하는 과정이라고 볼 수 있다.
CD
지속적인 서비스 제공(Continuous Delivery) 및 지속적인 배포(Continuous Deployment)를 의미한다.
이 두 용어는 서로 상호 교환 된다.
지속적인 제공(Continuous Delivery)
개발자들이 애플리케이션에 적용한 변경 사항이 버그 테스트를 거쳐 레포지토리에 자동으로 업로드 되는 것.
- 이 레포지토리에서 애플리케이션을 실시간 프로덕션 환경으로 배포할 수 있다.
지속적인 배포(Continouous Deployment)
개발자의 변경 사항을 레포지토리에서 고객이 사용 가능한 프로덕션 환경까지 자동으로 릴리스 하는 것.
- 애플리케이션 제공 속도를 저해하는 수동 프로세스로 인한 운영팀의 프로세스 과부하 문제를 해결한다.
- 지속적인 배포는 파이프라인의 다음 단계를 자동화 함으로써 지속적인 서비스 제공의 장점을 활용한다.
예시) 깃허브에서의 CI/CD
개발자가 어플리케이션에 변경 사항을 커밋한 후 몇 분 이내에 애플리케이션을 자동으로 배포되어서 적용된다.
- CI: 깃허브에 올라온 개발자의 변경사항을 자동으로 테스트해 애플리케이션에 문제가 없다는 것을 보장한다.
- CD(지속적 제공): 애플리케이션에 적용한 코드와 빌드와 테스트를 성공적으로 진행했을 때 깃허브와 같은 코드 저장소에 자동 업로드 된다.
- CD(지속적 배포): 지속적 제공을 통해 성공적으로 병합한 코드 내역을 AWS와 같은 배포 환경으로 보낸다. ⇒ 릴리스라고도 부른다.
참고한 블로그
https://www.hanl.tech/blog/ci-cd-기본개념과-가장-많이-쓰이는-도구-5가지/
https://www.redhat.com/ko/topics/devops/what-is-ci-cd
https://yozm.wishket.com/magazine/detail/2184/
'CS' 카테고리의 다른 글
0. 서버란 무엇인가 (0) | 2024.09.15 |
---|---|
Docker (0) | 2023.11.06 |