메뉴 닫기

Jenkins

“Jenkins”


모든 언어의 조합과 소스 코드 레포지토리에 대한 지속적인 통합(Continuous integration, CI)과 지속적 배포 (Continuous delivery, CD) 환경을 구축하기 위한 도구이다. 

빌드, 테스트, 배포 프로세스를 자동화하여 소프트웨어 품질과 개발 생산성을 높일 수 있다.

 

[개  요]

✅ 종    류 : 개념정의

✅ 난이도 : ⭐

✅ 내용요약 : Jenkins 란

✅ 테스트환경 : 

✅ 관련직무 : 시스템&클라우드 엔지니어

1. Jenkins

1️⃣ Jenkins 기본 개념

ㆍJava Runtime Environment에서 동작

ㆍ다양한 플러그인들을 활용해서 각종 자동화 작업을 처리할 수 있다.

ㆍAWS 배포, 테스트, 도커 빌드 등 할게 너무 많으니 각각의 컴포넌트들을 하나의 플러그인으로 모듈화를 해놓았는데 이를 활용하여 사용하면 된다.

ㆍ가장 핵심적인 파이프라인, 시크릿 키마저도 플러그인으로 동작시킬 수 있다.

ㆍ일련의 자동화 작업의 순서들의 집합인 Pipeline을 통해 CI/CD pipeline을 구축한다.

ㆍ플러그인들을 잘 조합해서 돌아가게 하는게 Pipeline이라고 할 수 있다.

2️⃣ Jenkins 대표 Plugins

ㆍCredentials Plugin

    └ Jenkins는 그냥 단지 서버이기 때문에 배포에 필요한 각종 리소스에 접근하기 위해서는 여러 가지 중요 정보들을 저장하고 있어야 한다.

    └ 리소스에는 클라우드 리소스 혹은 베어메탈에 대한 ssh 접근 등을 의미한다.

ㆍGit Plugin => Jenkins에서 git에 대한 소스코드를 긁어와서 빌드할 수 있도록 도와줌

ㆍPipeline => 핵심 기능인 파이프라인마저도 플러그인이다.

ㆍDocker plugin and Docker Pipeline => Docker agent를 사용하고 Jenkins에서 도커를 사용하기 위한 플러그인

3️⃣ Jenkins 의 이점

1. 편리한 설정
웹 기반의 콘솔로 다양한 인증 기반과 결합이 가능하며 권한 관리 기능을 통해 안전한 빌드/배포 환경을 구축할 수 있다. 수많은 플러그인을 사용하여 자동화 할 수 있어 반복되는 작업을 줄일 수 있다. 빌드/배포의 결과에 대해 통지 받을 수 있는 설정이 간편하고 다양한 채널을 통해 빠르게 피드백을 받을 수 있다.

2. 안정적인 빌드/배포 환경
소스 버전 관리 툴과 연동하여 코드 변경을 감지하고, 자동화 테스트를 포함한 빌드를 수행하여 소프트웨어 품질을 향상시킬 수 있다. 자동화 테스트에는 코딩 표준 준수 여부 체크, 유닛 테스트, 통합 테스트 등을 설정할 수 있고 테스트 결과에 대한 피드백을 받아 잠재적인 오류를 사전에 예방할 수 있다. 빌드 결과물을 지속적으로 배포하도록 설정하여 개발 프로세스 전체를 자동화할 수 있다.

3. 다양한 활용 및 손쉬운 확장
Jenkins는 많이 사용되고 있는 오픈 소스 소프트웨어로 문서화가 잘 되어 있다. 빌드/배포 이외에도 스케쥴링을 이용한 배치 작업에도 활용되는 등 다양한 적용 사례들을 참고할 수 있다. 플러그인을 직접 개발하여 기능을 확장하는 것도 가능하다.

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x