직접 러너를 도입할 솔직한 이유
- 비용. 요금 청구액이 macOS나 large 러너 사용량 때문에 감당이 안 된다면, Mac mini나 홈랩 박스를 직접 구축하는 게 한 분기 안에 본전을 뽑을 수 있어.
- 하드웨어. MLX를 쓰려면 Apple Silicon이 필요하고, 학습을 하려면 NVIDIA H100이 필요하지. 크로스 아키텍처 테스트를 위한 ARM도 마찬가지야. 이런 건 표준 호스팅형 러너에서는 지원하지 않아.
- 네트워크 접근. 테스트를 하려면 사설 네트워크 안에 있는 서비스(DB, Vault, 내부 API)와 통신해야 할 때가 있어. Hosted 러너로는 그런 곳에 접근할 수 없어.
- 영구 캐시. 파일 시스템 수준에서 실행 간에 유지되는 빌드 캐시를 쓸 수 있어. Docker 레이어 캐시, pip 캐시, conda 환경 같은 것들이지.
- 이미지 재현성. 우리 팀이 쓰는 정확한 OS와 패키지 세트를 그대로 유지할 수 있어. 환경이 계속 바뀌는 골칫거리가 아니지.
직접 러너를 도입하지 않을 솔직한 이유
- 작은 팀. 1~3개 정도의 자체 호스팅 러너를 유지하는 건 괜찮아. 하지만 30개 이상을 관리하려면 그게 네 본업이 되어버려.
- 보안 부담. 자체 호스팅 러너는 신뢰할 수 없는 코드(기여자의 PR 등)를 실행하게 돼. 기본 격리 수준이 약하니까 추가로 보안 조치를 해야 해.
- 앞서 말한 이유 중 해당하는 게 없음. '있으면 멋져 보여서'는 이유가 될 수 없어.
결정 매트릭스
다섯 가지 솔직한 이유 중 하나라도 맞는다면 직접 러너를 써. 그게 아니라면, 직접 운영하느라 들어가는 엔지니어링 시간보다 호스팅형 러너를 쓰는 게 거의 항상 더 저렴해.