본문으로 건너뛰기
버전: 0.1.0

아키텍처

시스템 아키텍처

NuFi는 Kubernetes 클러스터 위에서 동작하는 NPUOps 플랫폼입니다. 모든 컴포넌트가 K8s 네이티브로 구성되어 있습니다.

NuFi 시스템 구성

주요 컴포넌트

컴포넌트역할
Dashboard웹 UI — 사용자가 직접 상호작용하는 프론트엔드
API ServerREST API 처리, Custom Resource 생성/관리, Lab 워크로드(Kubeflow Notebook / File Manager Pod) 직접 생성
NuFi Controller (K8s Operator)NuFi CRD를 감지하여 Serving Pod 및 각종 Job 등 K8s 리소스를 자동 생성
nufi-proxy추론 요청 경로에 위치하는 사이드카 프록시. 클라이언트 요청이 VirtualService를 거쳐 nufi-proxy에 전달된 뒤 추론 서버로 전달됩니다. 로드 밸런싱, 온도 기반 트래픽 차단, 비동기 큐(Async Queue), Transformer 전/후처리 체이닝 등 추론 요청에 대한 트래픽 제어를 담당합니다.
nufi-notebook-serversLab(개발 환경)용 Jupyter/VS Code/LlamaFactory 컨테이너 이미지
nufi-file-managerVolume 내 파일 업로드/다운로드/관리를 위한 파일 매니저

Custom Resource (CRD) 와 산출물

NuFi Controller가 관리하는 CRD와 각 CRD가 만들어내는 워크로드는 다음과 같습니다.

CRD산출 워크로드
NpuDeployServing (Inference Server + nufi-proxy + Transformer + Temperature Sidecar + Service + VirtualService)
ModelImportModel Import Job (MLflow → Registry)
NpuPortingPipelineNPU Compile Job (디바이스별 컴파일)
노트

Lab(Notebook Server, File Manager) 은 NuFi Controller가 아닌 API Server가 직접 생성합니다. Notebook은 Kubeflow의 Notebook CR을 통해, File Manager는 Pod을 직접 생성하는 방식입니다.

트래픽 & 스케일링

Serving 런타임을 보조하는 구성 요소입니다.

  • Auto-scaling (KEDA): NpuDeploy 기반 서빙 워크로드의 스케일링
  • Async Queue: nufi-proxy의 비동기 요청 버퍼링

인프라 의존성:

  • Istio / VirtualService: Serving 및 Lab의 외부 트래픽 라우팅에 사용됩니다. 각 Serving마다 VirtualService가 생성되어 엔드포인트 URL을 통한 추론 요청을 라우팅합니다.

요청 흐름

모델 배포 흐름

사용자가 Dashboard에서 Serving를 생성하면 NuFi Controller가 K8s 리소스를 자동으로 프로비저닝합니다.

추론 요청 흐름

배포된 서비스로 들어오는 추론 요청이 nufi-proxy를 거쳐 추론 서버에 전달됩니다.


배포 구조

NuFi는 단일 번들로 패키징되어 Kubernetes 클러스터에 설치됩니다. 클러스터와 NuFi 시스템이 함께 설치됩니다.

특징설명
단일 번들클러스터 + 인프라 + NuFi 앱 전체 포함
K8s 네이티브모든 컴포넌트가 K8s 리소스로 관리. 운영·배포·관측을 Kubernetes 방식으로 일관되게 수행할 수 있어 기존 K8s 운영 도구(kubectl, Helm, Prometheus 등)를 그대로 활용할 수 있습니다.

지원 디바이스

벤더디바이스지원 기능
NVIDIACUDA 지원 GPULab, Serving
FuriosaAIRNGDLab, Serving
노트

디바이스별 세부 지원 범위 및 기능 차이는 커스텀 디바이스 관리 문서를 참고하세요.