Editor’s note: This Iguazio review is based on my hands-on test of MLRun 1.13.0, the open-source framework at the core of the Iguazio AI Platform, on my own Mac in November 2026. I weighed pricing, infrastructure, pipelines and serving, the feature store and monitoring, gen AI tooling, security and deployment, and alternatives including Amazon SageMaker AI, Databricks, Kubeflow, ZenML and ClearML.
Quick verdict: I recommend Iguazio for regulated enterprises that need ML and gen AI operations inside their own cloud account, data center or air-gapped site, with vendor support. The trade-offs are quote-only pricing and a cloud floor of Kubernetes 1.34 on at least 3 data plus 2 application nodes. Small teams without a platform engineer get further with SageMaker AI’s pay-as-you-go billing or ClearML Pro ($15 per user a month plus usage).
Iguazio puts batch and real-time pipelines, a feature store, Nuclio serving graphs, drift monitoring and agent steps in one self-hosted stack, owned by McKinsey’s QuantumBlack since January 2023.
In this review, I’ll take a closer look at Iguazio’s pricing, features, and infrastructure demands, so you can see exactly whether it fits your team before you book a demo.
Key Takeaways:
- No published price: quote or AWS Marketplace private offer only.
- MLRun 1.13.0 is free under Apache 2.0 but pins Python 3.11.
- Real-time serving graphs run on Nuclio; a mock server tests endpoints offline.
- LLM monitoring needs a custom app: the default drift app targets classic ML.
- V3IO deprecation is coming: the default online feature store runs on V3IO NoSQL.

Pros and Cons
Pros
- Apache 2.0 MLRun 1.13.0 core with a free Helm-based Community Edition.
- Deployment in my AWS, Azure or GCP account, on-premises or air-gapped.
- Serving graphs combine ModelRunnerStep, agent loops and OpenAI-compatible serving.
- Feature store reads Snowflake, BigQuery and Kafka into Parquet and key-value targets.
- Enterprise adds LDAP/AD, multi-tenancy, a data firewall and 24/7 support.
Cons
- No published price: quote or AWS Marketplace private offer only.
- Cloud operational clusters require at least 3 data and 2 application nodes.
- MLRun 1.13.0 requires Python 3.11; recent minor releases introduced breaking changes.
- LLM monitoring requires a custom app; the default drift app covers classic ML.
- Iguazio names no SOC 2 or ISO 27001 certification.
Iguazio Pricing: How Much Does It Cost?

Iguazio publishes no price for the Iguazio AI Platform. Buying requires a quote or AWS Marketplace private offer, structured as an upfront contract for anticipated usage with usage-based charges beyond it.
- Iguazio AI Platform (quote): for enterprises wanting MLRun and Nuclio with managed Spark, Dask and Jupyter. Enterprise additions include LDAP/AD integration, user and group management, multi-tenancy, a data firewall, data lifecycle policies, air-gapped support and dedicated 24/7 support.
- Playground (evaluation, arranged with sales): for a proof of concept on 1 data node plus 1 application node. It has no high availability and is not intended for production.
- MLRun Community Edition ($0): for Kubernetes teams. The Helm bundle includes the MLRun API and UI, Nuclio, Jupyter, Spark and MPI operators, SeaweedFS, Prometheus, Grafana, Kafka, TimescaleDB and Kubeflow Pipelines. Support is community-only.
- MLRun open source ($0): for development and CI with the Apache 2.0 Python SDK. Without an API server, it runs in local mode.
| Edition | Price | Where it runs | Minimum footprint | Support |
|---|---|---|---|---|
| Iguazio AI Platform, operational | Quote / private offer | My AWS, Azure or GCP account, on-premises, air-gapped | Cloud: 3 data + 2 application nodes; on-premises HA: 3 + 3 | 24/7 enterprise |
| Playground | Arranged with sales | Cloud or on-premises | 1 data + 1 application node, no HA | Vendor-led POC |
| MLRun CE | $0 license | Kubernetes 1.34+ cluster | Helm 4.1+, 8Gi RAM, 8Gi storage, Docker registry | Community |
| MLRun SDK | $0 license | Laptop or CI runner | Python 3.11 | Community |
The infrastructure runs on my own cloud bill. AWS data nodes use i4i or i3 instances: an i4i.2xlarge has 8 vCPU, 61 GiB RAM and 1.9 TB NVMe, plus a 400 GB gp2 boot volume per data node. Application nodes require AMD x64 with at least 8 cores and 64 GB RAM; ARM is unsupported.
Is Iguazio Good Value for Money?
- Good fit: I would shortlist it for regulated enterprises needing one vendor-supported, self-hosted stack.
- Less convincing fit: without a Kubernetes operator, I’d consider SageMaker AI’s no-minimum pay-as-you-go model or Azure Machine Learning’s compute billing with no additional service charge.
- Budget priority: MLRun CE has no license fee; ClearML Pro costs $15 per user a month plus usage, and ZenML Pro Starter costs $39 a month.
Reviewer’s Notes: I’d prove the workflow on MLRun CE in a cluster I already run, then request a private offer separating the upfront contract from usage overage. I’d tie any Playground evaluation to one production use case.
My Experience With Iguazio
Installing MLRun on My Mac

