Continuous Delivery라는 용어는 2010년 집필된 [Continuous Delivery: Reliable Software Release through Build, Test, and Deployment Automation]라는 저서를 통해 대중화됨
CI(Continuous Integration)를 통한 빌드의 자동화 및 유닛의 통합 테스트 수행 이후 이어지는 CD(Continuous Delivery) 프로세스는 유효한 소스코드를 리포지토리에 자동으로 전달한다. 따라서 효과적인 CD의 프로세스를 실현하기 위해서는 개발 파이프라인에 CI가 먼저 구축되어야 한다. 이러한 지속적 제공의 목표는 운영 환경으로 배포할 준비가 되어 있는 코드 베이스를 확보하는 것에 있다.
CD는 소스코드의 변경 사항을 병합하고, 운영 환경에 배포 가능한 적합한 빌드 제공에 필요한 테스트 자동화, 소스 배포의 자동화가 포함된다. 이러한 CD 프로세스를 수행하면 운영팀이 보다 빠르고 손쉽게 애플리케이션을 운영 환경으로 배포할 수 있다.
지속적인 배포인 Continuous Deployment는 CI/CD 파이프라인의 마지막 단계로, 운영 환경으로 배포 준비가 완료된 빌드를 리포지토리에 자동으로 릴리스하는 Continuous Delivery의 확장된 형태인 Continuous Deployment는 애플리케이션을 운영환경으로 릴리스하는 작업을 자동화 한다.
운영 환경으로 빌드를 배포하기 이전의 파이프라인 단계에는 수작업이 없기 때문에 지속적인 배포는 자동화된 테스트에 많은 부분 의존하게 된다.
실제 사례는 지속적인 배포를 위해 개발자가 애플리케이션에 변경 사항을 작성한 후 몇분 이내 애플리케이션을 자동으로 실행할 수 있는 것을 말한다. 이를 통해 사용자의 피드백을 지속적으로 확인하고 봉합함으로써 애플리케이션의 배포로 인한 서비스의 안정성 저하의 문제를 해결할 수 있다.
ㅁ CD(Continuous Delivery/Continuous Deployment)의 프로세스
Coninuous Delivery/Continuous Deployment 프로세스는 다음과 같은 단계로 수행
구분 | 구성요소 | 내용 |
Continuous Delivery | 빌드 자동화 | ㅇ 운영 환경 배포에 필요한 빌드는 자동화 도구 활용 |
Continuous Integration | ㅇ 개발자가 공유 리포지토리에 코드 체크인 ㅇ 빌드 자동화 도구가 체크인을 확인하고, 오류, 버그, 발급자 정보를 확인하여, 팀에게 진행 결과에 대한 Report 수행 ㅇ 반복적이며, 지속적인 S/W의 Delivery 수행 |
|
테스트 자동화 | ㅇ 새로운 버전의 응용 프로그램 품질과 기능에 대해 점검 ㅇ 파이프라인을 통한 보안, 성능, 컴플라이언스 검증 ㅇ 다양한 자동화된 활동 수행 |
|
배포 자동화 | ㅇ 고객에게 새로운 기능을 수분 이내에 신뢰성 있게 제공 | |
Continuous Deployment | 리포지토리 체크인 | ㅇ 개발 작업 완료 후 리포지토리에 체크인 수행 |
통합 테스트 | ㅇ CI 서버에서 변경 사항을 선택하여 소스 병합 ㅇ Unit 테스트 결과를 통해 스테이징 환경에 반영 후 QA 테스트 수행 |
|
운영 환경 배포 | ㅇ QA 테스트 통과 시 빌드가 운영 환경으로 전달 ㅇ CI 서버에서 운영 환경에 빌드 병합 여부 최종 확정 및 배포 |
ㅁ Coninuous Delivery/Continuous Deployment 기대 효과
구분 | 구성요소 | 내용 |
Continuous Delivery | 배포 위험 최소화 | ㅇ 변경 사항을 작은 조각으로 배포함으로써 배포 위험의 최소화 ㅇ 문제 발생 시 빠르고 손쉽게 복원 가능 |
프로세스 모니터링 | ㅇ 진행 절차나 프로세스 모니터링 가능 ㅇ 운영 환경과 동일 환경에서 전체 프로세스 사전 점검 가능 |
|
사용자 피드백 | ㅇ 작게 구성하여 빠르게 사용자 피드백 확보 ㅇ 실사용자로부터 애플리케이션의 유용성에 대한 빠른 피드백 |
|
Continuous Deployment | 생산성 및 품질 향상 | ㅇ 제품에 대한 집중도가 높아지며, 업무 효율 및 생산성 향상 ㅇ 테스트에 집중하고, 반복 작업 자동화를 통한 품질 향상 |
업무 프로세스 개선 | ㅇ 통합 파이프라인을 통해 팀과 프로세스 간 통합 ㅇ 개발, 테스트 및 운영 환경 전반에 워크플로우 생성 ㅇ 기존 툴과의 연동을 통해 간단하게 작업 수행 가능 |
'AWS DevOps > AWS CICD 서비스' 카테고리의 다른 글
AWS CodeDeploy (0) | 2021.02.21 |
---|---|
AWS CodeBuild (0) | 2021.02.20 |
AWS CodeCommit (0) | 2021.02.20 |
CI/CD를 위한 도구들 (0) | 2021.02.20 |
CI(Continuous Integration) - 지속적인 통합의 개요 (0) | 2021.02.19 |