CI/CD(Continuous Integration and Continuous Delivery/Deployment)
약어를 풀어보자면 CI/CD는 지속적인 통합, 지속적인 배포(또는 전달)를 뜻한다. 총 2가지의 의미가 담겨 있다.
- CI(지속적 통합): 빌드 및 테스트를 수행한 뒤, 개발자가 코드 변경 내용을 중앙 리포지토리에 정기적으로 병합하는 것
- CD(지속적 배포 또는 전달): 사용자들이 경험하게 될 실제 운영 환경(프로덕션)을 배포하는 과정을 자동화한 것
CI/CD의 주요 단계
1. Coutinuous Integration(CI)
- 코드 변경 사항을 병합하여 중앙 저장소에 통합
- 자동화된 빌드 및 테스트 실행 → 유닛 테스트 및 통합 테스트를 진행!
2. Continuous Delivery
- CI를 통해 검증된 코드를 배포 + 통합 테스트, 로드 테스트 등의 여러 테스트를 수행하여 실제 운형 환경과 유사한 환경에서 코드의 품질을 검증하는 과정 포함!
- 배포는 개발자가 직접 진행(수동 작업)
3. Continuous Deployment
- 모든 테스트가 통과되면 운영 환경에 자동 배포
- 100% 자동화된 배포 → 배포 파이프라인을 통해 이루어짐
CI/CD 단계 요약
- CI는 코드 변경 사항의 빠른 병합과 검증을 수행
- CD(Delivery)는 운영 환경 및 배포 준비 자동화
- CD(Deployment)는 운영 환경 및 배포 자동화
*** Delivery와 Deployment는 배포를 수동으로 하느냐, 자동으로 하느냐로 구분할 수 있다!
CI/CD의 장점
결국 CI/CD는 개발과 배포를 효율적으로 할 수 있도록 돕는다.
개발 - 신속한 코드 변경 내용 병합
배포 - 프로덕션 릴리스 자동화
자동화를 통해 반복 작업이 감소하고, 항상 배포 가능한 상태(오류 검증)를 유지할 수 있음!
지속적으로 테스트/검증 과정을 거치기 때문에 버그 발생 가능성을 최소화할 수 있다.
CI/CD 도구
CI/CD 작동 원리
결론
- CI/CD는 소프트웨어 개발에서 효율적인 배포를 위해 필수적이다.
- 자동화와 지속적인 테스트(검증)을 통해 빠르고 안정적으로 배포할 수 있도록 한다.
- 팀 협업 효율성을 높이고, 배포의 자동화를 통해 사용자의 피드백을 빠르게 반영할 수 있다.
'DevOps' 카테고리의 다른 글
CI/CD 파이프라인 구축하기 - 3.2 (Docker 컨테이너 자동 빌드 및 자동 배포) (0) | 2024.12.13 |
---|---|
CI/CD 파이프라인 구축하기 - 3.1 (Docker 설정 및 Jenkins SSH server 설정하기) (0) | 2024.12.13 |
[문제 해결] Dockerfile에서 tar 명령어 실행 안 될 때 해결 방법 (0) | 2024.12.13 |
CI/CD 파이프라인 구축하기 - 2 (Tomcat) (1) | 2024.12.13 |
CI/CD 파이프라인 구축하기 - 1 (Git, Jenkins, Maven(Java)) (3) | 2024.12.04 |