DS's『 행복합시다 』

Carpe Programming/eGovFramework

Hudson이란?

nolite 2012. 5. 30. 21:39
반응형


Hudson이란?

 

Hudson은 지금은 Oracle의 일부분인 Sun micro systems의 엔지니어인 Kohsuke Kawaguchi라는 사람이 2005년부터 만들기 시작했다. Hudson은 java.net에 포함된 프로젝트 중 하나로 최근 사용되는 CI툴 중 많이 사용되는 것중 하나다. Hudson의 장점 중 하나는 플러그인 형태로 지원되는 높은 확장성이다. 지금도 여러 종류의 플러그인이 개발되고 있는데 여러분이 Hudson을 설치한 서버에서 인터넷 연결만 가능하다면 별도로 다운로드하고, 압축을 푸는 작업 없이 Hudson플러그인 관리 화면에서 몇 번의 클릭만으로 다양한 플러그인을 추가할 수 있다. Hudson은 CI 툴로써 지원하는 형상관리 툴의 종류도 많은데, 기본적인 CVS와 Subversion 외에도 지원하는 형상관리 툴이 10개가 넘는다. 게다가 Hudson의 가장 큰 장점은 클라우드 컴퓨팅을 제공한다는 것이다. 즉 200kb도 되지 않는 jar 파일을 전송하여, 여러 장비에서 Hudson의 각종 작업을 수행할 수 있다. Hudson과 클라우드에 대한 자세한 내용은 Hudson 커미터인 Kohsuke Kawaguchi와 Jesse Glick가 2009년 SunOne 컨퍼런스에서 발표한
'Continuous Integration in the Cloud with Hudson'이라는 자료에 자세하게 나와있다.
해당 문서는 인터넷에서 검색해보면 쉽게 찾을 수 있을 것이다.

 

[특징]

 

1. 지속적인 소프트웨어 프로젝트의 빌드와 테스팅
   -> 지속 통합 시스템(cruiseControl 또는  damageControl과 같은 기능으로써, judson은 프로젝트의 변경 사항을 개발자들이

        보다 편하게 통합하고, 실제 사용자들은 언제나 최신의 빌드를 유지할 수 있도록 만들어주는) 기능을 보다 사용하기

        편하도록 하는 것

 

2. 외부에서 동작하는 작업 수행 내용을 감시
   -> cron과 procmail 작업과 같은 것으로 원격에서 동작중인 것들이 그 대상.
       예를 들면 cron에 스케쥴에 맞게 설정하게 되면 모든 출력 내용이 담긴 일반 이메일로 전달하게 되는데 작업을 중지 시킬 때

       까지 계속 반복적으로 수행. hudson도 출력물들을 유지하며, 잘못 발생되는 경우 간단한 알림 기능을 제공.

 

[주요기능]

 

1. 간편한 설치 : java -jar hudson.war 만 한 번 생행 하거나, servlet 컨테이너에 배포만 하면 됨.

2. 간편한 설정 : 웹 기반 ui를 통해 모든 설정 가능.
                      즉시 에러 체크 및 인라인 도움말 제공됨.
                      xml 설정 파일을 수동으로 설정할 필요가 없다. (직접 수정도 가능)

3. change set 제공 : cvs/subversion을 통해 빌드하면서 각종 변경된 사항 목록을 생성할 수 있다.

4. 영구 링크 : 자체적으로 설정된 각종 페이지들을 갈끔하게 읽을 수 있는 url을 제공.
                   이를 통해 어디서든 간단하게 링크를 설정 할 수 있다.

5. rss/e-mail/im 기능 통합 : 각종 작업 수행 실패에 따른 실시간 알림을 rss 또는 이메일을 통해 빌드 결과 사항을 감시하고

                                        알려주게 됩니다.

6. 최종 작업 완료 후 태그 넣기 : 빌드가 완료 된 후에도 tagged long이 가능하다.

7. junit/testng 보고서 제공 : junit 테스트 결과는 표 형태로 요약되어 빌드가 깨지기 시작한 때와 같은 버전 연역 정보들을

                                       나타낼 수 있다. 버전 연역 경향을 그래프로 표시할 수도 있다.

8. 빌드 결과물 분산 : hudson은 여러대의 컴퓨터에 빌드/테스트 부하를 분산시켜 진행시킬 수 있다.
                             이를 통해 개발자들의 환경 중에 별도 작업이 없는 워크스케이션 가지 활용할 수 있다.

9. 파일 추적기능 : hudson 에서는 jar 들을 빌드 생성하는 작업들 내용 및 빌드 시 사용하는 각종 jar들의 버전이 무엇인지 등을

                         추적 할 수 있다. 이 작업은 hudson 외부에서 제작된 jar 역시 포함되기 때문에, 의존성 추적을 할 프 로젝트에

                         서도 원할하게 동작된다.

10. plugin 지원 : hudson 에서는 써드 파티 플러그인(http://wiki.hudson-ci.org/display/HUDSON/Plugins)을 통해

                       기능을 확장할 수 있다. 팀에서 사용할 도구 및 프로세스 등을 플러그인을 작성함으로써 hudson에서 지원하게

                       할 수 있다.

 

[설치]                   

 

먼저 jre 1.5이상의 버전이 필요.
hudson.war를 다운 받은 뒤 java -jar hudson.war 라고 실행.
컨테이너 별 설치 방법은 http://wiki.hudson-ci.org/display/HUDSON/Containers 참조
war 파일의 압축을 풀었으면 hudson/WEB-INF 디렉토리에 chmod 755 hudson 실행
윈도우 환경일 경우 hudson을 서비스 형태로 실행해야 굳이 로그인하지 않고도 자동 실행 가능
일반적으로 톰캣을 서비스로 설치하고 hudson 설치

 

 

728x90
반응형