[Jenkins] 젠킨스는 무엇인가?

안지환·2025년 1월 30일
0

DevOps

목록 보기
3/6

Jenkins 란

Jenkins는 자바로 작성된 오픈 소스 자동화 서버
지속적 통합(CI)와 지속적 배포(CD) 프로게스를 구축하는데 지속적 인도 프로세스를 구축하는데 널리 이용됩니다.

Jenkins는 원래 썬 마이크로즈(Sum Microsystems)에서 개발된 허드슨(Hudson) 이라는 이름으로 공개된 바 있으나, 오라클(Oracle)이 허드슨(Hudson)을 인수하고 독점 소프트웨어로 전환하기로 하자 이름을 젠킨스(Jenkins)로 바꾸고 현재까지 오픈소스 솔루션으로 개발 지속되고 있습니다.

젠킨스의 특징

  • 다양한 프로그래밍 언어 지원
  • 플러그인을 통한 확장
    • 사용자가 직접 플러그인을 작성해 젠킨스의 기능을 확장하는 것도 가능
  • 이식성
    • 여러 종류의 컴퓨터에서뿐만 아니라 컨테이너 및 클러스터 환경에도 부드럽게 적용
  • 대부분 소스 관리 시스템 지원
  • 분산 처리 지원
    • 마스터/슬레이브 구조를 채택하여 여러 노드에서 작업 수행
  • 코드로 파이프라인 구성
    • 프로세스 자동화에 적합

젠킨스 아키텍처

마스터 슬레이브 구조

  • 슬레이브(slave)는 에이전트(agent)라고 부르기도 함
    마스터
  • 빌드 시작 트리거 포착 (예: 코드 커밋)
  • 알림 (예: 빌드 실패를 사용자에게 전달)
  • 클라이언트와 통신하며 HTTP 요청 처리
  • 에이전트에서 실행 중인 작업의 우선순위 조정 등 빌드 환경 관리
    에이전트
  • 마스터에 의한 개시 후 모든 작업을 처리
    젠킨스 인스턴스는 항상 테스트용과 프로덕션용으로 분리 운용해야 함
  • 개발팀보다 운영팀에서 주의를 기울여야 하는 부분
  • 젠킨스 소프트웨어 업데이트
  • 신규 플러그인 적용

CI/CD 파이프라인의 변경 및 유지보수

조직 (개발팀, 테스트팀, 데브옵스팀)이 늘어날 때마다 마스터 인스턴스의 수를 늘려 가는 방식

  • 비교: 수직적 확장 - 마스터에 대한 부하가 증가함에 따라 마스터 시스템에 자원을 추가하는 방식

테스트 인스턴스와 프로덕션 인스턴스

젠킨스 인스턴스는 항상 테스트용과 프로덕션으로 분리 운영해야 함

  • 개발팀보다는 운영팀에서 주의를 기울여야 하는 부분

시스템 설정 변경이 일어날 때 프로덕션에 적용하기 이전 철저한 검증이 필요

  • 젠킨스 소프트웨어의 업데이트
  • 신규 플러그인 적용
  • CI/CD 파이프라인의 변경 및 유지보수
profile
BackEnd Developer

0개의 댓글

관련 채용 정보