본문으로 건너뛰기
버전: 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
노트

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