노무현 대통령 배너

'CI Server'에 해당되는 글 4건

  1. 2007/11/05 Cruise Control - Startup
  2. 2007/11/02 Cruise Control - Architecture
  3. 2007/10/31 Cruise Control - Overview (4)
  4. 2007/10/31 CI Server Matrix

Cruise Control - Startup

Development/자동화 2007/11/05 11:30 posted by k16wire
크루즈컨트롤을 시작하기전에 미리 준비해야 하는 부분이 두가지 있습니다. 형상관리 도구와 빌드스크립트 도구입니다. 이에 대한 설명은 여기서는 생략하고 다음 환경이 있다는 가정에서 진행하도록 하겠습니다.
  • 형상관리 : CVS
  • 빌드도구 : Ant
크루즈컨트롤을 설치하기 위해서 설치환경에 맞는 크루즈컨트롤을 다운로드 해야 합니다. 윈도우즈 인스톨러 버전을 받으면 몇번의 클릭만으로 간단하게 설치가 끝납니다. 설치위치는 C:\Program Files\CruiseControl이 됩니다.

크루즈컨트롤의 실행파일은 설치경로 루트에 있는 cruisecontrol.bat (유닉스의 경우 .sh) 파일입니다. 이 파일을 실행하게 되면 크루즈컨트롤의 빌드루프가 실행됩니다. cruisecontrol.jar를 이용해서 직접 실행도 가능합니다.
java -jar dist/cruisecontrol.jar
배치파일을 열어보면 마지막에 위 부분을 여러 옵션과 같이 실행하고 있는걸 확인할 수 있습니다.

사용자 삽입 이미지

크루즈 컨트롤의 환경설정은 config.xml 설정파일을 수정함으로서 가능합니다. 이 설정파일은 XML 파일로서 다음과 같은 속성들을 설정할수 있습니다.
  • 프로젝트별 쓰레드 수
  • 플러그인 정보
  • 데이터 포맷
  • 빌드번호 증감형태
  • 리스너
  • 부트스트래퍼 : 부트스트래퍼 플러그인 인스터를 위한 일종의 컨네이너.
  • 모디피케이션셋 : 형상서버에 관한 설정
  • 스케쥴 : 빌드 일정
  • 로그
  • 퍼블리셔 : 빌드결과를 발행
웹 컨솔로도 설정이 가능한데 웹 브라우저의 주소창에서 http://localhost:8000/이라고 치면 다음과 같은 CruiseControl JMX Console을 볼수 있습니다.
사용자 삽입 이미지

크루즈컨트롤의 웹콘솔은 jetty를 기반으로 하고 있습니다. jetty 설정을 이용하면 웹콘솔에 대한 환경설정이 가능합니다.
  • -webport port : 포트번호
  • -webapppath path : 웹 애플리케이션인 cruisecontrol.war 파일의 위치
  • -ccname name : 크루즈컨트롤 인스턴스를 나타내는 논리명
예를 들어 포트번호 8588, 애플리케이션 위치는 C:\CruiseControl\webapps 한다면 다음과 같이 실행하면 됩니다.
java -jar cruisecontrol-launcher.jar -webport 8588 -webapppath C:\CruiseControl\webapps
크리에이티브 커먼즈 라이선스
Creative Commons License

Cruise Control - Architecture

Development/자동화 2007/11/02 13:44 posted by k16wire
크루즈컨트롤의 아키텍처 다이어그램을 살펴보면 다음과 같습니다.
사용자 삽입 이미지

빌드루프(Build Loop)
빌드루프는 일종의 데몬입니다. 주기적으로 형상관리 서버를 검사하면서 빌드가 필요한 경우에는 실제로 빌드를 실행하고, 빌드 상태를 알려줍니다.
크루즈컨트롤에는 빌드 주기를 정의할수 있습니다. 이 빌드주기에 맞춰서 빌드가 실행되고 빌드로그를 생성한다음 이를 알려줍니다. 데몬 프로세스는 사용자가 사전에 정의해 놓은 빌드 사이클에 따라 동작합니다.
설정파일이 변경되면 데몬을 재 시작해야 새로운 설정이 반영됩니다. 빌드가 끝나면 Build Results JSP를 이용해서 로그 파일을 작성합니다.

결과 JSP(Results JSP)
사용자 삽입 이미지
Build Results JSP는 빌드 루프의 결과를 보여줍니다. 왼쪽 부분은 현재 빌드되고 있는 프로젝트를 나타내는데 이전 빌드의 상세내역에 대한 링크를 제공합니다.

오른족 창은 빌드중에 발생한 에러, 테스트 결과, 최종 빌드후에 일어난 변경 내역을 보여줍니다.








대쉬 보드(Dashboard)
크루즈컨트롤 대쉬보드는 프로젝트 상태를 보여주는 강력한 도구로서 프로젝트의 빌드 상태를 다양한 색상으로 나타내며 각 색상별로 프로젝트의 스냅샷을 보여줍니다.
사용자 삽입 이미지

