2012년 7월 12일 목요일

Hudson

Hudson이란
최근 사용되는 CI(Contunuous Integration) tool중 하나이다. Hudson의 장점 중 하나는 플러그인 형태로 지원되는 높은 확장성이다. Hudson은 또한 클라우드 컴퓨팅을 제공한다. 지속적인 소프트웨어 프로젝트의 Build와 Test하고 외부에서 동작하는 작업 수행 내용을 감시하기 위해 개발 되었다.

[특징]

  1. 지속적인 소프트웨어 프로젝트의 Build/Testing : 지속 통합 시스템(cruiseControl 또는 damageControl과 같은 기능으로써, Hudson은 프로젝트의 편경 사항을 개발자들이 보다 편하게 통합하고, 실제 사용자들은 언제나 최신의 빌드를 유지할 수 있도록 만들어주는 시스템) 기능을 보다 사용하기 편하도록 하는것
  2. 외부에서 동작하는 작업 수행 내용을 감시 : CRON과 PROCMAIL작업과 같은 것으로 원격에서 동작중인 것들이 그 대상. 예를 들면 CRON에 스케쥴에 맞게 설정하게 되면 모든 출력 내용이 담긴 일반 이메일로 전달하게 되는데 작업을 중지 시킬 때 까지 계속 반복적으로 수행.

[주요기능]

  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들의 버전이 무엇인지 등을
  10. 추적 할 수 있다. 이 작업은 hudson 외부에서 제작된 jar 역시 포함되기 때문에, 의존성 추적을 할 프 로젝트에서도 원할하게 동작된다.
  11. 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 설치



# CRON ?
- cron deamon은 리눅스에서 같은 작업을 주기적,반복적으로 실행하기 위한 deamon이다. 주기적인 백업,주기적인 메인 전송 등에 응용 된다.

# Procmail ?
- MDA(Mail Delivery Agent)의 한 종류로 수신한 이메일을 필터링 하는 툴이다. 이것을 이용하여 받은 메일에서 보낸사람,제목,이메일 크기,내용 등으로 필터링이 가능하다.

댓글 없음:

댓글 쓰기

태그