아키텍처
NuFi는 Kubernetes 클러스터 위에서 동작하는 NPUOps 플랫폼입니다. 핵심 워크로드는 Kubernetes 리소스와 NuFi CRD를 중심으로 관리됩니다.
NuFi 시스템 구성
주요 컴포넌트
| 컴포넌트 | 역할 |
|---|---|
| Dashboard | 웹 UI — 사용자가 직접 상호작용하는 프론트엔드 |
| API Server | REST API 처리, Custom Resource 생성/관리, Lab 워크로드(Kubeflow Notebook / File Manager Pod) 직접 생성, Optimizer 실행 흐름 관리 |
| NuFi Controller (K8s Operator) | NuFi CRD를 감지하여 Serving Pod 및 각종 Job 등 K8s 리소스를 자동 생성 |
| nufi-proxy | Serving마다 함께 배포되는 리버스 프록시(별도 Deployment/Service). 클라이언트 요청이 VirtualService를 거쳐 nufi-proxy에 전달된 뒤 추론 서버로 전달됩니다. 비동기 큐(Async Queue), Transformer 전/후처리 체이닝, 메트릭 수집을 담당합니다. 로드 밸런싱은 NuFi Controller가 NpuDeploy 설정으로 생성하는 Istio DestinationRule이, 온도 기반 트래픽 차단은 Temperature Sidecar가 담당합니다. |
| nufi-notebook-servers | Lab(개발 환경)용 Jupyter/VS Code/LlamaFactory 컨테이너 이미지 |
| nufi-file-manager | Volume 내 파일 업로드/다운로드/관리를 위한 파일 매니저 |
Custom Resource (CRD) 와 산출물
NuFi Controller가 관리하는 CRD와 각 CRD가 만들어내는 워크로드는 다음과 같습니다.
| CRD | 산출 워크로드 |
|---|---|
| NpuDeploy | Serving (Inference Server + nufi-proxy + Transformer + Temperature Sidecar + Service + VirtualService) |
| ModelImport | Model Import Job (Hugging Face / MLflow → Registry) |
| NpuPortingPipeline | NPU Compile Job (디바이스별 컴파일) |
| DatasetImportRun | Dataset Import Job (Upload / Hugging Face Import) |
| DatasetProfileRun | Dataset Profile Job (Parquet 프로파일 생성) |
| EvaluationRun | Evaluation Job (lm-eval 등) |
노트
Lab(Notebook Server, File Manager) 은 NuFi Controller가 아닌 API Server가 직접 생성합니다. Notebook은 Kubeflow의 Notebook CR을 통해, File Manager는 Pod을 직접 생성하는 방식입니다.
컴파일 옵션 최적화 및 평가 도구
API Server 내부에는 NPU 컴파일 후보를 검증하고 비교하기 위한 도구가 포함됩니다.
- Optimizer: 모델 Artifact별 compile option 후보를 생성하고 trial 실행을 관리합니다. 각 trial은 컴파일 결과와 평가 지표를 함께 기록해 운영 목표에 맞는 NPU artifact를 선택할 수 있게 합니다.
트래픽 & 스케일링
Serving 런타임을 보조하는 구성 요소입니다.
- Auto-scaling (KEDA): NpuDeploy 기반 서빙 워크로드의 스케일링
- Async Queue: nufi-proxy의 비동기 요청 버퍼링
인프라 의존성:
- Istio / VirtualService: Serving 및 Lab의 외부 트래픽 라우팅에 사용됩니다. 각 Serving마다 VirtualService가 생성되어 엔드포인트 URL을 통한 추론 요청을 라우팅합니다.
요청 흐름
모델 배포 흐름
사용자가 Dashboard에서 Serving를 생성하면 NuFi Controller가 K8s 리소스를 자동으로 프로비저닝합니다.
추론 요청 흐름
배포된 서비스로 들어오는 추론 요청이 nufi-proxy를 거쳐 추론 서버에 전달됩니다.
배포 구조
NuFi는 Helm 차트 중심으로 Kubernetes 클러스터에 설치됩니다. 폐쇄망 환경에서는 필요한 이미지와 차트를 사전에 반입한 뒤 같은 Helm 배포 흐름을 사용합니다.
| 특징 | 설명 |
|---|---|
| Helm 기반 배포 | NuFi 앱과 필수 인프라 구성을 Helm values로 조정해 배포 |
| Kubernetes 운영 모델 | 주요 컴포넌트가 K8s 리소스로 관리됩니다. 운영·배포·관측을 Kubernetes 방식으로 수행할 수 있어 기존 K8s 운영 도구(kubectl, Helm, Prometheus 등)를 그대로 활용할 수 있습니다. |
지원 디바이스
| 벤더 | 디바이스 | 지원 기능 |
|---|---|---|
| NVIDIA | CUDA 지원 GPU | Lab, Serving |
| FuriosaAI | RNGD | Lab, Serving |
지원 디바이스는 NuFi 릴리스와 함께 제공되는 내장 catalog로 관리됩니다.