
N3R 오케스트레이션과 3-Layer 캐싱으로 완성한 차세대 동적 CI/CD 인프라 구축기
본 아티클은 네이버의 대규모 안드로이드 프로젝트가 겪었던 빌드 병목 현상을 해결하기 위한 인프라 혁신 과정을 다룹니다. 고정된 빌드 서버의 한계를 깨고 쿠버네티스 기반의 동적 환경과 지능적인 캐싱 전략을 결합하여 개발 생산성을 높인 실무 사례를 소개합니다. 기술적 제약이 많은 사내 환경에서 최적의 아키텍처를 찾아가는 시니어 엔지니어들의 고민과 해결책을 담았습니다.
빌드 리소스 부족으로 개발 사이클이 지연되는 대규모 안드로이드 팀이나, 보안 규정으로 인해 외부 클라우드 사용이 제한된 환경의 데브옵스 엔지니어에게 필독을 권장합니다.
리소스 소모가 큰 안드로이드 빌드 특성상 고정된 Runner 풀 방식에서는 빌드 요청이 몰릴 때 심각한 병목 현상이 발생한다. 특히 보안 정책으로 인한 외부망 차단 및 권한 제약이 있는 사내 환경에서 효율적인 빌드 환경 구축에 어려움이 있었다.
사내 오케스트레이션 도구인 N3R과 자체 개발한 Autoscaler를 결합하여 빌드 리소스를 동적으로 할당하는 시스템을 구현했다. 여기에 3계층 캐시 전략, Diff-aware 테스트, Nexus Proxy 등을 도입하여 네트워크와 연산 효율을 극대화했다.
고정된 리소스의 한계를 극복하고 빌드 대기 시간을 획기적으로 단축하여 CI/CD 처리량을 높였다. 인프라 유연성을 확보함으로써 빌드 요청량 변화에 탄력적으로 대응할 수 있는 환경을 마련했다.
Trade-off
공식 ARC를 사용하지 않고 사내 전용 툴과 자체 오토스케일러를 조합함으로써 시스템 복잡도와 유지보수 관리 포인트가 증가했다. 또한 고도화된 캐시 계층 도입에 따른 데이터 정합성 관리 오버헤드가 발생할 수 있다.
네이버 사내에서 사용하는 포드(Pod) 오케스트레이션 도구로, 컨테이너화된 애플리케이션의 배포와 관리를 자동화한다.
쿠버네티스 클러스터 상에서 GitHub Actions 셀프 호스팅 러너를 관리하고 자동 스케일링을 지원하는 컨트롤러이다.
코드 변경 사항(Diff)을 분석하여 해당 변경과 연관된 테스트 케이스만을 선별적으로 실행하는 기술이다.




