소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴(CI - Continuous Integration)
다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유영역에 있는 저장소에 빈번히 업로드함으로써 지속적 통합이 가능
CI (Continuous Integration)
: 여러 개발자들의 코드를 계속해서 통합하는 것CD (Continuous Delivery)
: 개발자들이 코드를 계속 작성하면, 사용자 및 내부 사용자들이 계속 쓸 수 있게 만드는 것 → 지속적으로 배포가능한 상태를 유지하는 것코드를 코드저장소에 push
로컬 환경에서 프로젝트 build
추출물을 테스트 서버로 전송
배포 스크립트를 통해 배포
테스트 진행
테스트 완료 후 코드저장소 release 브랜치에 push
버저닝 후 로컬 환경에서 프로젝트 빌드
추출물을 본 서버로 전송
배포 스크립트를 통해 배포
문제점
배포의 진행사항, 배포시기, 이슈 등을 수기로 작성하고 개발환경을 프로젝트에 맞게 셋팅해야함
반복되는 push, build, 전송, 배포 등을 하는데에 불필요한 시간이 많이 듦
쿠버네티스
: 컨테이너화된 애플리케이션의 자동 디플로이, 스케일링 등을 제공하는 관리시스템클러스터(Cluster)란?
: 컨테이너 형태의 애플리케이션을 호스팅하는 물리/가상 환경의 노드들로 이루어진 집합앞서 CI/CD pipeline 구성을 말한 것처럼, 젠킨스의 플러그인 중 쿠버네티스의 관련 많은 기능들이 지원되며 쿠버네티스 자동화배포의 최적화 되어있음