애플리케이션 개발 단계부터 배포까지의 모든 과정을 자동화하여 효율적이고 빠르게 사용자에게 제품을 제공하는 방법이다.
CD는 상황에 따라 지속적인 제공, 지속적인 배포 두 가지의 의미를 가질 수 있다.
코드 변경사항을 자주 커밋하여 다른 작업자의 작업물과의 충돌을 최소화해야 한다.
작업물은 CI 서버에서 자동으로 메인 리포지토리에 머지되고 빌드, 유닛 및 통합 테스트를 거치게 된다.
이를 통해 협업 과정에서 발생하는 작업물의 충돌을 해결하고 버그를 빠르게 발견하여 수정할 수 있다.
CI 단계가 선행돼야 한다.
코드를 리포지토리에 자동 릴리즈한다.
CI 단계의 결과물을 배포할 준비 단계에 해당한다.
최종적으로 사용자에게 배포하는 단계에 해당한다.
프로젝트의 성향에 따라 개발자의 검증을 거쳐 수동 배포를 하는 경우 이 단계는 자동화에서 생략된다.
Code => Merge => Build => Test => Release => Deploy