[CI/CD] Jenkins 개념

최제혁·2023년 9월 6일
0

CI/CD

목록 보기
3/3

젠킨스(Jenkins)

  • 젠킨스(Jenkins) 란?

    • 소프트웨어의 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유 영역의 저장소에 지속적으로 업로드하여 CI (지속적인 통합)이 가능하도록 하는 도구
    • Git과 같은 버전관리 시스템과 연동하여 소스의 커밋을 감지하면 테스트가 포함된 빌드가 작동
  • 장점

    • 프로젝트 표준 컴파일 환경에서의 컴파일 오류 검출
    • 자동화 테스트 수행
      • 정적 코드 분석에 의한 코딩 규약 준수 여부 체크
    • 프로파일링 툴을 이용한 소스 변경에 따른 성능 변화 감시
    • 결함 테스트 환경에 대한 배포 작업
    • 애플리케이션 서버로의 Deploy(배포) 등 간략화
  • 기능

    • 각종 배치 작업의 간략화 ( DB 셋업 , 환경설정, 배포 , 라이브러리 릴리즈 등 )
    • 빌드 자동화
    • 자동화 테스트 ( 코드 변경을 감지하고 자동화 테스트 수행 )
    • 코드 표준 준수 여부 검사
    • 빌드 파이프라인 구성 ( 여러 모듈로 이루어진 프로젝트에 유용 )
  • 젠킨스를 이용한 CI / CD 과정

    1. 로컬에서 개발 후 깃허브로 커밋 및 푸시
    2. 젠킨스가 이를 인지하여 빌드 및 테스트
    3. 빌드가 성공할 경우 배포 서버로 전송
    4. 빌드가 실패할 경우 로그를 남기고 알림
  • CI / CD 란?

  • CI ( Continuous Integration )

    • 기본적으로 코드이다
    • 여러명의 많은 개발자들이 코드 베이스를 계속해서 통합하는 것
    • 여러 개발자들의 코드를 각각 가능한 빠르게 배포 하는 것을 의미한다
    • 즉, 코드를 통합한다는 것을 뜻함
  • CD ( Continuous Delivery & Continuous Deployment )

    • 내부 사용자 혹은 사용자 모두에게 서비스를 지속적으로 배달
    • 즉, 코드 베이스가 항상 배포 가능한 상태를 유지하는 것
    • 코드 베이스를 사용자가 사용 가능한 환경에 배포하는 것을 자동화하는 것
  • 젠킨스 파이프라인

  • 파이프 라인이란 ?

    • CI / CD 파이프라인을 젠킨스에 구현하기 위한 일련의 플러그인들의 집합이자 구성
    • 즉, 여러 플러그인들을 이 파이프라인에서 용도에 맞게 사용하고 정의함으로써 파이프라인을 통한 서비스가 배포된다
    • 젠킨스가 동작되기 위해서는 여러 플러그인들이 파이프라인을 통해 흘러가는 과정
  • 파이프라인 구성 요소

    • Sections ( 가장 큰 개념 )
      • Agent section
      • Post section
      • State section
      • Steps section
  • 파이프라인의 Section 자세히 알아보기

    • Agent section
      • 젠킨스는 많은 일을 해야하기 때문에 혼자 하기 버겁다
      • 여러 slave node를 두고 일을 시킬 수 있는데, 이처럼 어떤 젠킨스가 일을 하게 할 것인지를 지정한다.
      • 젠킨스 노드 관리에서 새로 노드를 띄우거나 혹은 docker이미지를 통해 처리할 수 있다.
      • 쉽게 말하면 젠킨스를 이용하여 시종을 여러 명 둘 수 있는데 어떤 시종에게 일을 시킬 것이냐 하는 것을 결정하는 것이다.
      • 예를 들면 젠킨스 인스턴스가 서버 2대에 각각 떠있는 경우, 마스터에서 실행 시킬 것인지 slave에서 시킬 것인지를 결정할 수 있다.
    • Post section
      • 스테이지가 끝난 이후의 결과에 따라서 후속 조치를 취할 수 있다.
      • 각각의 단계별로 구별하면 다음과 같다.
      • 성공 시에 성공 이메일, 실패하면 중단 혹은 건너뛰기 등등, 작업 결과에 따른 행동을 취할 수 있다.
    • Stage Section
      • 어떤 일들을 처리할 것인지 일련의 stage를 정의한다.
      • 일종의 카테고리라고 보면 됨
    • Steps Section
      • 한 스테이지 안에서의 단계로 일련의 스텝을 보여줌
      • Steps 내부는 여러 가지 스텝들로 구성되며 여러 작업들을 실행 가능
      • 플러그인을 깔면 사용할 수 있는 스텝들이 생겨남
      • 빌드를 할 때 디렉토리를 옮겨서 빌드 한다던가, 다른 플러그인을 깔아서 플러그인의 메서드를 활용해서 일을 처리한다던지 하는 작업들을 할 수 있다.
      • 플러그인을 설치하면 쓸 수 있는 Steps들이 많아진다.
  • Declaratives 문법

  • Declaratives

    • Environment, stage, options, parameters, triggers, when 등의 Declarative가 있음
    • 각 stage안에서 어떠한 일들을 할 것인지 정의하는게 Declarative 이다.
  • Declaratives의 단계

    • Environment
    • Parameter
      • 파이프라인 실행 시 파라미터 받음
    • Triggers
      • 어떤 형태로 트리거 되는가 ?

      • 이 파이프라인이 어떤 주기로 실행 되는가 ?

    • When

0개의 댓글

관련 채용 정보