젠킨스의 간단한 설명

젠킨스(Jenkins)는 정확히 무엇을 도와주는 녀석일까?

- 젠킨스는 지속적 통합(CI)및 지속적 배포(CD)도구로, 
 개발 프로세스의 빌드, 테스트, 배포 등을 자동화하고 관리해주는 도구이다.

CI(Continuous Integration) 지속적인 통합

  • 개발자들이 작성한 코드를 중앙 저장소에 자주 통합하고, 자동화된 빌드와 테스트를 통해 문제를 빠르게 발견하고 해결할 수 있게 해주는것.

CD(Continuous Deployment) 지속적인 배포

  • 모든 변경사항을 자동화된 테스트와 빌드를 거친 후 실제 서버에 자동으로 배포하는 기술. ( 현제 HF서비스에서는 ArgoCD를 사용하여 진행한다. )

젠킨스의 주요 기능

1. 젠킨스는 마스터노드와 슬레이브노드로 구성된다

  • 이러한 구조를 통해 다양한 환경에서 동시에 빌드와 테스트를 수행할 수 있으며, 부하 분삭 및 확장성을 제공한다.

2. SCM트리거 및 웹훅

  • 젠킨스는 소스코드관리(SCM)시스템과 통합하여 변경사항이 발견될때 자동으로 빌드 및 테스트를 실행할 수 있다. 웹훅이나 폴링 방식을 사용하여 scm시스템에서 변경사항을 감지하고 해당작업을 트리거한다.

3. 결과 및 로그저장

  • 젠킨스는 빌드 및 테스트작업이 완료되면 해당결과와 로그를 저장한다. 이를 통해 빌드 실패의 원인을 찾거나 테스트 결과를 검토할수 있다.

4. 로그 및 메트릭 수집 및 분석

  • 젠킨스는 빌드, 테스트 및 배포 과정에서 발생하는 로그와 메트릭을 수집하고 분석하여 성능문제, 장애, 최적화 포인트 등을 식별할 수 있다.

젠킨스의 동작원리

  1. 개발자가 소스코드 변경사항을 SCM 시스템에 푸시한다.

  2. 젠킨스는 웹훅이나 폴링 방식을 통해 변경사항을 감지하고 Jenkinsfile에 정의된 파이프라인을 실행한다.

  3. 젠킨스는 마스터노드에서 슬레이브 노드로 작업을 할당하고 슬레이브 노드에서 빌드, 테스트 , 배포 작업을 수행한다.

  4. 각 단계에서 필요의 경우, 플러그인을 사용하여 다양한 도구와 통합하여작업을 수행할 수 있다.

  5. 작업이 완료되면 젠킨스는 결과와 로그를 저장하고 개발자에게 알림을 전송한다.