MLRun 1.13.0 required Python 3.11, so my system Python 3.9 could not install it. I used a standalone Python 3.11.18 build in a virtual environment on my Apple silicon Mac.
The command pip install mlrun==1.13.0 scikit-learn finished in about 57 seconds, and the environment grew to 737 MB. It pulled storey 1.12.6, pandas 2.1.4 and numpy 1.26.4. I used no Kubernetes and no Docker: this was the SDK alone.
That Python 3.11-only pin was the first friction point: a team on Python 3.9 or 3.12 images needs a separate interpreter just to run the SDK.
Running My First Training Job
I created a project with get_or_create_project() without an API server. MLRun warned three times that it could not detect the server (“MLRUN_DBPATH is misconfigured”), wrote project.yaml and used a no-op run database, so I had no persistent run tracking.
My first file-path mistake came with set_function(): it resolved the code file relative to the project context folder, not my working directory. I hit a FileNotFoundError until I moved the file into the context folder.
My preparation handler logged scikit-learn’s breast-cancer dataset. It completed in 2.0 seconds, reported 569 rows and 31 columns, and wrote a 121,385-byte CSV. The very first run, before I set an output path, took about 32 seconds including warm-up, and MLRun warned that its artifacts “will not be visible in the UI”.
I then trained a random forest with 200 trees, maximum depth 5 and an 80/20 split. The handler completed in 0.4 seconds, returned accuracy 0.9649 and F1 0.9722, and wrote model.pkl plus model_spec.yaml.
In MLRun 1.13, I needed output_path, not artifact_path; the latter raised a TypeError. The training call used this structure:
project.run_function(
"trainer",
handler="train",
local=True,
params={"n_estimators": 200, "max_depth": 5},
output_path="./artifacts",
)
Where Local Mode Stopped
Accessing prep.outputs crashed with an AttributeError because the logged artifacts could not be resolved back into objects without the API server. I passed the CSV into training by its file path instead.
My hyperparameter grid used n_estimators 50/200 x max_depth 2/6 with the selector max.accuracy. MLRun ran all 4 iterations and logged iteration 2 as the best, then crashed while writing the iteration summary. Model files landed in all four iteration folders, but the best-run bookkeeping needed the API server.
Feature-set ingestion into a Parquet target also failed without the API server. The preview() call worked, returning the transformed DataFrame and warning that it had overridden the entity type from str to int.
I treated local mode as a development sandbox, not a product trial. Artifact resolution, run history, grid-search summaries, feature-set storage and the UI needed the MLRun API service supplied by CE or the Iguazio platform.
Testing a Model Endpoint Offline
I wrapped the trained model in a V2ModelServer subclass, added it to a serving function and called to_mock_server(). Inference on 3 rows returned a V2-protocol response containing an id, the model name, outputs [0, 0, 0] and a timestamp in 0.65 seconds, including model load.
A GET request to /v2/models/ listed the model, and set_topology("flow", engine="async") returned a RootFlowStep graph object without a cluster. The mock server let me test the endpoint contract offline before deploying anything, which was the most useful local-mode capability in this test.
Pipelines, Serving Graphs and Nuclio
MLRun supports plain jobs and distributed runtimes within the same project framework, with workflows running on Kubeflow Pipelines or local Python. Iguazio AI Platform 3.7.2 includes KFP 2.14, while the MLRun 1.13.0 SDK pins a KFP 1.8-compatible package (mlrun-pipelines-kfp-v1-8 0.8.2).
The runtime choices cover:
- Batch and distributed processing: plain jobs, Dask and Spark Operator.
- Distributed training: MPIJob/Horovod.
- External execution: a Databricks runtime.
- Real-time functions: Nuclio, serving and application runtimes.
- Orchestration extras: scheduled jobs, notifications and packagers.
I like this breadth for a team combining training jobs with live inference.
Serving Graphs

