danbibibi
article thumbnail
Published 2024. 2. 28. 13:24
CI/CD(지속적 통합/배포) 정리 DevOps

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
profile

danbibibi

@danbibibi

꿈을 꾸는 시간은 멈춰 있는 것이 아냐 두려워하지 마 멈추지 마 푸른 꿈속으로