Aside는 Chromium 기반 AI 브라우저를 개발합니다. 어사이드 팀은 대규모 C++ 컴파일을 여러 개발자가 함께 이용하는 서버에서 처리하기 위해 알파온의 고성능 전용 서버를 중심으로 원격 빌드 클러스터를 구성했습니다. Mac과 Windows의 개발 흐름을 유지하면서, 서버 자원을 최대한 활용해 여러 컴파일 작업을 병렬로 처리합니다.
도입 배경
브라우저 개발에서는 기능을 수정하는 일만큼 그 결과를 빌드하고 확인하는 과정도 중요합니다. Chromium의 최신 코드를 반영하거나 공통 헤더와 빌드 설정을 변경하면 다시 컴파일해야 할 코드가 크게 늘어납니다. 개발자 개인 컴퓨터의 성능에만 의존하면 이런 작업이 개발 중 대기 시간으로 이어집니다.
어사이드 팀에게 필요한 것은 팀이 함께 사용할 수 있는 컴파일 자원이었습니다. 개발자가 익숙한 환경에서 사용할 수 있어야 했고, 긴 빌드에서도 CPU와 메모리, 저장소가 균형 있게 동작해야 했습니다. 물리 서버와 호스팅 관리를 맡길 수 있는지도 도입의 중요한 조건이었습니다.
원격 빌드 클러스터의 중심이 된 전용 서버
알파온이 제공한 서버는 AMD EPYC 7742 두 개로 구성된 128코어·256스레드 시스템입니다. 256GB 메모리와 960GB 엔터프라이즈 NVMe를 갖추고, 운영체제 디스크와 빌드용 저장소를 분리했습니다. 어사이드 팀은 알파온의 서버·호스팅을 기반으로 빌드 파이프라인을 구축하고, 실제 Chromium 작업으로 설정을 조정했습니다.
개발자는 자신의 Mac이나 Windows 컴퓨터에서 빌드를 시작합니다. 빌드 실행 도구인 Siso가 C/C++ 등의 컴파일 작업을 분배하면, Buildbarn 기반으로 구축한 Aside 빌드 파이프라인의 워커가 서버에서 이를 실행하고 오브젝트 파일 등 결과를 돌려줍니다. 최종 실행 파일을 만드는 링크와 macOS 디버그 심볼 생성은 개발자 컴퓨터에서 수행합니다.
빌드 캐시는 알파온이 제공한 엔터프라이즈 NVMe 스토리지에 구성했습니다. 여러 컴파일 작업에 필요한 입력 파일과 결과를 빠르게 읽고 재사용할 수 있도록, 빌드 전용 저장소를 캐시 운영의 기반으로 활용했습니다. 파일 내용으로 식별한 입력은 저장된 사본을 재사용하고, 소스·컴파일 옵션·툴체인 등이 일치하는 작업은 기존 결과를 활용할 수 있습니다. 네트워크는 최초 소스·SDK 다운로드뿐 아니라 원격 컴파일의 입력과 결과를 주고받는 과정에도 관여하므로, 캐시와 전송 압축을 함께 적용했습니다.
전체 빌드 시간을 30분 이내로 단축
어사이드 팀의 실제 개발 환경에서, 캐시를 사용하지 않는 전체 빌드는 개발자 개인 컴퓨터에서 평균 1시간 40분이 걸렸습니다. 알파온 전용 서버를 중심으로 원격 빌드 환경을 구성한 뒤에는 같은 캐시 미사용 전체 빌드가 최대 30분 이내에 완료됐습니다. 캐시가 활용되는 경우에는 10분 내외로 빌드를 마칠 수 있었습니다.
| 빌드 환경 | 캐시 조건 | 소요 시간 |
|---|---|---|
| 개발자 개인 컴퓨터 전체 빌드 | 캐시 미사용 | 평균 1시간 40분 |
| 원격 서버 활용 전체 빌드 | 캐시 미사용 | 최대 30분 이내 |
| 원격 서버 활용 빌드 | 캐시 활용 | 10분 내외 |
어사이드 팀의 실제 개발 환경에서 확인한 소요 시간입니다.
개발자가 체감하는 변화는 수정한 코드를 확인하기까지의 대기 시간입니다. 서버에서 여러 컴파일 작업을 병렬로 처리하고, 캐시로 재사용할 수 있는 결과를 활용하면서, 큰 변경을 반영한 뒤에도 더 빠르게 결과를 확인할 수 있게 됐습니다.
팀이 함께 사용할 수 있는 빌드 자원
어사이드 팀은 알파온 전용 서버를 중심으로 여러 빌드 머신이 함께 작업을 처리하는 환경을 구성했습니다. 각 빌드 머신이 온라인이면 클러스터에 참여하고, 연결이 끊기면 감지 후 작업 배분 대상에서 제외되도록 했습니다. 개발자별 컴파일러와 SDK 버전을 맞추는 설치 패키지도 유지해, 각자의 개발 환경에서 같은 원격 빌드 기반을 이용할 수 있도록 했습니다.
알파온은 물리 서버와 호스팅 운영을 맡고, 어사이드 팀은 빌드 도구와 툴체인, 캐시 정책을 관리합니다. 어사이드 팀은 서버를 직접 수용하고 유지보수하는 부담을 덜면서 Chromium 작업에 맞는 설정을 계속 개선할 수 있습니다. 알파온의 전용 서버는 팀이 함께 활용하는 빌드 인프라의 중심으로, 브라우저 개발을 뒷받침합니다.