지속적 전달(Continuous Delivery)은 프로덕션에 릴리스하기 위한 코드 변경이 자동으로 준비되는 소프트웨어 개발 방식입니다. 현대 애플리케이션 개발의 기반인 지속적 전달은 빌드 단계 이후의 모든 코드 변경을 테스트 환경 및/또는 프로덕션 환경에 배포함으로써 지속적 통합을 확장합니다. 적절하게 구현할 경우, 개발자는 언제나 즉시 배포할 수 있고 표준화된 테스트 프로세스를 통과한 빌드 아티팩트를 보유할 수 있습니다.
지속적 전달에서는 개발자가 단순한 유닛 테스트 외에도 다양한 테스트를 자동화할 수 있으므로, 고객에게 배포하기 전에 여러 차원에서 애플리케이션 업데이트를 확인할 수 있습니다. 이러한 테스트에는 UI 테스트, 로드 테스트, 통합 테스트, API 안정성 테스트 등이 포함될 수 있습니다. 이를 통해 개발자는 업데이트를 좀 더 철저히 검증하고 문제를 사전에 발견할 수 있습니다. 온프레미스에서는 힘들었지만, 클라우드에서는 테스트용으로 여러 개의 환경을 생성하고 복제하는 작업을 비용 효율적으로 손쉽게 자동화할 수 있습니다.
지속적 전달에서는 모든 코드 변경이 빌드 및 테스트된 후, 비프로덕션 테스트 또는 스테이징 환경으로 푸시됩니다. 프로덕션 배포 전에 여러 개의 병렬 테스트 단계가 있을 수 있습니다. 지속적 전달과 지속적 배포의 차이점은 프로덕션에 업데이트에 대한 수동 승인 존재 여부입니다. 지속적 배포의 경우 명시적 승인 없이 자동으로 프로덕션이 일어납니다.
지속적 전달은 전체 소프트웨어 릴리스 프로세스를 자동화합니다. 수정 버전이 커밋될 때마다, 업데이트를 빌드 및 테스트한 후, 스테이징하는 자동화된 흐름이 트리거됩니다. 라이브 프로덕션 환경에 배포하는 최종 결정은 개발자가 트리거합니다.
지속적 전달을 사용하면 팀에서 프로덕션에 릴리스하기 위한 코드 변경을 자동으로 빌드, 테스트 및 준비하여, 좀 더 빠르고 효율적으로 소프트웨어를 전달할 수 있습니다.
이러한 방식은 개발자가 수동 작업에 대한 부담을 덜고 고객에게 배포되는 오류 및 버그 수를 줄이는 데 도움이 되는 기능을 활용함으로써 팀의 생산성을 높일 수 있습니다.
좀 더 자주 포괄적으로 테스트를 수행함으로써 더 큰 문제로 발전하기 전에 버그를 발견하고 해결할 수 있습니다. 지속적 전달의 경우 전체 프로세스가 자동화되어 있으므로, 다른 유형의 테스트를 손쉽게 추가하여 수행할 수 있습니다.
지속적 전달을 사용하면 팀이 좀 더 빠르고 좀 더 빈번하게 고객에게 업데이트를 제공할 수 있습니다. 지속적 전달이 적절하게 구현되면, 언제나 즉시 배포할 수 있고 표준화된 테스트 프로세스를 통과한 빌드 아티팩트를 보유하게 됩니다.
지속적 전달과 그 이점, 그리고 AWS CodePipeline 및 AWS CodeBuild를 사용하여 지속적 전달을 구현하는 방법을 자세히 알아보려면 동영상을 시청하십시오.
AWS에서 지속적 전달을 적용할 수 있는 몇 가지 방법이 있습니다.
AWS CodeBuild에서 코드를 빌드하도록 워크플로를 구축하고, 자동 테스트를 실행하며, 코드를 배포하는AWS CodePipeline을 사용하여 지속적 전달을 적용합니다. 자습서를 따라 CodePipeline을 사용해 보십시오.
파트너 솔루션을 살펴보십시오.