크리에이티브 커먼즈 라이선스
Creative Commons License

'Development > 자동화' 카테고리의 다른 글

CollabNet Subversion으로 형상관리 서버 꾸미기 - 설치  (2) 2008/01/04
Cruise Control - Startup  (0) 2007/11/05
Cruise Control - Architecture  (0) 2007/11/02
Cruise Control - Overview  (4) 2007/10/31
CI Server Matrix  (0) 2007/10/31
빌드(Build)의 종류  (0) 2007/10/15

Cruise Control - Overview

Development/자동화 2007/10/31 15:44 posted by k16wire
얼마전 실용주의 개발환경을 구성하기 위한 도구를 정리하고 나서 어떤 툴부터 스터디를 시작할까 고민하던중에 마침 업무적으로도 필요하고 해서 크루즈컨트롤에 대해 자세히 살펴보기로 했습니다.

크루즈컨트롤의 원래 의미는 장거리 운전을 할때 운전자가 엑셀을 밟지 않아도 일정한 속도를 유지시켜주는 정속주행 장치입니다. 외국 개발자들은 참 이름도 잘 짓네요. ^^;
 
사용자 삽입 이미지

크루즈컨트롤(Cruise Control) 과 같은 애플리케이션을 CI Server 나 CI System 이라고 부릅니다. 빌드 서버라고 부르기도 하는데 요즘 나온 애플리케이션들이 대쉬보드나 모니터링을 같이 지원하는 경우가 많기 때문에 이 보다는 CI 서버라고 부르는게 맞다고 봅니다.

크루즈컨트롤을 처음 시작한건 마틴 파울러(Martin Fowler)로 유명한 Thought Works사 입니다. 처음 크루즈 컨트롤을 만들기 시작했고 지금도 많은 사람들이 커미터로 활동하고 있습니다.

크루즈컨트롤의 라이센스는 BSD-style을 따르며 OSI Certified 오픈 소스 소프트웨어라고 명시하고 있습니다.

크루즈 컨트롤의 내부구성은 크게 3가지 모듈로 이루어져 있습니다.
  • 빌드 루프(build loop) : 코어 모듈, 빌드를 주기적으로 실행하고 실행결과를 사용자에게 통보한다.
  • 레거시 리포팅(legacy reporting) : 사용자가 빌드 결과를 볼 수 있게 제공한다.
  • 대쉬보드(dashboard) : 모든 프로젝트 빌드 상태상태를 비쥬얼하게 나타낸다.
이렇게 모듈로 구성되어 있기 때문에 원하는 형태에 맞게 크루즈컨트롤을 사용하는게 가능합니다. 예를 들어 빌드 루프에서 모니터링에 사용되는 HTTP, RMI 같은 기술을 보안상의 이유로 사용하지 않는게 가능합니다.

현재 크루즈컨트롤의 릴리즈 버전은 2.7.1입니다. (2007/10/30 기준)

크루즈컨트롤이 지원하는 플랫폼은 Java, .NET, Ruby 입니다. .NET과 루비의 크루즈컨트롤은 아래 URL을 참고하세요.




크리에이티브 커먼즈 라이선스
Creative Commons License

'Development > 자동화' 카테고리의 다른 글

Cruise Control - Startup  (0) 2007/11/05
Cruise Control - Architecture  (0) 2007/11/02
Cruise Control - Overview  (4) 2007/10/31
CI Server Matrix  (0) 2007/10/31
빌드(Build)의 종류  (0) 2007/10/15
Ant 표준 타겟(Target)  (0) 2007/09/17

CI Server Matrix

Development/자동화 2007/10/31 15:38 posted by k16wire
CI Server는 Continous Integration 환경을 구축하는데 핵심이 되는 애플리케이션입니다. Ant나 Maven과 같은 빌드 스크립트 도구를 기반으로 빌드를 실행하고 그 결과를 사용자에게 알려주는 역할을 합니다.
(CI에 대해 잘 모르시는 분은 제가 일전에 번역해 놓은 Continous Integration을 읽어 보시고, 영어가 좀 되시는 분들은 원문을 보시길 강추합니다.)

이 CI Server의 기능을 리스트로 잘 정리해 놓은 사이트가 있어서 공유합니다. 한가지 아쉬운건 그래서 뭐가 제일 좋다는 순위나, 각 서버간의 비교가 없는 점 이네요. (하긴 상대적이어서 의미가 없을수도 있을거 같습니다.)
Continuous Integration Server Feature Matrix


크리에이티브 커먼즈 라이선스
Creative Commons License

'Development > 자동화' 카테고리의 다른 글

Cruise Control - Architecture  (0) 2007/11/02
Cruise Control - Overview  (4) 2007/10/31
CI Server Matrix  (0) 2007/10/31
빌드(Build)의 종류  (0) 2007/10/15
Ant 표준 타겟(Target)  (0) 2007/09/17
Ant로 웹로직에서 EJB 빌드하고 배포하기  (0) 2007/08/30
TAG CI, CI Server