반응형
CI/CD란?
CI/CD란 지속적인 통합(Continuos Integration), 지속적인 서비스 제공(Continous Delivery), 지속적인 배포(Continous Deployment)의 약자이다. CI/CD는 새로운 코드 통합 문제를 해결하기 위한 솔루션으로써, 애플리케이션의 개발 단계를 자동화하여 애필리케이션을 보다 짧은 주기로 고객에게 제공하는 방법이다. 즉, 다시 말해 짧은 주기로 개발중인 애플리케이션을 배포하고 그 과정을 자동화 하는 것이다. CI/CD의 가장 큰 특징은 애플리케이션의 통합 및 테스트 단계에서부터 애플리케이션의 제공 및 배포까지 전체에 걸친 지속적인 자동화와 지속적인 모니터링이다. 대표적인 CI/CD tool로는 Jenkins, Travis CI, Bamboo 등이 있다.
CI(Continuous Integration, 지속적 통합)
- 여러 개발자들이 공유 브랜치에 대해 병합하는 작업을 자동화한 프로세스
- 새로운 코드 변경 사항에 대해 정기적인 Build 및 Test(Unit Test 및 통합 Test)를 거쳐 공유 레포지토리에 병합되는 과정
- 클래스와 기능에서부터 전체 애플리케이션을 구성하는 서로 다른 모듈에 이르기까지 모든 것에 대한 테스트
- 테스트에서 발생한 기존 코드와 신규 코드 간의 충돌 방어
CD(Continuous Delivery, 지속적 서비스 제공)
- CI 파이프라인 이후의 유효한 코드를 레포지토리에 자동으로 릴리즈하는 과정
- 프로덕션 환경으로 배포할 준비가 되어있는 코드베이스를 확보하는 것이 목적
CD(Continuous Deployment, 지속적 배포)
- CI/CD 파이프라인의 마지막 단계
- 애플리케이션을 프로덕션으로 릴리즈하는 작업을 자동화하는 과정
- 개발자가 애플리케이션 변경 사항을 작업한 후 몇 분 이내에 애플리케이션을 자동으로 실행할 수 있는 것을 의미
CI/CD에서 생성되는 데이터 종류
- 소스 코드 정보
신규로 추가한 라인 수, 변경된 라인 수, 소스 코드 파일 개수, 커밋 개수 등
- 소스코드 정적 분석 데이터
- 소스코드 빌드 데이터
작업별 빌드/테스트 시간
빌드 성공/실패율, 빌드 로그
빌드 테스크 리포트, 패키지 정보, 버전 정보
빌드 옵션, 메모리 덤프 데이터
빌드 테스크 의존성 정보
- 빌드 시스템 정보
사용자 시스템 정보(CPU, 메모리 등)
CPU 사용량, 메모리 사용량, 디스크 사용량
빌드 대기 시간, 빌드 장비 활용 시간
출처
www.redhat.com/ko/topics/devops/what-is-ci-cd
engineering.linecorp.com/ko/blog/build-a-continuous-cicd-environment-based-on-data/
devuna.tistory.com/56
반응형
'Software Development' 카테고리의 다른 글
[OOP] SOLID 원칙 (0) | 2021.10.03 |
---|---|
[Design Pattern] 여러가지 디자인 패턴과 간단한 예제 (0) | 2021.03.01 |
[CI/CD] Jenkins란 (0) | 2020.12.21 |
[Test] 테스트 케이스(Test Case)란 (0) | 2020.12.18 |