CI : 개발자를 위한 자동화 프로세스인 지속적인 통합 (Continuous Integration)
CD : 지속적인 서비스 제공(Continuous Delivery) 및 지속적인 배포(Continuous Deployment)
지속적 통합(Continuous Integration, CI)
개발자를 위한 자동화 프로세스, Code-Build-Test 단계 구성
지속적 배포(Continuous Delivery/Deployment, CD)
지속적인 서비스 제공(Continuous Delivery) 및 지속적인 배포(Continuous Deployment)를 의미, 이 두 용어는 상호교환적으로 사용된다. Release - Deploy - Operate 단계 구성
지속적 배포 사례 - Github Page
지정해둔 디렉터리에 정해진 방식에 따라 잘 커밋하기만 하면, Github Page가 알아서 해당 index.html 파일과 해당 디렉터리에 있는 파일을 잘 번들링해서 Github Page 서버에 업로드한다.
자동으로 인터넷에 배포가 되고, 만든 결과물을 공유할 수 있다.
CI/CD는 지속적 통합 및 지속적 제공의 구축 사례만을 지칭할 때도 있고, 지속적 통합, 지속적 제공, 지속적 배포라는 3가지 구축 사례를 모두 의미하는 것 일 수도 있다.
=> "지속적인 서비스 제공"은 때로 지속적인 배포의 과정까지 포함하는 방식으로 사용되기도 한다.
배포 자동화
: 한 번의 클릭 혹은 명령어 입력을 통해 전체 배포 과정을 자동으로 진행하는 것
배포 자동화가 필요한 이유
=> 배포 자동화를 통해 전체 배포 과정을 매번 일관되게 진행하는 구조를 설계하여 휴먼 에러 발생 가능성을 낮출 수 있다.
: 아래 그림과 같이, 수 없이 진행되는 배포 과정을 자동화시키는 방법
위 그림에서 자동화되는 부분은 코드가 빌드 되면서 최종적으로 배포되는 단계까지이다.
이 부분을 지속적인 통합 및 배포를 위해 자동화 단계로 만드는데 이것을 파이프라인을 구축한다고 표현한다.
배포에서 파이프라인(Pipeline) : 소스 코드의 관리부터 실제 서비스로의 배포 과정을 연결하는 구조