Serving graphs use Storey-backed asynchronous steps on the Nuclio engine. The predefined steps cover batching, filtering, conditional routing, remote calls and LLM/RAG processing; custom Python steps and hub steps handle application-specific logic.
ModelRunnerStep runs several models with concurrency control. All steps run on one pod by default, while distributed graphs can place CPU and GPU steps on separate pods. I would use that separation when preprocessing and inference have different resource requirements.
MLRun 1.12 added an OpenAI-compatible REST frontend through set_openai_frontend(), monitoring for externally served models over HTTP and OpenTelemetry export of monitoring metrics from serving graphs.
GPUs and CI/CD
GPU requests use with_limits(gpus=1) with nvidia.com/gpu; with_node_selection() schedules work onto GPU nodes. Serving functions default to one HTTP worker, and GPU count should match worker count. MLRun describes no fractional GPU sharing, so I would budget one GPU per worker.
Projects load from Git, zip or tar sources, with pipeline automation through GitHub Actions and GitLab; MLRun 1.13.0 added Buildah as a container builder. Kubeflow offers modular Pipelines, Katib, Trainer and Notebooks, but assembly and operations remain mine; Iguazio ships the same Pipelines engine with 24/7 enterprise support.
Feature Store and Model Monitoring
The feature store reads from BigQuery, Snowflake, files, HTTP, Kafka, S3 and Azure, and writes Parquet offline plus a key-value online target, with Redis as a tech-preview online option.
| Feature-store area | Supported options | Important limit |
|---|---|---|
| Warehouse sources | BigQuery, Snowflake | Snowflake ingestion requires Spark |
| Files and in-memory data | CSV, Parquet, DataFrames | Pandas partition limit applies |
| Network and object storage | HTTP, Kafka, S3, Azure | Confluent support is tech preview |
| Offline and export targets | Parquet, CSV, Kafka, Snowflake | Parquet is the default offline target |
| Online targets | V3IO NoSQL, Redis | Redis is tech preview; one online target per feature set |
| SQL source | SQL ingestion | Tech preview |
Feature Store Limits

- One online target: Redis and the default NoSQL target cannot coexist on the same feature set.
- Snowflake column case: names become uppercase. Entity, timestamp and label names must match that case or ingestion fails.
- Pandas partition ceiling: ingestion fails beyond 1,024 partitions. Storey and Spark do not have that limit.
- V3IO dependency: the default online store uses V3IO NoSQL, scheduled for deprecation in the next major platform release.
I would require a migration plan before adopting V3IO for a new online feature store, because Redis, the only other online target, is still tech preview.
Model Monitoring
The default drift app, deployed by enable_model_monitoring(), reports Total Variation Distance, Hellinger distance, their average and Kullback-Leibler divergence. It targets classic ML, not LLMs or deep learning. MLRun 1.10 extended monitoring to ModelRunnerStep.
LLM and gen AI monitoring require a custom app built on ModelMonitoringApplicationBase; an Evidently integration class also exists, and custom apps can be imported from the MLRun hub. I would budget LLM monitoring as implementation work, not a packaged feature.
The monitoring backends support:
- Streams: self-hosted Kafka 3.9.0, Confluent Cloud (tested against 7.9) or V3IO.
- Time series: TimescaleDB on PostgreSQL 17 or V3IO TSDB.
- V3IO TSDB capacity: up to 50,000 results or metrics per project per 10-minute period.
- Endpoint alerts: set per endpoint with
create_model_monitoring_alert_configs(), with a cooldown period added in MLRun 1.12.
MLRun 1.11 deprecated TDEngine without migrating its monitoring data, and 1.12 made v3io-frames an optional install. On an existing installation, I would make monitoring-data retention an upgrade acceptance criterion.
Gen AI and Agent Tooling

