ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Jenkins 는 뭘까요
    Infra 2024. 1. 16. 21:55

    Jenkins는 널리 알려진 대로 CI / CD 툴이다.

     

    그전에 CI(Continuous Intergration) / CD(Continuous Delivery)에 대해서 뭔지 대충이라도 알아봐야 한다.

     

    https://artist-developer.tistory.com/24

     

    요약하자면 다음과 같다.

     

    CI :

    지속적인 통합으로, 어플리케이션 개발 단계에서 자동으로 빌드하고 테스트하고 병합하는 과정을 뜻한다.

    CI를 사용하지 않는다고 가정한다면

    단순히 GIT을 통해 커밋하고, 각자의 브랜치에서 작업된 상태를 수동으로 테스트하고, 수동으로 병합해야 한다.

     

    이러한 CI의 주요 목적은 수동으로 하는 과정을 자동화 하여

    결국 버그를 CI가 없는 환경보다 빨리 찾아서 빠르게 품질을 높이는 방법이 된다. 

     

    CD:

     

    지속적인 서비스 제공 혹은 지속적인 배포로서

     

    지속적인 서비스 제공은 변경사항에 대하여 자동으로 공유 리포지토리에 병합하고

    지속적인 배포는 병합에서 더 나아가서 사용자들에게 보여지는 제품으로 릴리즈 되는 것이다.

     

     

     

     

    이제 다음으로 젠킨스에서는 어떻게 진행하냐를 보자.

     

    젠킨스에서 CI / CD

    위의 글을 바탕으로 젠킨스에서는 CI / CD를 구축하기 위해 

     

    FreeStyle 방법과 Jenkinsfile을 정의하여 사용하는 Pipeline 방법이 있다.

     

    FreeStyle 방법은 젠킨스에서 GUI를 통해 구축하는 방법이고

     

    Pipeline 방법은 스크립트 파일인 Jenkinsfile에다가 CI / CD 설정을 정의하여 구축하는 방법이다.

     

    FreeStyle 방법은 GUI 쉽게 구축할 수 있다는 장점은 있지만, 

     

    해당 CI / CD 설정을 바꾸려면 젠킨스 GUI 환경에서만 설정하여야 하고 

     

    각 과정들이 어떻게 진행되고 있는지 알아보기 힘들다. (직접 콘솔에 출력되는 문구들로 확인해야함)

     

    Pipeline 방법은 스크립트를 작성하는 방법이기에

     

    Jenkinsfile을 작성하는 문법을 익혀야 한다는 점에서 FreeStyle보다는 익히는데 시간이 더 소요되지만

     

    CI / CD 설정을 수정하기 위해서 직접 GUI를 켤 필요 없이 Jenkinsfile  스크립트만 변경하면 된다.

     

    또한 각 과정들이 스테이지로 분리되어 GUI로 진행과정이 보이기에, 

     

    만약 실패 한 경우 어떤 과정 중에 실패하였는지 알아보기 편하다.

     

    아래의 두 사진은 FreeStyle 과 Pipeline 각각의 진행과정을 살펴보는 방법을 캡쳐하였다. 

    위는 직접 로그를 추정하여 진행과정을 알아봐야 하는 FreeStyle 로그 사진이다.
    출처 : https://jojoldu.tistory.com/355

     

    젠킨스의 간단한 동작과정 (feat. GITHUB)

     

    보통 Github와 연동을 많이 하기에 Github와 jenkins를 연동 한 기준으로 얘기한다.

     

    기본적으로 각각의 개발자들이 기능들로 브랜치를 나눠서 개발하고 Merge 를 하게 된다면

     

    깃허브에서는 해당 Merge에 반응하여 젠킨스에게 "CI / CD 진행해!" 라고 전달한다.

    (이 때 Github의 Webhook을 이용한다.)

     

    여기서 젠킨스는 "OK" 하고 해당 리포지토리를 먼저 클론을 진행한다.

     

    클론을 받고난 뒤,  해당 리포지토리에 연결된 파이프라인 혹은 프리스타일 프로젝트 대로 CI / CD를 진행한다.

     

     

     

    이제 간단하게 알아봤으니 다음 포스팅에서 FreeStyle을 통한 CI / CD 구축을 진행한다.

     

     

    'Infra' 카테고리의 다른 글

    Nginx - 웹 서버와 WAS  (0) 2024.02.21
Designed by Tistory.