자속적 통합 CI, 지속적 배포 CD 두 가지로 정의되며 일반적으로 둘이 합쳐 CI/CD라고 한다.
CI : 코드를 커밋하고 빌드했을 때 정상적으로 작동하는지 반복적으로 검증해 애플리케이션의 신뢰성을 높이는 작업
애플리케이션을 배포하기 위한 환경을 하나하나 구성하는 것은 매우 복잡하고 번거로운 일이며, 고정된 값이 아니기 때문에 매니페스트로 작성해 그대로 사용할 수 없으며 구성 환경에 따라 많은 부분을 동적으로 변경해야 한다.
이렇게 동적 변경을 도와주는 도구가 커스터마이즈와 헬름이다.
프로젝트 : Ci/cd의 모든 작업의 순서와 정의를 모아 둔 전체 작업
아이템 : 프로젝트를 생성하는 방식이 freestyle, pipeline이 있는데 이렇게 프로젝트를 정의하고 생성하는 것
젠킨스의 pipeline : 연속적인 작업을 코드 또는 파일로 정의해주는 기능.
파이프라인 문법을 통해 젠킨스는 코드로 작성한 내용이 실제 동작하는 작업이 되는 코드로서의 파이프라인을 구현할 수 있다.
스크립트 문법 : 젠킨스의. 고유 문법
선언적인 문법 : 우리에게 익숙한 문법
블루그린 배포 : 모든 파트가 업데이트 된 후 트래픽을 전달하자. 기존에 배포된 디플로이먼트에 트래픽이 전달되고 있다면 새로운 디플로이먼트가 사용자의 트래픽을 정상적으로 처리할 수 있을 때 새로운 디플로이먼트를 사용하고 기존에 사용하던 디플로이먼트를 삭제한다.
장점 : 서비스를 중단 없이 연속적으로 배포가 가능하다.
문제가 발생한 경우 원복하는것도 수월하다.
단점 : 최소 2배의 리소스가 필요하다.
GitOps : 깃을 통해 모든 것을 선언적으로 깃허브 저장소와 같은 scm에 업데이트하면 젠킨스가 변경을 감지해 대상 시스템을 배포