피드로 돌아가기
Async LLM inference in CI: stop build workers blocking on slow jobs
Dev.toDev.to
DevOps

Async LLM 추론 도입으로 Build Worker 대기 시간 35초 제거 및 큐 정체 해소

Async LLM inference in CI: stop build workers blocking on slow jobs

claire nguyen2026년 6월 25일4intermediate

Context

Buildkite 기반 CI 환경에서 실패한 테스트 로그 요약을 위해 동기식 LLM 호출을 수행하던 구조. P95 latency 28초에 달하는 모델 응답 대기 시간으로 인해 고비용 Compute Resource가 유휴 상태로 방치되며 전체 빌드 큐의 병목 지점으로 작용함.

Technical Solution

  • Bifrost AI Gateway를 통한 Sync-to-Async 전환으로 LLM 추론과 Worker 실행 프로세스 분리
  • x-bf-async: true 헤더를 사용해 즉시 Job ID를 반환받는 Submit-and-Poll 패턴 적용
  • Build Step 시작 단계에서 요약 요청을 Submit하고, 종료 직전 단계에서 Job ID로 결과를 Polling하는 파이프라인 설계
  • OpenAI 호환 엔드포인트를 유지하여 Request Body 변경 없이 Drop-in 대체 구현
  • x-bf-dim-team 커스텀 헤더를 통한 팀별 비용 추적 및 Prometheus 기반 Observability 확보
  • Primary Provider 장애 시 Secondary로 자동 전환되는 Failover 메커니즘 유지

Impact

  • 빌드당 최대 35초의 Worker Blocking 시간 제거
  • Gateway 오버헤드 11µs 및 Observability 레이어 추가 부하 0.1ms 미만 달성
  • t3.xlarge 단일 인스턴스 기준 5,000 RPS 처리량 확보

Key Takeaway

외부 API의 높은 Latency가 내부 리소스의 가용성을 결정짓는 'Queue Depth' 문제로 전이될 때, 상태 저장형 Polling 구조로의 전환을 통해 Compute Resource의 처리 효율을 극대화할 수 있음.


- LLM 호출이 포함된 파이프라인에서 Worker 유휴 시간이 비용 임계치를 넘는지 확인 - Async 패턴 도입 시 Agent 장애에 대비한 Job ID의 Durable Storage 저장 전략 수립 - Self-hosting Gateway 도입 시 Postgres 등 stateful 서비스의 운영 공수와 단일 장애점(SPOF) 해결 방안 검토 - 팀별 비용 할당을 위해 요청 헤더 수준의 Dimension 태깅 체계 구축

원문 읽기