[배포] ci cd
[배포] CI CD
1. 지속적 통합
(CI : continuous integration)
팀 구성원이 각자의 작업을 자주 통합하는 소프트웨어 개발 방식으로
CI를 성공적으로 구현할 경우 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 리포지토리에 통합되므로 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문제를 해결할 수 있다.
- Code: 개발자가 코드를 코드 저장소에 Push.
- Build: 코드 저장소로부터 코드를 가져와서 (유닛 테스트 후) 빌드
- (Test): 코드 빌드의 결과물이 다른 컴포넌트와 잘 통합되는지 확인
2. 지속적 배포
(CD : continuous delivery, continuous deployment)
지속적 배포는 지속적 통합 과정이 원활하게 끝나면 바로 고객에게 배포하는 것
개발자의 변경 사항을 리포지토리에서 고객이 사용 가능한 프로덕션 환경까지 자동으로 릴리스하는 것을 의미, 이는 애플리케이션 제공 속도를 저해하는 수동 프로세스로 인한 운영팀의 프로세스 과부하 문제를 해결한다. 지속적인 배포는 파이프라인의 단계를 자동화함으로써 지속적인 제공이 가진 장점을 활용한다.
- Release: 릴리즈 단계에서는 빌드까지 모두 준비가 되었고, 어떤 기능이 개발되었는지 비즈니스 관계자들과 이야기를 나누는 단계로 어떤 기능을 넣을지, 해당 릴리즈는 배포를 할지 말지 결정하는 단계로 여러 의사결정이 이루어진다.
- Deploy: 실제 배포
- Operation: 배포된 소프트웨어를 실제 운용하는 과정으로 해당 과정에서 고객의 피드백을 충분히 받아 기획에 반영한다.
CI/CD요약 ) 애플리케이션 개발 단계를 자동화하여 애플리케이션을 보다 짧은 주기로 고객에게 제공하는 방법