이 모든 사용 사례를 한데 모아 둔 이유는 무엇인가요?
기존에는 대부분의 목표 사용 사례를 별개의 요소로 취급했지만, 이를 한데 모아 둠으로써 다양한 방법을 택하고 일반적인 사용 사례에 최적화할 수 있게 되었습니다. 예를 들면 다음과 같습니다.
- 스토리지는 캐싱을 위한 모든 데이터 파이프라인의 핵심적인 구성 요소입니다.
- 원격 실행에서는 데이터를 빨리 얻을 수 있도록 데이터가 계산 노드와 가까이 있어야 합니다.
- 확장 가능한 빌드 자동화 시스템은 동일한 예약, 관리 툴, 자동 확장 기능을 원격 실행 플랫폼으로 사용하며, 중간 및 최종 아티팩트를 위한 스토리지 백엔드가 필요합니다.
에픽은 내부 개발 팀을 지원하는 인프라를 공유함으로써 팀이 성공적으로 협력하는 데 필요한 작업의 양을 줄이고자 합니다.
언리얼 엔진을 사용하려면 호드를 디플로이해야 하나요?
아니요. 호드는 언리얼 엔진을 사용하기 위한 요건이 아니지만, 에픽게임즈에게 중요하며 다른 팀 역시 호드를 유용하게 활용할 수 있기를 바랍니다.
호드를 클라우드에 디플로이해야 하나요?
아니요. 호드는 규격화된 하드웨어를 사용한 로컬 디플로이에서도 원활하게 실행됩니다. 다만 일부 애플리케이션의 경우 클라우드에 다른 인프라를 호스팅하지 않더라도 클라우드 스토리지의 장점을 누릴 수 있습니다.
CI 시스템/원격 실행 기능/테스트 프레임워크 등을 사용해야 하나요?
아니요. 각 기능은 선택 사항이며, 기능을 비활성화하더라도 비용이 발생하지 않습니다.
빌드 자동화에 Jenkins나 TeamCity가 아닌 호드를 사용해야 하는 이유는 무엇인가요?
대부분의 빌드 자동화 시스템은 일반적인 용도로 사용할 수 있으므로 어떤 워크로드든 실행할 수 있습니다.
따라서 빌드 작업 팀이 해야 하는 배관 작업이 매우 많아집니다. 빌드 스크립트를 작성하고, 병렬화 구현을 위한 에이전트 간 아티팩트 전송을 관리하고, 최종 아티팩트용 스토어를 구성하고, 빌드 에이전트를 위해 네트워크로 연결된 개발 키트 및 모바일 디바이스의 할당을 관리할 방법을 구현하는 등의 작업이 이에 해당합니다.
게다가 그 결과물로 나온 시스템은 그리 스마트하지 않습니다. 빌드 실패에 대한 알림을 받을 수는 있지만, 언제 어떤 실패가 시작되었으며 누가 이를 수정해야 하는지 사람이 진단해야 합니다. 오래된 빌드 아티팩트를 정리하고 해당 권한을 관리할 방법도 필요합니다. 아티팩트에 네트워크 공유를 사용하는 경우, 거의 동일하면서 겹쳐져 있는 수많은 아티팩트를 처리해야 합니다. 그리고 대규모 조직이라면 이러한 아티팩트를 다양한 위치의 개발자들에게 배포할 방법도 생각해 내야 합니다. 물론, 개발자들이 이러한 아티팩트를 찾아서 가져올 수 있도록 어느 정도의 툴링이 필요할 수도 있습니다.
빌드 간 자동화된 테스트의 결과를 트래킹하기 위한 서버와 같은 기능은 또 다른 레이어입니다. 빌드 자동화 시스템에서 이러한 기능을 실행할 수는 있지만, 다양한 변경사항에 대해 어딘가에 저장되어야 하는 데이터를 생성하는 수많은 테스트를 거쳐야 할 수 있습니다. 또한 예를 들어 특정 맵에서 프레임 레이트가 특정 한계치 아래로 떨어지거나 특정 레벨의 크기가 일정한 지점을 초과하는 등의 상황이 발생한다면 해당 데이터를 찾기 위해 힘겨운 탐험을 시작해야 할 수도 있습니다.
이러한 문제 대부분은 일반적으로 빌드 자동화 시스템에서 해결하기 위해 관심을 갖는 문제와 아무런 관련이 없습니다. 그러나 문제를 종합해서 고려하면 작업 컨텍스트에 따라 훨씬 더 현명한 구현 결정을 내릴 수 있습니다.
그럼에도 호드의 CI 기능은 기본적으로 활성화되어 있지 않습니다. 호드의 다른 기능은 새 빌드 자동화 시스템으로 마이그레이션하지 않아도 사용할 수 있습니다.
빌드 자동화 시스템이 Git, Subversion 등을 지원하나요?
현재 지원하지 않습니다. 에픽게임즈는 Perforce를 중심으로 몇 가지 가정을 하고 있는데, 예를 들면 단일 선형 분기 히스토리에서 변경을 강하게 지시할 수 있습니다. 또한 Perforce 워크스페이스를 효율적인 방식으로 프로비저닝하기 위한 다수의 커스텀 로직도 보유하고 있습니다.
향후 다른 버전 관리 시스템에 대한 지원을 모색할 수도 있습니다.
호드를 사용하면 에픽게임즈가 저희 프로젝트에 대한 원격 측정 정보를 얻게 되나요?
아니요. 호드에서 에픽게임즈로 어떤 데이터도 전송되지 않습니다.