DevOps/CI,CD

[CI/CD] CI/CD 기본 개념

공대생안씨 2023. 12. 27. 11:53

1. CI/CD

  • 지속적인 통합, 지속적인 제공, 지속적인 배포
  • 애플리케이션 개발 단계를 자동화하여 애플리케이션을 더 짧은 주기로 고객에게 제공하는 방법
  • 애플리케이션의 통합 및 테스트 단계에서부터 제공 및 배포 단계까지 라이프사이클 전체에 걸쳐 자동화와 지속적인 모니터링을 제공
  • 구축 사례는 CI/CD 파이프라인 이라고 부름
  • CI/CD 툴로는 Github Actions, GitLab CI/CD, Jenkins, Buildkite 등이 있음

 

2. CI

  • CI(Continuous Integration) : 지속적인 통합
    • 원래는 모든 분기 소스 코드를 수작업으로 병합해야함 (다른 개발자가 동시에 적용하는 변경 사항과 충돌 가능성 있기 때문)
    • CI를 통해서 코드 변경 사항을 공유 branch 로 병합하는 작업을 자동화
    • 병합 후 변경 사항에 대한 build 자동화
    • 각기 다른 레벨의 test 자동화

 

3. CD

  • CD(Continuous Delivery) : 지속적인 제공
    • CI의 자동화된 build, test 이후 유효한 코드를 repository에 자동으로 release
    •  자동화된 프로세스 완료 후 수동으로 배포
  • CD(Continuous Deployment) : 지속적인 배포
    • Continuous Delivery의 확장된 형태
    • repository에 자동으로 release 이후 애플리케이션을 프로덕션으로 release 하는 작업 자동화

 

즉, CI/CD 파이프라인이 모두 구축되면 개발자가 애플리케이션에 변경 사항을 작성하면 몇 분 이내로 클라우드 애플리케이션을 자동으로 실행할 수 있음