개념

CI/CD (Continuous Integration/Continuous Delivery)란 자동화하여 애플리케이션을 더욱 짧은 주기로 고객에게 제공하는 방법

CI/CD의 기본 개념은 지속적인 통합, 지속적인 서비스 제공, 지속적인 배포.

CI/CD는 새로운 코드 통합으로 인해 개발 및 운영팀에 발생하는 문제(일명 "통합 지옥(integration hell)")를 해결하기 위한 솔루션

 

CI/CD 의 차이

CI(Continous Integration, 지속적 통합) : 개발자를 위한 자동화 프로세스인 지속적인 통합(Continous Integration), 지속적인 통합이 제대로 구현되면 애플리케이션 코드의 새로운 변경 사항이 정기적으로 빌드 및 테스트를 거쳐 공유레포지토리에 병합됨. 따라서 여러 명의 개발자가 동시에 어플을 개발하므로써 서로 충돌할 수 있는 문제를 이 방법으로 해결할 수 있음

 

CD(Continous Delivery/Deployment, 지속적 제공) : Delivery와 Deployment는 상호교환되어 사용됨. 두 가지 의미 모두 파이프라인의 추가 단계에 대한 자동화를 뜻하지만 때로는 얼마나 많은 자동화가 이루어지고 있는지를 설명하기 위해 별도로 사용됨

지속적인 제공이란 개발자들이 어플리케이션에 적용한 변경사항이 버그테스트를 거쳐 레포지토리에 자동으로 업로드되는것을 의미하며, 운영팀은 이 레포지토리에서 어플리케이션을 실시간 프로덕션 환경으로 배포함. 이는 개발팀과 비즈니스팀간의 가시성 및 커뮤니케이션 부족 문제를 해결해 줌

지속적인 배포(또다른 의미의 CD;Continous Deployment) 란 개발자의 변경사항을 레포지토리에서 고객이 사용가능한 프로덕션 환경까지 자동으로 릴리스하는것을 의미

CI/CD Pipeline

 

CI/CD tool 예시

  • Jenkins : build, test, deploy 등의 전반적인 CI/CD 를 할 수 있게 만드는 Open-Source tool
  • Travis CI : Cloud-based tool, Github 기반 open-source project에 대중적인 CI tool
  • AWS CodePipeline : Amazon WebServices에 의해 제공되는 cloud-based tool
  • GitLab CI/CD, CircleCI 등

 

자료 출처 : https://www.redhat.com/ko/topics/devops/what-is-ci-cd

'SW development' 카테고리의 다른 글

register dump debugfs  (0) 2023.02.19

+ Recent posts