2010-11-18 1 views
3

RTC (Rational Team Concert) IDE 및 Jazz 빌드 엔진을 사용하여 Spring Roo 애플리케이션에 대한 지속적인 통합 빌드를 설정하는 중입니다. 빌드 정의를 설정할 때, Jazz Source Control 탭의 Build Workspace 필드는 사용자의 저장소 작업 공간이나 스트림을 선택할 수 있도록합니다.재즈 SCM 연속 통합 - 스트림과 작업 영역을 구축 하시겠습니까?

RTC Continuous Integration Best Practices 및 기타 Jazz 빌드 자원은 빌드 사용자와 연관된 전용 저장소 작업 공간을 사용하는 것을 일관되게 참조하므로이 방법이 기본 접근 방식이라고 생각합니다. 스트림에서 직접 건물에 대한 정보를 찾을 수 없었습니다. 프로젝트의 스트림에는 빌드하는 데 필요한 모든 아티팩트가 포함되어 있으며 연속 통합 빌드가 스트림에서 작동하는지 테스트하고 확인했습니다. 이 목적을 위해 특정 작업 공간을 만들고 관리해야하는 이유가 무엇인지 생각할 수 없습니다.

제 질문은 스트림에서 직접 건물을 짓고 불을 피우고 있습니까? 이 접근법에 대한 잠재적 인 다운 스트림 합병증이 있습니까?

답변

5

다른 SO 사용자가 앞으로 동일한 질문을하는 경우 내 자신의 질문에 대답하십시오.

일부 실험을 한 후 스트림에서 직접 빌드하는 단점은 재즈 소스 제어 탭에서 "변경 사항이있을 경우에만 빌드"속성을 무시한다는 것입니다. 결과적으로 스트림의 빌드는 사전 정의 된 간격으로 만 수행 될 수 있습니다. 새 변경 사항이 스트림에 커밋 된 경우에만 빌드가 구성되도록 구성 할 수 없습니다.

빌드에서 스트림에서 새 변경 내용을 적용하고 빌드 요청을 트리거하는 데 전용 작업 영역이 필요합니다.

1

또 다른 큰 차이점이 있습니다. 빌드가 완료되는 방법과 관련이 있습니다. 여기서 차이점을 강조하겠습니다.

전용 빌드 저장소 작업 공간에서 빌드하면 빌드 작업 영역에 이미 모든 코드의 사본이 있습니다. 변경 사항이 전달되고 빌드가 시작되면 변경된 파일 (변경 세트) 만 갱신하여 저장소에서 빌드 저장소 작업 공간으로 물리적으로 복사해야합니다. 대부분의 변경이 적기 때문에 저장소의 코드베이스 중 0.1 %에서 2 %까지 복사하는 작업이 필요합니다.

"스트림"에서 빌드하는 경우 빌드 작업 영역을 만들어야합니다 (어딘가에 컴파일해야합니다!). 따라서이 코드가 생성되면 전체 코드베이스를 업데이트하여 저장소에서 빌드 리포지토리 작업 영역으로 물리적으로 복사해야합니다. 이는 저장소에서 코드베이스의 100 %를 가져 오는 것을 의미합니다.

각 파일 조작에는 필요한 자원을 탐색하고 저장소를 호스트하는 데이터베이스에서이 자원을 페치 한 다음 재즈 응용 프로그램에서 네트워크를 통해이 소스 파일을 제공하도록 호출하는 작업이 포함됩니다. 결과적으로 데이터베이스 서버, 웹 서버 및 응용 프로그램 서버에 부하가 발생합니다. 이렇게 다운로드하면할수록 이러한 구성 요소에 더 많은 부하가 걸립니다.

Jazz 인프라에서 이러한로드를 최소화하는 데 사용할 수있는 몇 가지 사항이 있습니다. 콘텐츠 캐싱 프록시 (간단한 Squid 프록시 서버 사용)를 사용하면 도움이됩니다.

여기에서 옵션에 대한 자세한 내용과 옵션의 상대적 장점을 보려면 저의 블로그 게시물과 Jazz Performance 관련 백서 (http://dtoczala.wordpress.com/2013/02/11/jazz-performance-a-guide-to-better-performance/)를 읽어보십시오. 이 기사는 거의 1 년 전의 일이지만 여전히 유효합니다. 또한 Jazz Deployment Wiki (https://jazz.net/wiki/bin/view/Deployment/WebHome)를보고 성능 문제 해결 및 성능 문제에 대한 섹션을 확인하십시오.

관련 문제