The MLOps market hit $3.18 billion in 2025 and is growing at a 42% CAGR — yet Gartner estimates that nearly 70% of ML projects still never reach production. Teams are investing in machine learning at record pace, but most are discovering the hard truth: building a model is not the hard part. Keeping it running, monitored, and continuously improving in a production environment is. This guide breaks down how to build a scalable MLOps pipeline using the best open-source tools available in 2026 — MLflow, Kubeflow, DVC, Feast, and Evidently — grounded in real architecture patterns from Google Cloud and battle-tested deployments like Lockheed Martin’s AI Factory.
Why Most “MLOps” Implementations Are Just Scripted Deployments
Here’s the uncomfortable reality: most teams that claim to “have MLOps” are running Level 0 pipelines — manual, script-driven processes where a data scientist trains a model locally, pickles it, and hands it off to an engineer who deploys it manually to a Flask endpoint. This is not MLOps. This is managed chaos.
Google Cloud’s canonical MLOps architecture defines three automation levels. Understanding where your team sits on this scale is the first step to building something that actually scales:
- Level 0 — Manual: Disconnected scripts, no versioning, no automated retraining. The model is a static artifact. Most enterprises are here.
- Level 1 — ML Pipeline Automation: The training pipeline is automated and parameterized. Continuous training (CT) triggers on new data. The model is versioned, but the pipeline components are not necessarily reusable across environments.
- Level 2 — CI/CD Pipeline Automation: Full automation across code, data, models, and infrastructure. CI validates components end-to-end. CD deploys the entire training pipeline — not just the resulting model. The principle of experimental-operational symmetry means every component is containerized and reproducible from development through production.
The 4x faster deployment velocity and 40% reduction in production incidents that Gartner attributes to mature MLOps practices come from teams operating at Level 2. The gap between Level 0 and Level 2 isn’t a tool gap — it’s an architecture gap. Let’s close it.
The Silent Killer: Model Degradation You Discover Too Late
Before diving into the stack, you need to understand why the pipeline architecture below is designed the way it is. The number one reason ML systems fail in production isn’t the model — it’s the data feeding it.
According to Datategy’s 2025 enterprise MLOps study:
- 53% of organizations discover critical model issues more than 3 weeks after they occur.
- 68% of NLP models degrade within 6 months due to linguistic drift.
- 73% of ML failures trace to undocumented schema changes in production data.
- 62% of enterprises cite data versioning complexity as their top ML pipeline bottleneck.
Teams with mature monitoring practices detect degradation in 9 days. Teams without structured MLOps catch it in 4.2 months — after real damage is done. Every architectural decision in the pipeline below is designed to prevent this.
The 2026 Open-Source MLOps Stack
The following stack covers the full ML lifecycle from raw data to production monitoring. Each component is open-source, cloud-agnostic, and battle-tested. They compose cleanly and can be adopted incrementally — you don’t need all five on day one.
- DVC / lakeFS — Data versioning and lineage
- MLflow — Experiment tracking, model registry, artifact storage
- Kubeflow Pipelines (KFP v2) — Containerized pipeline orchestration on Kubernetes
- Feast — Feature store for training/serving consistency
- Evidently — Model monitoring, data drift detection, automated alerting
Layer 1: Data Versioning with DVC and lakeFS
Data versioning is the most under-invested component in the average MLOps stack — and the one that causes the most production failures. The Lockheed Martin AI Factory case study, presented at the NVIDIA AI Summit in October 2024, demonstrates this at enterprise scale: by adopting lakeFS for data versioning, engineers gained full traceability of every model lineage — datasets, parameters, and configurations — for every result. This is not a nice-to-have; for regulated environments, it’s a compliance requirement.
DVC (Data Version Control) brings Git-like semantics to datasets and model artifacts. A dvc.yaml file defines your pipeline stages, their dependencies, and their outputs. Running dvc repro re-executes only the stages that changed — exactly like a Makefile for ML. DVC was acquired by lakeFS in November 2025 and continues as fully open-source.
For teams working at the data lake layer (Spark, Iceberg, Delta Lake), lakeFS adds Git-like branching semantics directly to your object storage (S3, GCS, Azure Blob). You can create a feature branch of your dataset, run experiments on it, and merge only if metrics improve — without duplicating petabytes of data.
Layer 2: Experiment Tracking with MLflow
MLflow is the de facto standard for experiment tracking in 2026. Its four core components cover the full experimentation loop:
- MLflow Tracking: Log parameters, metrics, and artifacts from any training run. The UI renders comparison charts across runs automatically.
- MLflow Projects: Reproducible, packaged ML code with a
MLprojectfile defining the entry points, parameters, and Conda/Docker environment. - MLflow Models: A standard format for packaging models from any framework (scikit-learn, PyTorch, TensorFlow, XGBoost) with a single
predict()interface. - MLflow Model Registry: Centralized lifecycle management — staging, production, and archived states, with transition approval workflows and version history.
In a Kubernetes deployment, the MLflow tracking server runs as a pod with a PostgreSQL backend (for the metadata store) and S3-compatible storage (MinIO or your cloud bucket) for artifacts. Every Kubeflow pipeline step calls mlflow.log_params() and mlflow.log_metrics() before completing — making every experiment fully reproducible.
Layer 3: Pipeline Orchestration with Kubeflow Pipelines v2
Kubeflow Pipelines (KFP v2) is the orchestration backbone. Each pipeline step runs as an isolated Kubernetes Pod — fully containerized, independently scalable, and retryable on failure. The July 2025 fraud-detection blueprint from the Kubeflow project demonstrates the full architecture on a local kind cluster using Apache Spark, Feast, and KFP v2.
In KFP v2, pipelines are defined as Python functions decorated with @dsl.pipeline. Each step is a @dsl.component — a self-contained Python function that declares its inputs, outputs, and container image. The SDK compiles this into an IR YAML spec that KFP executes on the cluster.
A minimal three-step pipeline — data preprocessing, training, evaluation — looks like this in structure: a preprocess_data component that reads from lakeFS and outputs a dataset artifact; a train_model component that receives the dataset, logs to MLflow, and outputs a model artifact; and an evaluate_model component that computes metrics and conditionally promotes the model to the MLflow registry. The conditional promotion gate is the difference between an automated pipeline and a mature one.
Kubeflow 1.9+ includes a built-in Model Registry — a centralized service for managing model versions, deployment metadata, rollback history, and audit trails. This complements MLflow’s registry by adding Kubernetes-native deployment semantics.
Layer 4: Feature Store with Feast
The feature store solves the training-serving skew problem — the condition where features computed differently at training time versus serving time cause model performance to degrade silently in production. Feast defines features once and serves them from a unified registry, ensuring that the user_30d_purchase_avg feature your model trained on is computed identically whether it’s being retrieved for a batch training job or a real-time API request.
In the Kubeflow fraud-detection reference architecture, Feast integrates between the data preprocessing step and the training step: features are materialized to an offline store (Parquet or BigQuery) for training and to an online store (Redis) for inference. The feature definitions live in a Git-versioned feature_store.yaml file — making them auditable and reproducible across environments.
Layer 5: Monitoring and Drift Detection with Evidently
Monitoring is where most MLOps implementations break down. Teams instrument application metrics (latency, error rate) but miss the ML-specific signals: data drift (the distribution of input features has shifted), concept drift (the relationship between features and labels has changed), and prediction drift (the distribution of model outputs has shifted).
Evidently generates statistical tests and visualizations for all three drift types. In a production pipeline, a scheduled Kubeflow step runs Evidently reports on a rolling window of inference logs and compares them against the training reference dataset. If drift scores cross a threshold, a new training job is triggered automatically — closing the continuous training loop without human intervention.
Evidently’s TestSuite API allows you to define SLAs for your model directly in code: TestColumnDrift(column_name="transaction_amount"), TestShareOfMissingValues(lt=0.05), TestF1Score(gte=0.85). Each test either passes or fails, and failed tests can trigger Kubeflow pipeline runs, PagerDuty alerts, or Slack notifications via the webhook integration.
The CI/CD Layer: Wiring the Stack Together
A complete CI/CD pipeline for ML has two distinct workflows, as described in the Red Hat Kubeflow Pipelines implementation guide:
- CI — Validate and package: On every PR, run unit tests on pipeline components, validate data schemas against the expected feature definitions, run a smoke test of the full pipeline on a sampled dataset, and build versioned container images for every component.
- CD — Deploy the pipeline, not the model: On merge to main, deploy the updated training pipeline to Kubeflow. The pipeline run that follows produces a new model candidate. If it passes the automated evaluation gate (metrics exceed the current production model), the candidate is promoted to the MLflow registry staging slot and then to production. The model serving infrastructure (KServe) picks up the registry change and rolls out the new version without manual intervention.
This distinction — deploying the pipeline, not the model — is what separates Level 1 from Level 2. At Level 1, CI/CD only touches the model artifact. At Level 2, CI/CD governs the entire training and validation workflow, making the pipeline itself a first-class versioned asset.
LLMOps: When the Stack Needs to Evolve
If your organization is moving toward LLM-based systems, the MLOps stack above provides the foundation — but requires extensions. LLMOps diverges from classical MLOps in several key areas:
- Prompt versioning: Prompts are code. Version them in Git, evaluate them like model candidates, and roll them back when they regress. Tools like LangSmith, PromptLayer, or custom MLflow logging handle this.
- Hallucination monitoring: Evidently’s text-based report generators can flag semantic drift in LLM outputs; specialized tools like Ragas handle RAG retrieval quality evaluation.
- Token cost management: LLM inference costs scale with token consumption, not compute hours. The feature store layer gains a new responsibility: caching frequently retrieved embeddings to avoid redundant API calls.
- RLHF pipeline integration: Human feedback loops need to be operationalized — not left as ad hoc annotation workflows. Kubeflow Pipelines can orchestrate feedback collection, fine-tuning runs, and A/B evaluation in the same framework used for classical models.
Gartner predicts that over 50% of generative AI enterprise deployments will fail by 2026 due to hallucinations, poor data grounding, and absence of structured workflow governance. The antidote is applying MLOps discipline to LLM systems from day one — not retrofitting governance after a production incident.
Infrastructure Cost: The Constraint That Kills Pipelines
A well-architected MLOps pipeline on unoptimized infrastructure will still burn budget faster than the value it produces. GPU compute costs are the dominant line item, and they’re being disrupted. VESSL AI’s $12M Series A (October 2024) is built entirely around one insight: multi-cloud spot instance orchestration can cut GPU costs by up to 80% without sacrificing pipeline reliability.
For teams on Kubernetes, the equivalent is using node pools with preemptible/spot instances for training jobs (which are restartable via Kubeflow’s checkpoint mechanism) while reserving on-demand instances for inference workloads where latency guarantees matter. This separation of training and serving compute pools is a standard cost optimization pattern in mature MLOps deployments.
Where to Start: A Phased Adoption Path
You don’t need all five layers on day one. A pragmatic adoption sequence that delivers value at each phase:
- Phase 1 (Week 1–2): Add MLflow tracking to your existing training scripts. Every run is now logged with parameters and metrics. Cost: one
pip install mlflowand three lines of code per training script. - Phase 2 (Week 2–4): Add DVC to version your training datasets alongside your code. Every
git commitnow pins both code and data. Reproduce any past experiment withdvc checkout+dvc repro. - Phase 3 (Month 2): Containerize your training pipeline steps and port them to Kubeflow Pipelines. Add the automated evaluation gate. Now model promotion requires no human decision for standard cases.
- Phase 4 (Month 3–4): Add Evidently monitoring on production inference logs. Configure drift thresholds that trigger automated retraining. You are now at Level 2.
- Phase 5 (ongoing): Introduce Feast for feature governance as your model count grows past 5–10 models that share features. Add the Kubeflow Model Registry for multi-model deployment orchestration.
Conclusion: MLOps Is an Engineering Discipline, Not a Tool Checklist
The 70% failure rate of ML projects isn’t a data science problem or a model quality problem. It’s an engineering problem: the absence of reproducible, monitored, continuously improving systems that treat ML artifacts with the same rigor that software engineering has applied to application code for the past two decades. MLflow, Kubeflow, DVC, Feast, and Evidently give you the infrastructure. Google’s Level 0/1/2 maturity model gives you the architectural target. The Lockheed Martin and Kubeflow fraud-detection blueprints give you the reference architecture. What differentiates the 30% that succeed is the organizational decision to treat MLOps as a first-class engineering discipline — not an afterthought once the model is “good enough.” Start with Phase 1 today. The pipeline you build now is the one that will still be running — and improving — in three years.
