1. 젠킨스(Jenkins)란?
모든 언어의 조합과 소스 코드 레포지토리에 대한 지속적인 통합(Continuous integration, CI)과 지속적 배포(continuous delivery, CD) 환경을 구축하기 위한 도구다. 빌드, 테스트, 배포 프로세스를 자동화하여 소프트웨어 품질과 개발 생산성을 높일 수 있다.
편리한 설정
웹 기반의 콘솔로 다양한 인증 기반과 결합이 가능하며 권한 관리 기능을 통해 안전한 빌드/배포 환경을 구축할 수 있다. 수많은 플러그인을 사용하여 자동화 할 수 있어 반복되는 작업을 줄일 수 있다. 빌드/배포의 결과에 대해 통지 받을 수 있는 설정이 간편하고 다양한 채널을 통해 빠르게 피드백을 받을 수 있다.
안정적인 빌드/배포 환경
소스 버전 관리 툴과 연동하여 코드 변경을 감지하고, 자동화 테스트를 포함한 빌드를 수행하여 소프트웨어 품질을 향상시킬 수 있다. 자동화 테스트에는 코딩 표준 준수 여부 체크, 유닛 테스트, 통합 테스트 등을 설정할 수 있고 테스트 결과에 대한 피드백을 받아 잠재적인 오류를 사전에 예방할 수 있다. 빌드 결과물을 지속적으로 배포하도록 설정하여 개발 프로세스 전체를 자동화할 수 있다.
다양한 활용 및 손쉬운 확장
Jenkins는 많이 사용 되고 있는 오픈 소스 소프트웨어로 문서화가 잘 되어 있다. 빌드/배포 이외에도 스케쥴링을 이용한 배치 작업에도 활용되는 등 다양한 적용 사례들을 참고할 수 있다. 플러그 인을 직접 개발하여 기능을 확장하는 것도 가능하다.
2. 기능
젠킨스와 같은 CI툴이 등장하기 전에는 일정시간마다 빌드를 실행하는 방법이 일반적이었는데, 젠킨스는 서브버전, Git과 같은 버전 관리 시스템과 연동해서 소스의 커밋을 감지하면 자동적으로 자동화 테스트가 포함된 빌드가 작동하도록 도와주게 되어 편의성이 증가되었다.
이러한 기능을 수행하는 젠킨스는 컴파일 오류를 검출하고, 자동화 테스트를 수행하며, 정적 코드 분석으로 인한 코딩 규약 준수 여부를 체크하고 프로파일링 툴을 이용한 성능 변화 감시, 결합 테스트 환경에 대한 배포 작업의 큰 도움을 준다.
프로젝트 기간 중에 개발자들은 순수한 개발 작업 이외의 DB 설정, 환경 설정, Deploy 작업과 같은 단순 작업에 시간과 노력을 들이는데, 이러한 작업들을 젠킨스를 사용함으로 젠킨스에서 지원하는 웹 인터페이스를 통해 쉽게 수행할 수 있게 된다.
젠킨스는 온갖 종류의 개발 작업을 지원하기 위한 약 1,400가지의 플러그인을 가지고 있는 오픈소스 자동화 서버다. 위 플러그인은 플랫폼, UI, 관리, 소스코드 관리, 빌드 관리의 5가지의 영역을 포괄하고 있다.
젠킨스는 개인이 확인하지 못한 코드 표준 준수 여부의 검사나 정적 분석을 통한 코드 품질 검사를 빌드 내부에서 수행해준다. 또한 2개 이상의 모듈로 구성되는 레이어드 아키텍처가 적용된 프로젝트에는 그에 따르는 빌드 파이프라인 구성이 필요하게 된다. 예를 들면, 도메인 -> 서비스 -> UI와 같이 각 레이어 참조 관계에 따라 순차적으로 빌드를 진행하지 않으면 안되는데, 젠킨스는 이러한 빌드 파이프라인 구성을 스크립트를 통해 작성하거나 제어한다.
젠킨스는 자바 8의 war 아카이브 또는 설치 패키지, 홈브루(Homebrew) 패키지, 도커 이미지, 그리고 소스코드 형태로 사용할 수 있다. 젠킨스 war를 단독으로 톰캣 또는 WAS와 같은 서버렛(Serverlet)으로 실행할 수 있다. 위 어플리케이션을 통해 웹 사용자 인터페이스를 생성해 Rest API의 기능을 수행한다.
3. 설치
https://narup.tistory.com/202?category=1023381
도커를 활용한 젠킨스 설치 방법을 공유합니다
참고
https://www.ncloud.com/product/devTools/jenkins
https://www.itworld.co.kr/news/107527
https://ict-nroo.tistory.com/31
'Backend&Devops > Jenkins' 카테고리의 다른 글
[Jenkins] Linux EC2에서 Jenkins 설치하기(Java 11버전 설치) (3) | 2022.09.23 |
---|---|
[Jenkins] ERROR: Couldn't find any revision to build. Verify the repository and branch configuration for this job. 오류 해결 (0) | 2022.06.03 |
[Jenkins] 젠킨스와 깃허브 연동(GitHub Web Hook AWS) (3) (3) | 2022.03.23 |
[Jenkins] 젠킨스와 깃허브 연동(GitHub Web Hook) (2) (0) | 2022.03.23 |
[Jenkins] 젠킨스와 깃허브 연동(GitHub Web Hook) (1) | 2021.12.14 |