티스토리 뷰
Sun micro systems의 일본출신 엔지니어인 Kohsuke Kawaguchi가 개발하여 2005년 2월 7일 1.0이 발표되었다.
2010년 4월에 Sun을 퇴사하고 Sun이 Oracle에 인수되면서 문제가 생기기 시작하였다.
Hudson이 배포되고 있던 java.net의 인프라 문제로 인해 배포사이트를 다른 곳으로 옮기려는 논의가 Hudson 커뮤니티 내부에서 진행이 되었고, 그런던 중 Oracle의 개발자 메일링 리스트에 Koshuke Kawaguchi를 제외하고 Oracle 직원으로 그 자리를 대체하면서 논란이 시작되었다.
그 후 Oracle에서 Hudson에 대한 상표권리를 주장하면서 논란이 정점에 이르렀다고 한다.
결국 Hudson 커뮤니티에서 Hudson을 Jenkins CI로 개명한다.
그 후 오라클은 2011년 허드슨 프로젝트를 이클립스에 이양한다.
Jenkins란?
소프트웨어 프로젝트를 빌드하거나 cron으로 실행 중인 jobs 등 반복적인 업무를 관리하고 모니터링할 수 있는 어플리케이션이다. 보통 CI툴, CI 서버라도 칭한다.
주요 기능은 다음과 같다.
1. 소프트웨어 프로젝트를 지속적으로 테스팅하고 빌딩함.
2. cron jobs이나 procmail jobs등과 같이 외부 jobs들을 모니터링함.
현재 사용자들
우리나라에선 대표적으로 NHN에서 사용하고 있고, GitHub, Yahoo 등등에서 사용함.
Jenkins의 장점
쉬운 설치
java -jar jenkins.war를 실행하거나 서블릿 컨테이너에 deploy하면 된다. 추가적인 설치나 database가 없다.
쉬운 설정
우리에게 친숙한 web GUI 환경으로 모든 설정을 할 수 있고 각각 도움말을 볼 수 있어서 쉽다.
xml을 몰라도 설정이 가능하지만 xml에 능숙해서 굳이 xml로 설정하고 싶으면 xml 수정도 가능하다.
높은 확장성
현재 약 400여개이상의 플러그인 제공
다양한 형상관리 툴 제공
CVS, Subversion 등 10개가 넘게 지원
클라우드 컴퓨팅 제공
200kb도 되지 않는 jar 파일을 전송하여, 여러 장비에서 Hudson의 각종 작업을 수행함
통합빌드의 장점
- 결함을 초기에 찾을 수 있다
- 프로그램을 통합하는데 소요되는 시간을 단축시킬 수 있다
- 자동화된 일일 빌드가 가능하다
- 테스트 코드가 작성되어 있다면 자동화된 일일 테스트를 할 수 있다
- 완벽하지는 않지만 개발 진척도를 점검하기 위한 좋은 자료가 된다
jenkins 2.x 사용 시 ajp 지원이 되지 않는다(ajp port를 disable)
참고
http://blog.naver.com/palfuni?Redirect=Log&logNo=120154943540
오픈오피스와 허드슨을 포기한 오라클, 향후의 오픈소스 행보는?
Top 10 Jenkins Must-Have Features/Plugins
Jenkins CI recommended plugins
https://jenkins.io/blog/2012/03/13/why-does-jenkins-have-blue-balls/
http://www.praqma.com/stories/top-jenkins-plugins/