개발자로서 살아남기

개발자로서 살아남기 - 젠킨스(JenKins)에 대해

코드 살인마 2021. 12. 31. 00:24
728x90

개요

젠킨스(JenKins)는 어디서 많이 들어본 단어였다. 역시나 한번도 사용한 적이 없다가 팀에서 젠킨스를 활용하여 서버 빌드를 하기도하고, 언젠가는 한번 공부해보고 싶은 툴이였기 때문에 공부한 것을 정리하려 한다.

젠킨스를 알기전에..

SSAFY 프로젝트 당시 3명의 백엔드 개발자와 함께 개발을 진행했었는데 특정 날짜에 코드를 merge해서 돌려보는 작업을 했다. 당연하게도 그 날은 멘붕의 연속이였다. 3명의 commit이 합쳐지니 각자의 환경에서 제대로 작동했던 코드가 merge 후 안돌아가는것이였다.

젠킨스는 이러한 문제를 해결한다. commit을 감지하여 지속적, 자동적으로 통합을 진행하고 빌드,배포까지 하니, 여러 개발자가 코딩을 해도 빌드를 하기위한 특정 날짜를 정할 필요도 없고, 오류가 발생할 일도 없는 것이다.

 

CI/CD란?

 

CI는 Continuous Integration 이다. 지속적으로 통합한다는 것인데 여러 개발자들의 코드베이스를 계속해서 통합하는 것이다.

 

CD는 Continuous Delivery 이다. 배달한다는 것인데 사용자에게 우리의 서비스를 지속적으로 배달한다는 뜻이다. 즉 코드베이스(사람이 작성한 코드)가 항상 배포 가능한 상태를 유지하는 것이다.

 

Continuous Deployment는 코드 베이스를 사용자가 사용가능한 환경에 배포하는 것을 자동화 한다는 것이다.

 

즉 CI/CD란 개발자들이 사용자들이 쓰는 서비스로 전달하는 모든 과정을 지속 가능한 형태 가능하다면 자동으로 배포하여 개발자와 사용자의 격차를 없애는 것이다.

 

젠킨스란?

 

Java 런타임 위에서 동작하는 자동화 서버이다. 빌드, 테스트, 배포 등 모든 것을 자동화 해주는 자동화 서버이다.

  • 다양한 플러그인들을 활용하여 각종 자동화 작업 처리 가능
  • 일련의 자동화 작업의 순서들의 집합인 pipeline을 통해 CI/CD 파이프라인을 구축함

 

plugin

  • Credentials Plugin 젠킨스는 단순히 서버이기 때문에 배포에 필요한 각종 리소스(ex. 클라우드 리소스, 베어메탈에 ssh 접근 등) 에 접근하기 위해서는 여러가지 중요 정보들을 저장하고 있어야한다.(AWS token, Git access token 등..)
  • Git plugin 깃과의 연동기능
  • pipeline(핵심기능인 파이프라인 마저도 플러그인)

처음에는 그냥 Recommend 해주는 것을 깔면 어지간한 것 다 있음

 

 

Pipeline

파이프라인이란 CI/CD 파이프라인을 젠킨스에 구현하기 위한 일련의 플러그인들의 집합이자 구성

즉 여러 플러그인들을 이 파이프라인에서 용도에 맞게 사용하고 정의함으로서 파이프라인을 통해 서비스가 배포됨

 

 

결론

결국 젠킨스를 제대로 사용하기 위해서는 플러그인과 파이프라인을 잘 이용해야하는 것이다. 굉장히 막막해 보이지만 굉장히 많은 정보들이 구글에 있으니 참고하면 자신의 개발환경에 맞게 입맛대로 구성할 수 있을 것이다.