Jenkins, 넌 누구냐 !

Juppi·2021년 3월 25일
2

CI/CD

목록 보기
1/2

Jenkins에 대해 설명하기전, CI/CD에 대해 간단하게 알아보자.

CI/CD란 ?

CI == Continuous Integration

그대로 해석하면 지속적 통합이라는 뜻으로, 여러개발자들의 코드베이스를 계속해서 통합하는 것을 의미한다.

CD == Continuous Delivery / Develop

이 또한 그대로 해석하면 지속적인 배달, 지속적인 배포에 해당한다.

지속적인 배달(CD)에는 아래와 같은 행위들이 포함된다.

  • 사용자에게 서비스를 지속적으로 배달 하는 것
  • 코드베이스가 항상 배포가능한 상태를 유지하는 것
  • 코드만 작성하면 남들이 사용가능한 상태를 만드는 것

지속적인 배포(CD)는 코드베이스를 사용자가 사용가능한 환경에 배포하는 것을 자동화 를 의미한다.

즉, CI/CD란 각각의 개발자들이 개발하는 개발환경을 사용자가 사용가능한 서비스로 전달하는 모든 과정을 지속 가능한 형태로 (가능하다면 자동으로) 만들어서 개발자와 사용자 사이의 격차를 없애는 것이라고 볼 수 있다 !
➡️ 이러한 과정에는 코드를 빌드하고, 테스트하고, 배포하는 활동이 있다.

CI/CD에 대해서는 다양한 예시를 통해 새로운 글에서 자세하게 다룰 예정이다. 이제 Jenkins에 대해서 알아보자 !

Jenkins 🤔?

위에서 내가 CI/CD에 대해 간단하게 언급했던 이유는 바로 Jenkins가 CI/CD를 가능하게 해주는 도구이기 때문이다 !

위 그림은 젠킨스의 공식 로고이다.
마치 집사처럼 생겼는데, 이 로고에서 젠킨스가 하는 역할을 유추할 수 있다.

코드의 지속적인 통합, 여러가지 테스트의 자동화, 완벽한 코드에 대해서 서비스로 배포하는 등의 CI/CD 행위를 젠킨스가 "대신" 해준다.

Jenkins는 기본적으로 java runtime 위에서 동작하는 자동화 서버이다. 위에서 말한 것처럼 build, test, deployment의 모든 것을 자동화해준다.

또, Jenkins에는 다양한 플러그인들이 존재하는데, 이미 만들어져있는 플러그인들을 사용하거나 아니면 직접 만들어서 각종 작업들을 자동화할 수 있다. 대표적인 플러그인으로는 Credentials Plugin, Git Plugin, Pipleline 등이 있다

Pipeline

파이프라인이란 일종의 작업명세서같은 것으로, CI/CD flow를 젠킨스에 구현하기위한 일련의 플러그인의 집합이자 구성이며 젠킨스의 핵심 플러그인이다 !

즉, 젠킨스는 여러 플러그인들을 파이프라인에서 용도에 맞게 사용하고 정의함으로써 CI/CD를 할 수 있게 해주는 도구라고 말할 수 있다 !

파이프라인은 아래 두 가지 형태의 syntax가 존재한다.

  • Declarative (최신, 가독성이 좋음)
  • Scripted Pipeine

Pipeline Syntax : Pipleline 문법에 대한 간단한 소개

Sections

  • Agent section

    여러 slave node를 두고 일을 시킬 수 있는데, 이처럼 어떤 젠킨스가 일을 하게 할 것인지를 지정함

    젠킨스 노드 관리에서 새로 노드를 띄우거나 혹은 docker 이미지등을 통해서 처리할 수 있다

  • Post section

    스테이지가 끝난 이후의 결과에 따라 후속 조치를 취할 수 있음

    → 성공시 이메일, 실패하면 중단 등등

    → sucess, failure, always, cleanup ..

  • stages section

    어떤 일들을 처리할 건지 일련의 stage를 정의 (카테고리)

  • Steps section

    한 stage안에서 단계로 일련의 스텝을 보여줌

Declarative

각 단계에서 사용하는 명령어들, 각 스테이지에서 어떤 일을 할건지 정의하는 것

  • Environment : 어떤 pipeline이나 stage scope 의 환경 변수 설정
  • parameters : 파이프라인 실행시 파라미터 받음
  • triggers : 어떤 형태로 트리거 되는가
  • when : 언제 실행되는가
  • options, stage ...

profile
잠자면서 돈버는 그날까지

2개의 댓글

comment-user-thumbnail
2021년 3월 25일

정리 너무 잘하셨네요~ㅎㅎ
잘 보고 갑니다~^^

1개의 답글