CI/CD
- 코드를 빌드, 테스트, 배포하는 과정을 거쳐 소프트웨어 개발을 추진하는 프로세스
- 애플리케이션 개발부터 배포까지 모든 단계를 자동화하여 좀 더 효율적이고 빠르게 사용자에게 빈번히 배포할 수 있는 것
개발자가 code를
메인 리포지토리에 merge 하면,
자동으로 빌드 되고,
자동으로 테스트 되고,
릴리즈 되고(배포준비완료),
배포되는 것이라고 할 수 있음
DevOps 엔지니어
- CI/CD를 위한 파이프라인을 구성하고, 자동화
- 중간중간 모니터링 지표를 구성하여, 개발자들의 개발 방향을 가이드
Continuous Integration (지속적 통합)
- 빌드/테스트 자동화
- 어플리케이션의 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트 되어 공유 레포지토리에 통합되는 것
- 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 하는 경우 서로 충돌할 수 있는 문제를 해결할 수 있음 (애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 레포지토리에 통합되므로)
- 결과적으로 코드 검증에 들어가는 시간이 줄어들고, (빈번히 통합하고, 빌드 및 테스트는 자동화되어 있으므로)
- 개발 편의성이 증가하고,
- 테스트 코드를 톧과한 코드만 레포지터리에 올라가기 때문에, 좋은 코드 퀄리티를 유지할 수 있음
CI 자동화 적용 후
1. 개발자는 형상관리 툴에 작업한 코드를 통합함
2. 빌드와 테스트가 자동으로 진행되고, 버그가 생기는 경우, 다음날 버그를 확인하여 해결
Continuous Delivery / Deployment (지속적 배포)
- 배포 자동화
- 공유 레포지토리로 자동으로 Release하는 것, Production 레벨까지 자동으로 deploy 하는 것
- 품질 저하 없이 최대한 빨리 사용자에게 새로운 기능을 제공할 수 있음
- 개발자가 배포보다 개발에 더욱 신경 쓸 수 있도록 도와줌
- 원클릭으로 수작업 없이 빌드, 테스트, 배포까지 자동화할 수 있음
CD 적용 후
1. CI를 적용하여 코드를 검증
2. 배포 환경과 비슷한 곳에서 검증 진행
3. 검증된 SW를 실제 프로덕션 환경으로 배포
'DevOps' 카테고리의 다른 글
[Jenkins] Jenkins 정리 (0) | 2024.02.29 |
---|---|
[Docker] Docker 정리 (0) | 2024.02.28 |
[Git] cherry-pick (0) | 2023.12.01 |
[Git] 커밋 메시지 템플릿 설정 (0) | 2023.11.30 |
[Git] 3. Git branch (0) | 2023.09.01 |