SourceFS - 가상 파일시스템으로 2시간 넘는 Android 빌드를 15분으로 단축

1 week ago 9

  • SourceFS는 대규모 디바이스 코드베이스의 빌드 속도와 효율성 문제를 해결하기 위해 설계된 고성능 가상 파일시스템
  • Android 빌드 속도를 최대 9배, 코드 체크아웃 속도를 10배 이상 향상시키며, 디스크 사용량을 83% 줄이고 컴퓨팅 비용을 14배 절감
  • 핵심 원리는 파일 가상화와 온디맨드(materialization) 방식으로, 실제 파일처럼 보이지만 필요한 순간에만 내용을 불러오는 구조
  • 빌드 과정에서는 입출력·환경을 기록하고 재사용하는 샌드박스 기반 캐싱을 통해 대부분의 빌드 단계를 즉시 재생(replay)

느린 빌드와 코드 체크아웃의 문제

  • 현대의 연결된 디바이스는 수억 줄 규모의 코드베이스로 구동됨
    • Linux 커널은 약 4천만 줄, Android AOSP는 1억4천만 줄 이상이며, 실제 디바이스는 하드웨어 지원·커스텀 기능·서비스 코드가 추가되어 2억 줄을 넘김
    • 전기차(EV)는 5억 줄 이상에 달하며, 소프트웨어 업데이트로 지속적으로 증가
  • 코드 체크아웃 시 수백 GB의 데이터를 내려받고, 빌드는 수십만 단계를 거침
    • 의존성 그래프의 불완전성으로 인해 작은 변경도 대규모 재빌드를 유발하거나 잘못된 결과를 초래
  • 결과적으로 매일 수시간의 개발자 시간 손실CI 컴퓨팅 비용의 급증이 발생

Source File System (SourceFS)

  • SourceFS는 새로운 빌드 시스템이 아닌, 기존 워크플로에 통합 가능한 고성능 가상 파일시스템
    • Android 코드베이스의 체크아웃 및 빌드 속도를 획기적으로 향상시키며, 마이그레이션 부담이 거의 없음
    • 핵심 원리는 모든 파일을 가상화하고, 필요할 때만 실체화(materialize)하며, 이 과정을 투명하게 처리
  • 체크아웃 가속화: 전체 코드베이스의 가상 파일 표현을 생성하고, 접근 시점에만 내용을 불러옴
    • 파일은 실제처럼 보이지만, 대부분의 파일은 가상 상태로 남아 디스크 공간을 절감
    • Git 및 Repo와 완전 호환
  • 빌드 가속화: 각 빌드 단계는 입출력·환경을 기록하는 경량 샌드박스에서 실행
    • 동일한 단계는 재실행 없이 결과를 재사용, 변경된 단계만 새로 수행
    • 컴파일뿐 아니라 링크, 패키징, 문서 생성 등 전체 빌드 프로세스에 적용
  • 내부적으로 고성능 캐싱·리플레이 알고리듬, 효율적 샌드박싱, Rust 기반 백엔드를 사용
    • 거의 제로 오버헤드로 조직 전체에 확장 가능

빠른 빌드, 효율적 저장소, 비용 절감

  • SourceFS 환경에서의 코드 체크아웃은 기존 대비 20배 이상 빠름
    • 개발자는 기존 Git 트리와 동일한 워크플로를 유지하면서 SourceFS 폴더에서 작업 가능
  • 디스크 사용량 절감은 다중 코드베이스를 전환해야 하는 디바이스 개발자에게 큰 이점
    • 여러 디바이스 버전 간 전환이나 대규모 버그 수정 시에도 소규모 GitHub 리포지토리처럼 가볍게 작업 가능
  • 빌드 속도는 최대 9배 향상, 일반 개발자 머신에서도 대규모 빌드를 신속히 완료
    • CI 파이프라인의 피드백 루프 단축으로 개발 생산성 극대화
  • 비용 절감 효과는 최대 14배에 달함
    • 고성능 머신보다 일반 머신에서 SourceFS를 사용하는 편이 더 빠르고 저렴
    • 동일한 컴퓨팅 예산으로 더 많은 작업 수행 가능

기존 대안과의 비교

  • SourceFS는 기존 접근법의 한계를 극복
    • Bazel, Buck2 등 새로운 빌드 시스템으로의 마이그레이션은 대규모 프로젝트에서 현실적으로 어렵고, 다중 OS(예: Yocto, Android, QNX)를 포함한 디바이스 코드베이스에서는 복잡성이 배가
    • SourceFS는 이러한 마이그레이션 없이도 동일한 성능 향상을 제공
  • 컴파일러 래퍼(REClient, Goma 등) 는 일부 빌드 단계만 가속화하고 체크아웃에는 효과 없음
    • 명령행 플래그 파싱에 의존해 예상치 못한 오류 발생 가능성 존재

향후 계획

Read Entire Article