MLRun’s gen AI capabilities span prompt artifacts, agent loops and OpenAI-compatible serving, added across three minor releases:
- MLRun 1.10, announced 2 December 2025: added LLM prompt artifacts, remote Hugging Face models without saving them to a datastore, and ModelRunnerStep.
- MLRun 1.11, May 2026: added cyclic graphs for agent feedback loops, streamed token responses and batched event processing for GPUs.
- MLRun 1.12, September 2026: added the OpenAI-compatible serving frontend.
The NVIDIA NIM integration deploys NIM LLM microservices as serverless functions behind an LLM gateway. That gateway tracks usage by use case, model and provider, with GPU allocation on demand and OpenTelemetry metrics from NIM.
Gen AI implementation guides cover:
- Retrieval: RAG and vector databases.
- Model development: LLM evaluation and fine-tuning.
- Application controls: guardrails for data management.
- Serving examples: an OpenAI-frontend serving graph, Hugging Face batching and GPU utilization.
The getting-started tutorial uses a gen AI call-center application. I consider Iguazio a stronger fit for building and serving custom LLM pipelines than for buying packaged LLM evaluation and tracing, because monitoring still requires a custom app.
For a smaller initial commitment, ZenML Pro Starter costs $39 a month for one AI agent, one ML project and up to 100 pipeline runs a month, which suits a single agent prototype.
Deployment, Security and Ownership
Iguazio AI Platform 3.7.2, released in April 2026, supports Kubernetes 1.34 on EKS, AKS, GKE and on-premises vanilla Kubernetes. It deploys into my own cloud account or data center; Iguazio says it does not store customer data on its servers.
Infrastructure Requirements

