#1.Summary.
아래는 Jenkins 공식 홈페이지에서 Jenkins를 정의한 멘트다.
What is Jenkins?
Jenkins is a self-contained, open source automation server which can be used to automate all sorts of tasks related to building, testing, and delivering or deploying software.
Jenkins can be installed through native system packages, Docker, or even run standalone by any machine with a Java Runtime Environment (JRE) installed.
간단히 말해 Jenkins는 다양한 플러그인을 통해 개발 환경과 통합하여 효율적인 작업 흐름을 지원하고, 소프트웨어 개발에서 자동 빌드, 테스트, 배포를 자동화하는 오픈 소스 CI/CD 도구.
#2.Main.
장점
1.오픈 소스이자 무료
Jenkins는 무료로 사용할 수 있는 오픈 소스 도구. Jenkins가 사랑받는 가장 큰 이유라고 생각.
2.많은 플러그인 지원
Jenkins는 1,500개 이상의 플러그인을 지원하며, 다양한 도구(Git, Docker, Kubernetes, AWS 등)와의 통합이 가능.
이를 통해 개발, 빌드, 테스트, 배포 환경을 유연하게 구성할 수 있는데 어떻게 보면 오픈 소스의 전형적인 특징.
3.많은 커뮤니티 지원
Jenkins는 큰 커뮤니티가 지원하며, 풍부한 문서와 튜토리얼이 제공. 문제가 발생할 경우 커뮤니티 내에서 확인 가능.
개인적으로 다양한 오픈 소스들 공식 홈페이지 중에 Jenkins (공식 홈페이지 URL : https://www.jenkins.io/) 정도만 상위권이라고 생각. 또한, 워낙 유명한 오픈소스기에 온오프 커뮤니티도 많이 활성화되어 있는 상태.
4.확장성 및 유연성
Jenkins는 다양한 프로젝트 크기와 요구 사항에 맞게 확장 가능합니다. 파이프라인, 멀티브랜치 파이프라인 등을 사용하여 복잡한 워크플로를 유연하게 처리.
5.파이프라인 코드화
Jenkins 파이프라인 기능을 사용하면, CI/CD 과정을 코드로 정의하여 버전 관리 및 재사용성을 높일 수 있고, 이는 더 나은 유지보수성을 제공.
단점
1.복잡한 설정 및 관리
Jenkins는 워낙 플러그인도 많고 플러그인 간에 호환성, 의존성, 충돌과 같은 부분에 대한 관리 포인트가 많다. 사실 많은 플러그인들이 많기에 좀 더 생각해보면 당연하게 발생하는 문제라고 생각.
2.UI/UX가 사용자 친화적 X
개인적으로 생각하는 Jenkins의 최대 단점이라고 생각. 비슷한 기능을 하는 친구들인 Travis CI, Bamboo, GitLab과 비교해봐도 상대적으로 등장한 지 오래되서 그런지 UI/UX가 사용자 친화적이지 않다. 사용해본 많은 Tool 중에 UI/UX 적응하는 데 가장 시간을 소요했다고 생각.
#3.Conclusion
워낙 유명한 CI/CD 도구인 Jenkins라 좀만 검색해봐도 수많은 정보들이 이미 존재하고 있고, 사용하면서 느낀 것들만 작성해보도록 하겠다. 뭐가 되었든 개인적으로 가장 유명하고 비록 UI/UX는 사용자 친화적이라고 잘 느껴지지는 않지만, 많은 사용자들에 의해 발전하고 있는 대표적인 CI/CD Tool이라고 생각.