문제

저는 (아주 작은) 회사에 지속적인 통합을 실행할 컴퓨터 구입을 제안할 계획입니다.그들이 '예'라고 대답하면 실제로 기계를 구입하는 임무는 아마도 나에게 맡겨질 것입니다. 따라서 내 질문은 다음과 같습니다.

아주 작은(3명) PHP 팀의 지속적인 통합에 사용될 컴퓨터에서 무엇을 찾아야 합니까?

어떤 "물건"(메모리, 프로세서 등)이 중요하고 무엇이 중요하지 않습니까?

도움이 되었습니까?

해결책

당신은 실제로 그 강력한 기계가 필요하지 않을 것입니다. 테스트 또는 기타 메트릭을 실행하는 경우 처리 능력이 주요 관심사 일 것입니다. 그러나 실제로 오래된 Pentium 1에서 실행할 수 있으며 아마도 효과가있을 것입니다.

귀하의 제약은 운영 환경이 될 것입니다. 램프를 실행중인 경우 램프 설정을 잘 처리 할 수있는 기계를 사용하려고합니다.

우리가 누워 있던 오래된 Pentium4 워크 스테이션에서 .NET에 대한 지속적인 통합 설정을 설정했으며 잘 처리했습니다.

명심해야 할 한 가지는 빌드에서 코드를 보관하는 경우 저장 공간입니다.

다른 팁

우리가 사용할 때 스토리지가 우리에게 문제가되었습니다. Maven, 연속체 그리고 클리어 케이스 그리고 시간당 건축. 스냅 샷보기는 각 빌드 후에 남겨졌습니다.

우리는 강력한 충분한 상자 (Sun Fire V490)를 가지고 있었고 개발 통합 환경과 Archiva 저장소. 따라서 우리는 성능과 기억에 문제가 없었습니다. 실제로 우리가 Permgen 메모리에 문제가있는 유일한 시간은 Maven 사이트 대상을 구축하는 것이 었으며 이는 -xx : maxpermsize = 128m를 사용하는 것을 의미했습니다.

내 경험상 이것은 강국 기계 일 필요가 없습니다. 개발에 사용하는 모든 기계는 만족 스러울 것입니다. 분명히 기계가 빠를수록 코드에서 단위 테스트를 실행하면 응답이 더 빠릅니다. CI 서버는 XP SP2, 3G 프로세서, 3G RAM을 실행하고 있으며 현재 우리의 요구에 따라 압도적입니다. 즉, 빌드가 깨끗하고 모든 테스트가 통과되는지 알려주는 후 6 분 이내에 이메일을받는 것이 좋습니다. 야간 빌드를하기 위해서는 사양이 더 많이 내려갈 수 있습니다. 하드 드라이브 공간 (요즘 300G는 합리적으로 달성 할 수 있음)은 보고서를 저장하고 회귀에 대한 빌드를 저장하는 데 좋습니다. 그러나 NAS가 있으면 건축 된 후 아티팩트를 밀어 낼 수 있습니다.

현재 구입할 수 있는 거의 모든 새 시스템은 그리 크지 않은 소스 트리에서 지속적인 통합 작업을 처리할 수 있습니다.찾아야 할 사항:

  • 2~4GB RAM(많은 테스트를 병렬로 실행하거나 가상 머신을 실행하여 클라이언트를 시뮬레이션하려는 경우 추가)
  • 스레딩 버그를 잡을 확률을 높이는 멀티 코어 프로세서(또는 여러 프로세서).
  • "서버" 클래스 컴퓨터는 "데스크톱" 클래스 컴퓨터보다 연중무휴 작업을 더 잘 처리하는 경향이 있지만 둘 사이에는 명확한 경계가 없습니다.
  • RAID1 또는 RAID1+0 중복 디스크가 필수입니다.백업이 있더라도(어쨌든 백업이 있어야 함) 서버를 재구축하는 것은 고통스럽고 추가로 100달러의 하드 디스크를 구입하는 것은 보험만큼의 가치가 있습니다.

RAM : CI 도구를 실행하기에 충분합니다 (phpundercontrol?) 및 귀하의 빌드 및 테스트에 원하는 지원 소프트웨어.

저장소 : 기계에 보관하고 싶은 오래된 빌드 수를 결정하십시오. 내 경험상 그것은 매우 많은 것을 유지하는 것이 유용하지 않습니다. 소규모 팀이있는 경우 오래된 빌드로 롤백하기위한 공식적인 프로세스가 많이 있습니다.

CPU : 비 문제. 구입할 수있는 모든 기계는 작동합니다.

그래서 둘 사이에서 나는 저장 공간보다 Ram을 선호하는 경향이 있습니다.

앱이 거대하지 않으면 약 4 공연의 RAM이있는 듀얼 코어 상자와 아마도 RAID 0에 설정된 2 개의 합리적으로 빠른 SATA 디스크를 얻을 수 있습니까? 500 공연?

정말 안전하고 싶다면 OS 파티션의 RAID 0에 대한 70 개 공연 드라이브 2 개, 데이터의 RAID 5에서 340 개 이상의 공연 드라이브를 받으십시오.

기계 성능은 거의 중요하지 않지만 사용을 시작하고 언젠가 Magic Smoke가 나오면 곧 교체해야하기 때문에 가용성을 잘 관리합니다. 현명한 백업 정책을 정의하고 필요할 때 새로운 동일한 시스템을 설정하는 방법을 알고 있는지 확인하십시오. 예를 들어, 다른 컴퓨터로 이미지를 만들 수있는 작은 파티션에서 실행 한 다음 RAID1에 상주하는 경우 데이터의 기본 부분을 물리적으로 이동할 수 있고 적어도 하나의 드라이브 작업 (다른 곳에서 백업을 사용할 수 있지만 다른 곳에서는 백업이 있습니다. 네트워크에서도).

여기에 많은 사람들이 얻는 한 가지는 기계가 CI 소프트웨어만큼 중요하지 않다는 것입니다. 기계가 중요한 유일한 시간은 다른 아키텍처가 필요한 경우입니다. 그렇지 않으면 대상 환경과 일치하는 기계를 얻으십시오. 서버 앱을 구축하는 경우 앱이 64 비트 서버에서 실행되기 때문에 64 비트 프로세서를 얻는 것이 현명 할 수 있습니다.

CI에 사용중인 도구에 대해 더 관심을 가질 것입니다. 당신은 빨리 달릴 무언가가 필요하며, 여기 사람들이 지적했듯이, 당신이 그것을 이용할 필요가 없다면 오래된 빌드를 붙잡아서는 안됩니다. 그렇다면 빌드와 결과를 별도의 서버에 업로드 할 수있는 것을 찾습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top