- Playground: 1 data node plus 1 application node, without high availability.
- On-premises operational: at least 3 data nodes plus 3 application nodes.
- Cloud operational: at least 3 data nodes plus 2 application nodes.
- Operational dependencies: an external Docker registry and, on AWS, an Elastic IP.
- Application hardware: AMD x64 only; NVIDIA GPUs are supported.
- MLRun CE: installation requires cluster-admin permissions.
Security Controls
The platform’s controls include:
- Identity: Active Directory integration, an identity service such as Dex, and access-key authentication.
- Authorization: management RBAC, membership-based project isolation and a three-layer data scheme of data management policy, data-access policies and POSIX ACLs.
- Encryption and isolation: TLS in transit, LUKS at rest, private-IP deployment and air-gapped deployment.
Iguazio says the platform runs on AWS GovCloud and in SCIF facilities. Iguazio names no SOC 2, ISO 27001 or FedRAMP certification; it says outside penetration and vulnerability tests run continuously, with reports shared with customers.
Ownership and Roadmap
McKinsey & Company announced the acquisition on 23 January 2023, with the price undisclosed. About 70 Iguazio staff joined, and Iguazio became the base of a QuantumBlack location in Tel Aviv. QuantumBlack is McKinsey’s AI arm.
MLRun 1.13.0 shipped on 4 November 2026, with 1.14.0 release candidates in progress. The MLRun CE Helm chart reached 0.12.0 on 15 October 2026.
Iguazio 3.7.2 deprecates Python 3.9 and schedules V3IO NoSQL and streams for deprecation in the next major release, with Hive and Trino due in an upcoming release. Valohai also offers on-premises and air-gapped deployment, with per-user licensing instead of usage billing.
How Does Iguazio Compare to Competitors?
Iguazio’s niche is self-hosted ML and gen AI operations with enterprise support; these Iguazio alternatives trade it for published prices, managed infrastructure or no vendor at all.
- Amazon SageMaker AI: pay-as-you-go with no minimum fees, plus Savings Plans up to 64%. Its first-2-months free tier includes 250 notebook hours, 50 training hours and 125 inference hours. It wins for AWS-only teams that want no cluster to operate.
- Databricks: per-second DBU billing, no upfront fees and committed-use discounts. Cloud infrastructure is billed separately. It wins when the data already lives in the Databricks lakehouse.
- Google Vertex AI: pay-as-you-go and GCP-only. Vertex AI Pipelines costs $0.03 per pipeline run plus compute. It wins for GCP shops.
- Azure Machine Learning: no additional service charge, with compute billed per second. New Azure accounts receive a $200 30-day credit. It wins for Azure shops.
- Kubeflow: CNCF graduated, with modular Pipelines, Katib, Trainer and Notebooks. Assembly and operations are mine, with no vendor support. It wins for teams with Kubernetes skills that want no vendor.
- ZenML: Apache 2.0 open source; Pro Starter costs $39 a month with a 14-day trial, capped at one AI agent, one ML project and 100 pipeline runs a month. Enterprise adds air-gapped deployment, SSO and SCIM. It wins as a framework that runs on my existing stack.
- ClearML: Community costs $0; Pro costs $15 per user a month plus usage. Scale and Enterprise require quotes. It wins for small teams that want a published price.
- Domino Data Lab: another quote-only enterprise platform and the closest like-for-like rival on an enterprise procurement shortlist.
- Valohai: per-user licensing rather than usage, with managed cloud, on-premises, private-cloud or air-gapped deployment. It offers a 14-day free trial but no public prices, and wins for teams that want per-seat budgeting.
How I Reviewed Iguazio
For this Iguazio review, I installed MLRun 1.13.0 on my Mac in a Python 3.11 environment. I ran local training jobs, a hyperparameter grid and feature-set ingestion, then tested inference through the mock server.
I then evaluated Iguazio 3.7.2’s deployment options, hardware floor, security controls, pricing path and MLRun CE requirements. I did not run a licensed Iguazio cluster or the MLRun CE Helm install.
My evaluation covered:
- Pricing and value: contract structure and infrastructure costs.
- Infrastructure and setup: Python, Kubernetes and node requirements.
- Pipelines and serving: local jobs and offline inference.
- Feature store and monitoring: storage limits and custom-app requirements.
- Gen AI tooling: agent graphs and serving interfaces.
- Security and deployment: controls and self-hosting options.
- Alternatives: billing and operating models across the nine rivals above.
Prices current as of November 2026.
Should You Choose Iguazio?
Yes, for a regulated enterprise that must keep ML or gen AI operations in its own cloud account, data center or air-gapped site, already operates Kubernetes, and wants vendor support. I would shortlist Iguazio for its combined pipeline, feature-store, serving and monitoring capabilities in one stack.
No, for a small team without a platform engineer. I’d start with SageMaker AI’s pay-as-you-go model or ClearML Pro at $15 per user a month plus usage. I would also pause if packaged LLM monitoring is mandatory, or if procurement requires a named SOC 2 or ISO 27001 report before evaluation can begin.
Before signing, I would settle:
- Contract boundaries: the upfront commitment and usage-overage charges, priced separately.
- Production footprint: the node count the actual workload needs above the cloud minimum of 3 data plus 2 application nodes.
- Migration responsibility: the replacement path for V3IO-backed features and streams.
- Monitoring scope: which custom LLM checks the implementation must deliver.
My next step would be a single-use-case evaluation, with acceptance criteria covering serving, stored artifacts and monitoring rather than training accuracy alone. Book a demo or start with MLRun CE through Iguazio.
FAQ
How much does Iguazio cost?
Iguazio publishes no price for its AI Platform. Buying requires a quote or AWS Marketplace private offer, structured as an upfront contract for anticipated usage plus usage-based overage. MLRun CE and the MLRun SDK cost $0 in license; infrastructure runs on my own cloud bill. See the pricing section above for deployment minimums.
Is MLRun the same as Iguazio?
No. MLRun is the Apache 2.0 open-source core, while the Iguazio AI Platform adds managed services and enterprise controls. Those additions include LDAP/AD integration, multi-tenancy, a data firewall, air-gapped support and 24/7 support. MLRun CE is the free Helm bundle that packages the framework with supporting services; the SDK alone runs in local mode, without run tracking or the UI.
Who owns Iguazio?
McKinsey & Company owns Iguazio through QuantumBlack, its AI arm, following the acquisition announced on 23 January 2023. The acquisition price was undisclosed. About 70 Iguazio staff joined, and Iguazio became the base of a QuantumBlack location in Tel Aviv. Development continued, including MLRun 1.13.0 on 4 November 2026.
Can Iguazio run on-premises or air-gapped?
Yes. Iguazio supports on-premises, air-gapped and private-IP deployment. An on-premises operational cluster runs on vanilla Kubernetes 1.34 and needs at least 3 data nodes plus 3 application nodes. Iguazio also says the platform runs on AWS GovCloud and in SCIF facilities, but it names no SOC 2, ISO 27001 or FedRAMP certification.
Does Iguazio support LLM and agent workloads?
Yes. MLRun supports LLM prompt artifacts and cyclic agent graphs, alongside ModelRunnerStep, streamed responses, OpenAI-compatible serving and NVIDIA NIM integration. However, LLM monitoring requires a custom monitoring application. The default drift app targets classic ML, so hallucination, bias, PII or guardrail checks are code I would write on ModelMonitoringApplicationBase.








