ROADMAP

MLOps Roadmap

From data contracts to production deployment, monitoring and rollback — build a repeatable ML delivery process.

This roadmap develops nine capabilities in a fixed order: ML lifecycle foundations, data contracts and versioning, reproducible training, packaging, serving patterns, orchestration, CI/CD with rollback, monitoring for service and model quality, and governance with retraining. Where you start depends on your background — data scientists start with data contracts, DevOps and SRE engineers start at serving and packaging — and the start-path selector below chooses the entry stage for you. The roadmap exercises assume comfort with Python and Git; if those are new to you, budget extra preparation time — they are not an admission requirement for the SCAI course, which teaches these foundations. As an indicative planning estimate, allow about 10–12 weeks at 8–10 hours per week to complete the roadmap builds and capstone, assuming those foundations. This is a self-study estimate, not a promise of job readiness or an equivalent to the separate five-month live course. Each stage has a build task, acceptance checks and a measurable outcome.

For:ML engineers, data scientists, backend engineers and DevOps moving into AI infrastructure. The roadmap exercises assume comfort with Python and Git; the SCAI course itself teaches these foundations.

What is the right MLOps roadmap?

The right MLOps roadmap does not start with tools — it starts with a question: can you take a model from a data scientist's notebook to a production service, keep it running and recover when it breaks? That means versioning your data so training is reproducible, packaging the model with its preprocessing so inference matches training, choosing a serving pattern that fits your latency budget, automating releases with gates that block bad models, monitoring both service health and prediction quality, and treating retraining as a candidate — not an automatic promotion. If you cannot reproduce your promoted model from recorded inputs, you do not have MLOps — you have a deployment script.

Written byAshutosh· AI InstructorVerified byVivek· AIOps and Generative AI InstructorPublishedUpdated

Sources and methodology · This roadmap is reviewed when production practices, tools or platform patterns materially change.

Stages

9

Estimated path

Indicative: 10–12 weeks at 8–10 hours per week

Last reviewed

15 October 2026

Where should you start?

You likely already know

  • Python
  • ML lifecycle
  • Experimentation

Your modelling workflow is the strength — the gap is everything after model.fit(): versioned datasets, tracked runs and release gating. Skim the lifecycle map once so the build tasks have context.

Review briefly

  • Linux basics
  • Git workflow

First practical task

Version one training dataset with DVC, write a schema contract, and deliberately break the schema to confirm the pipeline rejects it — the Stage 2 build.

Recommended entry

02Data contracts, versioning and lineage

Readiness for the next stage

You are ready for the packaging stage when you can reproduce your promoted model from its recorded inputs alone — same commit, same data version, same config — and get the same metrics.

Core Roadmap

MLOps learning path

MLOps manages the delivery and operation of machine-learning systems. Start with a reproducible training and inference workflow, then add data validation, experiment tracking and versioned artifacts. Automate tests and releases, monitor service and model behaviour, and define rollback and retraining decisions.

  1. Phase 01Foundation
  2. Phase 02Build
  3. Phase 03Ship
  4. Phase 04Operate

Roadmap overview

Ten stages with what to learn, what to build, the exit criterion for each, and an estimated time.

StageWhat to learnWhat to buildExit criterionTime
01 ML lifecycle and operational foundationsBefore you touch any MLOps tool, understand how a model travels from a data scientist's notebook to a production service that real users depend on. This stage maps the full lifecycle — training artifacts, inference artifacts, the people who own each stage, and the failure points where things go wrong.Take one ML model — yours or an open-source one — and map its full lifecycle: what artifacts are produced during training, what gets deployed for inference, who owns each stage, and where the top 3 failure points are. Write this as a one-page document.You can draw the lifecycle of one ML model from training to serving to monitoring, name the artifacts at each stage, identify who owns each transition, and point to where the model would fail if data changed, code changed or infrastructure changed.—
02 Data contracts, versioning and lineageYour model is only as trustworthy as the data it was trained on. If the data changes and you cannot reproduce the exact dataset that produced your production model, you cannot debug quality regressions, audit for compliance, or roll back to a known-good state.Set up data versioning with DVC or equivalent for your training dataset. Write a schema contract that validates column names, types and ranges before training starts. Then deliberately break the schema (rename a column, change a type) and verify that your pipeline rejects the incompatible data instead of silently training on wrong input.Your training pipeline rejects incompatible data with a clear error message naming the violated contract. You can reproduce the exact dataset that produced your last promoted model from its version hash.—
03 Reproducible training and experiment trackingA reproducible training run means: given the same code, data, configuration and environment, you can produce the same model artifacts. This requires tracking not just the final model file, but every input and decision that produced it — including hyperparameters, library versions and random seeds.Set up MLflow or equivalent to track: code commit hash, data version hash, hyperparameters, environment (library versions), metrics and model artifacts for every training run. Then reproduce your promoted model from scratch using only the recorded inputs — no manual steps, no 'I think I used learning rate 0.01.'You can reproduce your promoted model from recorded inputs alone — the same code commit, data version, config and environment — and get the same metrics within expected variance. Someone else on your team could do the same from your experiment records.—
04 Package models and preprocessingA model artifact without its preprocessing pipeline is a time bomb. If you fit a scaler on training data and then apply different preprocessing at inference time, your model will silently produce wrong predictions. Packaging means the model and its preprocessing travel together as one deployable unit.Package your model and its full preprocessing pipeline (scaler, encoder, feature engineering) into a single Docker container. Include a health check endpoint that verifies the model loads and can make a prediction. Then load the container in a clean environment — no training dependencies installed — and verify it produces the same predictions as your local model.Your container starts cleanly in a fresh environment, the health check passes only when the model is loaded and ready to serve, and predictions match your local model within expected precision. No training-only dependencies are needed at inference time.—
05 Choose a serving patternHow you serve a model determines its latency, throughput, cost and operational complexity. Batch inference processes records in bulk on a schedule. Synchronous inference responds to individual requests in real time. Asynchronous inference handles requests that take seconds or minutes. Event-driven inference reacts to data changes. The right choice depends on your latency budget, traffic pattern and cost constraints.Implement two serving patterns for the same model — synchronous (FastAPI endpoint) and batch (scheduled job that processes a CSV). Benchmark both: measure p50/p95 latency, throughput, cost per 1000 predictions and resource usage. Write a one-paragraph justification for which pattern fits a real-time fraud detection use case vs a nightly batch scoring use case.You can benchmark two serving patterns against their request contracts and explain which fits which use case based on latency, throughput and cost — not just 'synchronous is for real-time.'—
06 Orchestrate pipelines and infrastructurePipeline orchestration coordinates the steps of your ML workflow — data validation, training, evaluation, packaging and deployment — with dependencies, retries and scheduling. Cluster orchestration (Kubernetes) manages the infrastructure those steps run on. They are different layers, and confusing them leads to over-engineered or under-engineered systems.Set up a pipeline orchestrator (Airflow, Prefect or equivalent) for your training workflow: data validation → training → evaluation → packaging. Configure it with dependencies (evaluation runs only if training succeeds), retries (one retry on transient failure) and a backfill capability (rerun for a past date). Then deliberately fail one step and verify the pipeline stops, the completed steps are not rerun, and the failure is visible.You can rerun a failed pipeline step safely — completed steps are not repeated, the failure is logged and visible, and the pipeline resumes from the failure point. You can justify whether your workload needs Kubernetes or runs fine on a single machine.—
07 Test, release and roll back modelsReleasing a model to production is not a git push — it is a decision that affects real users. A release pipeline needs gates: code tests pass, data validation passes, model metrics meet thresholds, and the model is registered with a version. Then it needs staged rollout (canary or blue-green) and rollback capability for when the new model is worse than the old one.Set up a CI/CD pipeline for your model: code tests → data validation → training → evaluation against a threshold → registry promotion. Then deploy with a canary strategy: route 10% of traffic to the new model, monitor metrics for 10 minutes, and promote to 100% only if metrics hold. Finally, deliberately introduce a regression (lower the evaluation threshold so a bad model passes) and demonstrate rollback to the previous model version.A degraded candidate is blocked by your gates before reaching production. If a bad model somehow passes gates, you can roll back to the previous model version within 5 minutes. Your release history shows which model version is serving at any point in time.—
08 Monitor services, data and model performanceA deployed ML model has two independent health signals: service health (is the endpoint up, fast and not erroring?) and model quality (is it still making accurate predictions?). Service monitoring catches outages. Model monitoring catches silent degradation — the service is healthy but predictions are wrong because the input data distribution shifted.Set up monitoring for both layers: service metrics (latency p50/p95, error rate, request volume) with alerts tied to SLOs, and model metrics (input distribution drift, prediction distribution shift, delayed ground-truth comparison when labels arrive). Then inject two failures: a service outage (kill the process) and a model quality regression (shift the input distribution) — and verify that each triggers a different alert with a different response.You can diagnose a service failure (endpoint down, latency spike) separately from a model quality regression (predictions drifting, input distribution changed). Your monitoring distinguishes 'the model is unreachable' from 'the model is reachable but wrong.'—
09 Retraining, governance and incident responseDrift detection tells you something changed. It does not tell you the new model will be better. Retraining should be triggered automatically when drift is detected, but promotion to production must pass the same gates as any other release: evaluation against thresholds, comparison with the current model, and operational checks. A newly trained model is a candidate, not a promotion.Set up a retraining trigger that fires when input drift is detected. The trigger runs a new training job and registers the model as a candidate. Then add a promotion gate: the candidate must beat the current model on held-out metrics AND pass operational checks (latency, memory) before it replaces the production model. If the candidate fails the gate, the current model stays in production and the failed candidate is logged for analysis.Retraining is triggered automatically by drift, but promotion requires the candidate to pass evaluation and operational gates. A weaker candidate is blocked and the current production model continues serving. You can explain why a retraining run did or did not result in a production deployment.—
MLOps Roadmap01 / 9

Phase 01

Foundation

The ML lifecycle and the engineering primitives that make it operational.

01

ML lifecycle and operational foundations

Before you touch any MLOps tool, understand how a model travels from a data scientist's notebook to a production service that real users depend on. This stage maps the full lifecycle — training artifacts, inference artifacts, the people who own each stage, and the failure points where things go wrong.

Core concepts

Training versus inference

Artifacts and owners

Git, Linux and identity

Failure points in the lifecycle

Why it matters

Engineers who skip lifecycle understanding end up with tool-first thinking — they install MLflow before they know what artifacts they need to track, or set up Kubernetes before they know their serving latency requirements. Map the lifecycle first, then choose tools that fit it.

How this fits into the system

Each step depends on the previous one — skip a layer and the next becomes fragile.

Build 1

Take one ML model — yours or an open-source one — and map its full lifecycle: what artifacts are produced during training, what gets deployed for inference, who owns each stage, and where the top 3 failure points are. Write this as a one-page document.

Input

Before you touch any MLOps tool, understand how a model travels from a data scientist's notebook to a production service that real users depend on. This stage maps the full lifecycle — training artifacts, inference artifacts, the people who own each stage, and the failure points where things go wrong.

System

Training versus inference
Artifacts and owners
Git, Linux and identity
Failure points in the lifecycle

Success condition

You can draw the lifecycle of one ML model from training to serving to monitoring, name the artifacts at each stage, identify who owns each transition, and point to where the model would fail if data changed, code changed or infrastructure changed.

Training versus inferenceArtifacts and ownersGit, Linux and identity
Difficulty

Common mistake

Jumping straight into tools — installing Airflow, MLflow or Kubernetes — before you understand what you are orchestrating, tracking or deploying. The tool is not the lifecycle.

Ready to continue?

You should now be able to:

  • You can draw the lifecycle of one ML model from training to serving to monitoring, name the artifacts at each stage, identify who owns each transition, and point to where the model would fail if data changed, code changed or infrastructure changed.

Phase 02

Build

Make training reproducible: versioned data, tracked experiments, pipelined runs.

02

Data contracts, versioning and lineage

Your model is only as trustworthy as the data it was trained on. If the data changes and you cannot reproduce the exact dataset that produced your production model, you cannot debug quality regressions, audit for compliance, or roll back to a known-good state.

Architecture decision

Git vs DVC for Data

 Option AOption B
Storescodelarge datasets
Difflineschecksums / partitions
Storage backendgit objectsobject store (S3/GCS)
Best forsource + configtraining datasets + artifacts

Start with: Use Git for code/config and DVC (or similar) for datasets — never commit large data to Git.

How this fits into the system

Each step depends on the previous one — skip a layer and the next becomes fragile.

What to build

Set up data versioning with DVC or equivalent for your training dataset. Write a schema contract that validates column names, types and ranges before training starts. Then deliberately break the schema (rename a column, change a type) and verify that your pipeline rejects the incompatible data instead of silently training on wrong input.

Build 1

Set up data versioning with DVC or equivalent for your training dataset. Write a schema contract that validates column names, types and ranges before training starts. Then deliberately break the schema (rename a column, change a type) and verify that your pipeline rejects the incompatible data instead of silently training on wrong input.

Input

Your model is only as trustworthy as the data it was trained on. If the data changes and you cannot reproduce the exact dataset that produced your production model, you cannot debug quality regressions, audit for compliance, or roll back to a known-good state.

System

Snapshots and schemas
Data quality checks
Access and point-in-time correctness
Lineage tracking

Success condition

Your training pipeline rejects incompatible data with a clear error message naming the violated contract. You can reproduce the exact dataset that produced your last promoted model from its version hash.

Snapshots and schemasData quality checksAccess and point-in-time correctness
Difficulty

Core concepts

Snapshots and schemas

Data quality checks

Access and point-in-time correctness

Lineage tracking

Why it matters

In production ML, data drifts. Schemas change. Columns get renamed. New categories appear. Without versioned data and contracts, a training run that produced a great model last month may produce a broken one today — and you will not know why. Data contracts catch these changes before they reach training.

Ready to continue?

You should now be able to:

  • Your training pipeline rejects incompatible data with a clear error message naming the violated contract. You can reproduce the exact dataset that produced your last promoted model from its version hash.

Still unclear? Review: ML lifecycle and operational foundations →

03

Reproducible training and experiment tracking

A reproducible training run means: given the same code, data, configuration and environment, you can produce the same model artifacts. This requires tracking not just the final model file, but every input and decision that produced it — including hyperparameters, library versions and random seeds.

How this fits into the system

Each step depends on the previous one — skip a layer and the next becomes fragile.

What to build

Set up MLflow or equivalent to track: code commit hash, data version hash, hyperparameters, environment (library versions), metrics and model artifacts for every training run. Then reproduce your promoted model from scratch using only the recorded inputs — no manual steps, no 'I think I used learning rate 0.01.'

Core concepts

Code, data and configuration versions

Metrics and artifacts

Experiment tracking

Seeds and determinism

Debug this

Tracking only the final model file and metrics, not the full input chain. When the model degrades in production, you have no way to trace back what changed.

What would you inspect first?

  • [ Inputs ]
  • [ Config ]
  • [ Pipeline ]
  • [ Environment ]
Reveal reasoning

Start by reproducing the failure with the smallest change. Most reproducible training and experiment tracking failures come from a mismatch between how the component was built and how it runs in the wider system, not from the core logic itself.

Build 1

Set up MLflow or equivalent to track: code commit hash, data version hash, hyperparameters, environment (library versions), metrics and model artifacts for every training run. Then reproduce your promoted model from scratch using only the recorded inputs — no manual steps, no 'I think I used learning rate 0.01.'

Input

A reproducible training run means: given the same code, data, configuration and environment, you can produce the same model artifacts. This requires tracking not just the final model file, but every input and decision that produced it — including hyperparameters, library versions and random seeds.

System

Code, data and configuration versions
Metrics and artifacts
Experiment tracking
Seeds and determinism

Success condition

You can reproduce your promoted model from recorded inputs alone — the same code commit, data version, config and environment — and get the same metrics within expected variance. Someone else on your team could do the same from your experiment records.

Code, data and configuration versionsMetrics and artifactsExperiment tracking
Difficulty

Tools you'll encounter

Experiment Tracking
MLflowWeights & Biases
Workflow Scheduling
DagsterAirflowPrefect
Model Registry
MLflow RegistryW&B Models

Learn the engineering concept first. Tools are implementation choices.

Ready to continue?

You should now be able to:

  • You can reproduce your promoted model from recorded inputs alone — the same code commit, data version, config and environment — and get the same metrics within expected variance. Someone else on your team could do the same from your experiment records.

Still unclear? Review: Data contracts, versioning and lineage →

Phase 03

Ship

Package, expose and orchestrate models reliably behind real interfaces.

04

Package models and preprocessing

A model artifact without its preprocessing pipeline is a time bomb. If you fit a scaler on training data and then apply different preprocessing at inference time, your model will silently produce wrong predictions. Packaging means the model and its preprocessing travel together as one deployable unit.

Core concepts

Dependencies and images

CPU/GPU compatibility

Readiness and health checks

Preprocessing pipeline packaging

Why it matters

Train/serve skew — when training preprocessing differs from inference preprocessing — is one of the most common and hardest-to-debug production ML failures. The model looks fine in evaluation but serves wrong predictions in production because the preprocessing was not packaged with it. A container that bundles the model, preprocessing and dependencies eliminates this class of failure.

How this fits into the system

Each step depends on the previous one — skip a layer and the next becomes fragile.

Build 1

Package your model and its full preprocessing pipeline (scaler, encoder, feature engineering) into a single Docker container. Include a health check endpoint that verifies the model loads and can make a prediction. Then load the container in a clean environment — no training dependencies installed — and verify it produces the same predictions as your local model.

Input

A model artifact without its preprocessing pipeline is a time bomb. If you fit a scaler on training data and then apply different preprocessing at inference time, your model will silently produce wrong predictions. Packaging means the model and its preprocessing travel together as one deployable unit.

System

Dependencies and images
CPU/GPU compatibility
Readiness and health checks
Preprocessing pipeline packaging

Success condition

Your container starts cleanly in a fresh environment, the health check passes only when the model is loaded and ready to serve, and predictions match your local model within expected precision. No training-only dependencies are needed at inference time.

Dependencies and imagesCPU/GPU compatibilityReadiness and health checks
Difficulty

Tools you'll encounter

Container Runtime
DockerPodman
Artifact Storage
S3GCSArtifact Registry

Learn the engineering concept first. Tools are implementation choices.

Expected depth

Docker
OPERATE
Artifact Management
BUILD
Kubernetes
EXPLAIN

Common mistake

Saving just the model weights without the preprocessing pipeline. The model works in the notebook where the scaler was fitted, but produces garbage in production where the scaler is missing or was fitted on different data.

Ready to continue?

You should now be able to:

  • Your container starts cleanly in a fresh environment, the health check passes only when the model is loaded and ready to serve, and predictions match your local model within expected precision. No training-only dependencies are needed at inference time.

Still unclear? Review: Reproducible training and experiment tracking →

05

Choose a serving pattern

How you serve a model determines its latency, throughput, cost and operational complexity. Batch inference processes records in bulk on a schedule. Synchronous inference responds to individual requests in real time. Asynchronous inference handles requests that take seconds or minutes. Event-driven inference reacts to data changes. The right choice depends on your latency budget, traffic pattern and cost constraints.

Architecture decision

Online vs Batch Inference

 Option AOption B
Latencyms / secmin / hour
Trafficrequestsscheduled
Infrastructurealways-onjobs
Best forlive appsbulk scoring
Operational costhigherlower

Start with: Learn batch and basic API serving before adding complex inference infrastructure.

How this fits into the system

Each step depends on the previous one — skip a layer and the next becomes fragile.

What to build

Implement two serving patterns for the same model — synchronous (FastAPI endpoint) and batch (scheduled job that processes a CSV). Benchmark both: measure p50/p95 latency, throughput, cost per 1000 predictions and resource usage. Write a one-paragraph justification for which pattern fits a real-time fraud detection use case vs a nightly batch scoring use case.

Build 1

Implement two serving patterns for the same model — synchronous (FastAPI endpoint) and batch (scheduled job that processes a CSV). Benchmark both: measure p50/p95 latency, throughput, cost per 1000 predictions and resource usage. Write a one-paragraph justification for which pattern fits a real-time fraud detection use case vs a nightly batch scoring use case.

Input

How you serve a model determines its latency, throughput, cost and operational complexity. Batch inference processes records in bulk on a schedule. Synchronous inference responds to individual requests in real time. Asynchronous inference handles requests that take seconds or minutes. Event-driven inference reacts to data changes. The right choice depends on your latency budget, traffic pattern and cost constraints.

System

Batch inference
Online inference
Asynchronous inference
Event-driven inference

Success condition

You can benchmark two serving patterns against their request contracts and explain which fits which use case based on latency, throughput and cost — not just 'synchronous is for real-time.'

Batch inferenceOnline inferenceAsynchronous inference
Difficulty

Core concepts

Batch inference

Online inference

Asynchronous inference

Event-driven inference

Tools you'll encounter

Serving
FastAPIBentoMLTriton
Infrastructure
DockerKubernetes

Learn the engineering concept first. Tools are implementation choices.

Expected depth

FastAPI Serving
BUILD
Batch Inference
BUILD
Triton / BentoML
AWARE
Latency Debugging
DEBUG

Why it matters

Choosing the wrong serving pattern means either overpaying for infrastructure you do not need (synchronous serving for a batch job) or failing your latency SLO (batch serving for a real-time use case). In production, the serving pattern also determines your failure modes — a synchronous endpoint that takes 30 seconds will queue requests and cascade failures under load.

Ready to continue?

You should now be able to:

  • You can benchmark two serving patterns against their request contracts and explain which fits which use case based on latency, throughput and cost — not just 'synchronous is for real-time.'

Still unclear? Review: Package models and preprocessing →

06

Orchestrate pipelines and infrastructure

Pipeline orchestration coordinates the steps of your ML workflow — data validation, training, evaluation, packaging and deployment — with dependencies, retries and scheduling. Cluster orchestration (Kubernetes) manages the infrastructure those steps run on. They are different layers, and confusing them leads to over-engineered or under-engineered systems.

How this fits into the system

Each step depends on the previous one — skip a layer and the next becomes fragile.

What to build

Set up a pipeline orchestrator (Airflow, Prefect or equivalent) for your training workflow: data validation → training → evaluation → packaging. Configure it with dependencies (evaluation runs only if training succeeds), retries (one retry on transient failure) and a backfill capability (rerun for a past date). Then deliberately fail one step and verify the pipeline stops, the completed steps are not rerun, and the failure is visible.

Core concepts

Pipeline dependencies and retries

Backfills and scheduling

Workflow orchestration

Cluster orchestration as separate layer

Debug this

Conflating workflow orchestration with cluster orchestration. Airflow coordinates jobs and dependencies; Kubernetes manages containers and infrastructure. You can use Airflow without Kubernetes, and Kubernetes without Airflow. They solve different problems.

What would you inspect first?

  • [ Inputs ]
  • [ Config ]
  • [ Pipeline ]
  • [ Environment ]
Reveal reasoning

Start by reproducing the failure with the smallest change. Most orchestrate pipelines and infrastructure failures come from a mismatch between how the component was built and how it runs in the wider system, not from the core logic itself.

Build 1

Set up a pipeline orchestrator (Airflow, Prefect or equivalent) for your training workflow: data validation → training → evaluation → packaging. Configure it with dependencies (evaluation runs only if training succeeds), retries (one retry on transient failure) and a backfill capability (rerun for a past date). Then deliberately fail one step and verify the pipeline stops, the completed steps are not rerun, and the failure is visible.

Input

Pipeline orchestration coordinates the steps of your ML workflow — data validation, training, evaluation, packaging and deployment — with dependencies, retries and scheduling. Cluster orchestration (Kubernetes) manages the infrastructure those steps run on. They are different layers, and confusing them leads to over-engineered or under-engineered systems.

System

Pipeline dependencies and retries
Backfills and scheduling
Workflow orchestration
Cluster orchestration as separate layer

Success condition

You can rerun a failed pipeline step safely — completed steps are not repeated, the failure is logged and visible, and the pipeline resumes from the failure point. You can justify whether your workload needs Kubernetes or runs fine on a single machine.

Pipeline dependencies and retriesBackfills and schedulingWorkflow orchestration
Difficulty

Ready to continue?

You should now be able to:

  • You can rerun a failed pipeline step safely — completed steps are not repeated, the failure is logged and visible, and the pipeline resumes from the failure point. You can justify whether your workload needs Kubernetes or runs fine on a single machine.

Still unclear? Review: Choose a serving pattern →

07

Test, release and roll back models

Releasing a model to production is not a git push — it is a decision that affects real users. A release pipeline needs gates: code tests pass, data validation passes, model metrics meet thresholds, and the model is registered with a version. Then it needs staged rollout (canary or blue-green) and rollback capability for when the new model is worse than the old one.

Core concepts

Code, data and model gates

Registry promotion

Staged rollout

Rollback capability

Why it matters

A bad model in production is worse than no model — it makes wrong predictions at scale, erodes user trust and may violate compliance requirements. Release gates catch degraded models before they reach users. Rollback capability means a bad release is a 2-minute fix, not a 2-hour crisis.

How this fits into the system

Each step depends on the previous one — skip a layer and the next becomes fragile.

Build 1

Set up a CI/CD pipeline for your model: code tests → data validation → training → evaluation against a threshold → registry promotion. Then deploy with a canary strategy: route 10% of traffic to the new model, monitor metrics for 10 minutes, and promote to 100% only if metrics hold. Finally, deliberately introduce a regression (lower the evaluation threshold so a bad model passes) and demonstrate rollback to the previous model version.

Input

Releasing a model to production is not a git push — it is a decision that affects real users. A release pipeline needs gates: code tests pass, data validation passes, model metrics meet thresholds, and the model is registered with a version. Then it needs staged rollout (canary or blue-green) and rollback capability for when the new model is worse than the old one.

System

Code, data and model gates
Registry promotion
Staged rollout
Rollback capability

Success condition

A degraded candidate is blocked by your gates before reaching production. If a bad model somehow passes gates, you can roll back to the previous model version within 5 minutes. Your release history shows which model version is serving at any point in time.

Code, data and model gatesRegistry promotionStaged rollout
Difficulty

Common mistake

Promoting models without gates or rollback — treating model deployment like code deployment. A code bug is usually obvious; a model quality regression may be subtle and only visible in specific user segments.

Ready to continue?

You should now be able to:

  • A degraded candidate is blocked by your gates before reaching production. If a bad model somehow passes gates, you can roll back to the previous model version within 5 minutes. Your release history shows which model version is serving at any point in time.

Still unclear? Review: Orchestrate pipelines and infrastructure →

Phase 04

Operate

Observe, govern, detect drift and retrain — the production loop.

08

Monitor services, data and model performance

A deployed ML model has two independent health signals: service health (is the endpoint up, fast and not erroring?) and model quality (is it still making accurate predictions?). Service monitoring catches outages. Model monitoring catches silent degradation — the service is healthy but predictions are wrong because the input data distribution shifted.

How this fits into the system

Each step depends on the previous one — skip a layer and the next becomes fragile.

What to build

Set up monitoring for both layers: service metrics (latency p50/p95, error rate, request volume) with alerts tied to SLOs, and model metrics (input distribution drift, prediction distribution shift, delayed ground-truth comparison when labels arrive). Then inject two failures: a service outage (kill the process) and a model quality regression (shift the input distribution) — and verify that each triggers a different alert with a different response.

Build 1

Set up monitoring for both layers: service metrics (latency p50/p95, error rate, request volume) with alerts tied to SLOs, and model metrics (input distribution drift, prediction distribution shift, delayed ground-truth comparison when labels arrive). Then inject two failures: a service outage (kill the process) and a model quality regression (shift the input distribution) — and verify that each triggers a different alert with a different response.

Input

A deployed ML model has two independent health signals: service health (is the endpoint up, fast and not erroring?) and model quality (is it still making accurate predictions?). Service monitoring catches outages. Model monitoring catches silent degradation — the service is healthy but predictions are wrong because the input data distribution shifted.

System

Service latency and errors
Input change detection
Delayed labels
Useful alerts

Success condition

You can diagnose a service failure (endpoint down, latency spike) separately from a model quality regression (predictions drifting, input distribution changed). Your monitoring distinguishes 'the model is unreachable' from 'the model is reachable but wrong.'

Service latency and errorsInput change detectionDelayed labels
Difficulty

Core concepts

Service latency and errors

Input change detection

Delayed labels

Useful alerts

Tools you'll encounter

Metrics & Logs
PrometheusGrafanaOpenTelemetry
Drift Detection
EvidentlyArizeWhyLabs

Learn the engineering concept first. Tools are implementation choices.

Expected depth

Metrics & Logs
OPERATE
Drift Detection
DEBUG
Evidently
BUILD

Why it matters

Model quality can degrade while the service stays perfectly healthy. No alerts fire. No errors appear. But predictions are wrong — maybe because a feature distribution shifted, a data source changed or the population the model was trained on no longer matches the population it is serving. Without model monitoring, you discover this when a business stakeholder asks 'why did our model start making bad decisions last month?'

Ready to continue?

You should now be able to:

  • You can diagnose a service failure (endpoint down, latency spike) separately from a model quality regression (predictions drifting, input distribution changed). Your monitoring distinguishes 'the model is unreachable' from 'the model is reachable but wrong.'

Still unclear? Review: Test, release and roll back models →

09

Retraining, governance and incident response

Drift detection tells you something changed. It does not tell you the new model will be better. Retraining should be triggered automatically when drift is detected, but promotion to production must pass the same gates as any other release: evaluation against thresholds, comparison with the current model, and operational checks. A newly trained model is a candidate, not a promotion.

How this fits into the system

Each step depends on the previous one — skip a layer and the next becomes fragile.

What to build

Set up a retraining trigger that fires when input drift is detected. The trigger runs a new training job and registers the model as a candidate. Then add a promotion gate: the candidate must beat the current model on held-out metrics AND pass operational checks (latency, memory) before it replaces the production model. If the candidate fails the gate, the current model stays in production and the failed candidate is logged for analysis.

Core concepts

Candidate evaluation

Approvals and auditability

Incident runbooks

Governance policies

Debug this

Automatically promoting newly trained models without evaluation. Drift does not mean the new model is better — it means the old model may be worse. You still need to prove the new one is an improvement before replacing what works.

What would you inspect first?

  • [ Inputs ]
  • [ Config ]
  • [ Pipeline ]
  • [ Environment ]
Reveal reasoning

Start by reproducing the failure with the smallest change. Most retraining, governance and incident response failures come from a mismatch between how the component was built and how it runs in the wider system, not from the core logic itself.

Build 1

Set up a retraining trigger that fires when input drift is detected. The trigger runs a new training job and registers the model as a candidate. Then add a promotion gate: the candidate must beat the current model on held-out metrics AND pass operational checks (latency, memory) before it replaces the production model. If the candidate fails the gate, the current model stays in production and the failed candidate is logged for analysis.

Input

Drift detection tells you something changed. It does not tell you the new model will be better. Retraining should be triggered automatically when drift is detected, but promotion to production must pass the same gates as any other release: evaluation against thresholds, comparison with the current model, and operational checks. A newly trained model is a candidate, not a promotion.

System

Candidate evaluation
Approvals and auditability
Incident runbooks
Governance policies

Success condition

Retraining is triggered automatically by drift, but promotion requires the candidate to pass evaluation and operational gates. A weaker candidate is blocked and the current production model continues serving. You can explain why a retraining run did or did not result in a production deployment.

Candidate evaluationApprovals and auditabilityIncident runbooks
Difficulty

Ready to continue?

You should now be able to:

  • Retraining is triggered automatically by drift, but promotion requires the candidate to pass evaluation and operational gates. A weaker candidate is blocked and the current production model continues serving. You can explain why a retraining run did or did not result in a production deployment.

Still unclear? Review: Monitor services, data and model performance →

Build progression

  1. 01

    REPRODUCE

    Reproducible Training Pipeline

    Version data + code + config into a reproducible run.

  2. 02

    PACKAGE

    Containerized Model API

    Wrap the model artifact in a container behind a FastAPI endpoint.

  3. 03

    AUTOMATE

    Registry + CI/CD

    Promote artifacts through a registry with automated tests and gates.

  4. 04

    OPERATE

    Monitoring + Drift + Retraining

    Observe, detect drift and trigger gated retraining.

  5. 05

    CAPSTONE

    Production MLOps System

    The full loop: data → train → register → serve → monitor → gated retrain.

    Capstone

Production MLOps system

Every node links back to its roadmap stage so you can jump straight to the relevant learning.

Production MLOps systemA layered system map of the production mlops system pipeline.SourcesData LayerTrainingExperimentsRegistryServingCI/CDMonitoringRetraining

Read left to right: each node links back to its roadmap stage for the relevant learning.

How this roadmap changes by background

The full roadmap stays the same — your focus shifts based on what you already know.

Data Scientist

Already has: Python · ML

Focus more on:

Data contracts → Pipelines → Serving → Monitoring

  • • Data contracts, versioning and lineage
  • • Reproducible training and experiment tracking
  • • Choose a serving pattern
  • • Monitor services, data and model performance

DevOps / SRE

Already has: Containers · CI/CD · Monitoring

Focus more on:

ML Lifecycle → Packaging → Serving → Model Monitoring

  • • ML lifecycle and operational foundations
  • • Package models and preprocessing
  • • Choose a serving pattern
  • • Monitor services, data and model performance

Backend / Data Engineer

Already has: APIs · Systems

Focus more on:

ML Lifecycle → Reproducible training → Serving → ML Observability

  • • ML lifecycle and operational foundations
  • • Reproducible training and experiment tracking
  • • Choose a serving pattern
  • • Monitor services, data and model performance

From notebook to production system

The roadmap rewrites a manual, unreproducible workflow into an automated, observable, governed system.

Where you start

  1. Notebook
  2. model.pkl
  3. manual prediction

Where you end

  1. Versioned Data
  2. Training Pipeline
  3. Experiment Tracking
  4. Model Registry
  5. CI/CD
  6. Serving
  7. Monitoring
  8. Retraining

From roadmap to production

Build production MLOps systems with instructor feedback

You have the framework. The View the MLOps syllabus adds what self-study cannot: live instruction, instructor-reviewed labs, production deployment drills and a capstone that proves you can ship and operate — not just understand.

Build the core project from this roadmap with instructor review
Debug production failure modes hands-on with guided feedback
Produce a reviewed portfolio artifact by the end of the track

Fees, schedules and enrolment details are on the course page. No placement, salary or outcome is guaranteed.

Capstone

Build a reproducible ML release pipeline end to end

DataDVC versioning + schema contracts
TrainMLflow tracking + reproducible runs
PackageDocker container + preprocessing
ServeFastAPI endpoint + health check
ReleaseCI/CD gates + canary rollout
MonitorService health + model quality
Broken data contract

A column is renamed in the source — your schema validation rejects it before training runs on wrong data.

Degraded candidate model

A retrained model scores worse than the current one — your evaluation gate blocks it from production.

Service outage

The serving endpoint goes down — your monitoring detects it, alerts fire and rollback restores the previous version.

What you deliver

A reproducible training pipeline, a containerized serving endpoint, a CI/CD pipeline with evaluation gates, a monitoring dashboard, and a runbook covering the three failure scenarios. This is what an MLOps interviewer wants to see — not "I installed MLflow," but "I built a pipeline that catches bad models before they reach users and recovers when things break."

Take MLOps further

Go from understanding the framework to building production systems with feedback

StageThis roadmap (free)MLOps course adds
Data + TrainingSelf-guided DVC + MLflow setupGuided pipeline labs with instructor-reviewed experiment tracking
Packaging + ServingBuild Docker + FastAPI yourselfAWS SageMaker deployment with instructor feedback on your container
CI/CD + MonitoringSet up gates and dashboards independentlyDeployment drills with failure injection and rollback practice
CapstoneNo feedback on your workReviewed capstone with instructor feedback on your pipeline and runbook

You have the nine-stage framework — data contracts, reproducible training, packaging, serving, orchestration, CI/CD, monitoring and retraining. SCAI's 5-month live MLOps course helps you build it for real: data pipelines, distributed training, model release, drift detection and an AWS SageMaker deployment with instructor feedback at every step.

Ready to build production ML systems with instructor feedback?

Explore the MLOps course

FAQ

MLOps Roadmap — Frequently Asked Questions

Direct answers for engineers and hiring leads on building, transitioning into and operating ML systems in production.

I am a data scientist — what do I need to learn to move into MLOps?

You can build the model; the missing half is everything that happens after model.fit(). Notebooks do not survive contact with production: they run on your laptop, depend on your local Python, and nobody can reproduce the run that produced your "best" model. Learn four things in this order:

1. Docker — ship the model + preprocessing together so it runs identically on your laptop, CI and production.
2. MLflow — log every run's params, metrics and artefact so any result is reproducible and traceable.
3. CI/CD (GitHub Actions) — automate training, tests and deployment so a merge does not silently change behaviour.
4. Monitoring — track drift and prediction quality after release, because a model that scored 0.93 at training can be 0.71 in production two months later and you will not know unless you measure.

You do not need to become a Kubernetes admin. This roadmap is built around exactly that gap. Use the start-path selector above to enter at data contracts and versioning.

I am a DevOps or SRE engineer — can I move into MLOps, and what do I need to add?

Yes. CI/CD, containers, IaC, monitoring, rollback, alerting: already in your toolkit. The missing layer is ML literacy, and it is the part that will quietly break your pipelines if you skip it.

The three things that trip up DevOps engineers:
1. A model is not deterministic code. The same build can produce different behaviour because the data changed. Your standard "green build = safe to deploy" mental model does not hold.
2. You need to read a confusion matrix, understand precision vs. recall, and know what data leakage looks like — not to build models, but to reason about why a deployed model degraded.
3. Evaluation gates are not unit tests. A candidate model must beat the current production model on held-out data, not just pass a correctness check.

Add: data validation (schema + distribution checks), MLflow for experiment tracking, and model evaluation gates. The MLOps layer on top of your existing skills is thin — but it is the thin layer that makes or breaks production ML. Use the start-path selector above — you can enter at serving patterns.

I am a software engineer with no ML background — can I learn MLOps directly?

Yes, but not by skipping ML literacy. You do not need to design neural networks — you need enough ML understanding to treat a model as a deployable artefact that behaves differently from code.

Five concepts before the build stages: (1) training vs. inference (a model learns weights, then uses them — it is not "run the function"); (2) metrics — accuracy, precision, recall, AUC, and why accuracy alone lies on imbalanced data; (3) overfitting — a model that memorises training data and fails on new data; (4) data leakage — when test data sneaks into training and inflates your score; (5) why a model that scored 0.95 in the notebook can score 0.70 in production (distribution shift).

Budget the time these five concepts take rather than a fixed number of weeks — being comfortable reading an evaluation report is the readiness signal, not a calendar. The MLOps skills themselves — pipelines, serving, monitoring — are closer to DevOps than to ML. Skip the literacy step and you will build pipelines that look correct but miss every real failure mode.

What does an MLOps engineer actually do day to day?

Closer to platform engineering for ML than to model research. A typical week breaks into four buckets:

Pipeline work (~40%) — maintain data validation, training, packaging and deployment. A scientist hands you a notebook; you turn it into a reproducible, tested pipeline that runs on schedule and produces a registered model.
Incidents (~25%) — a drift alert fires at 2am: investigate, decide rollback vs. retrain, write the runbook so the next on-call does not debug from scratch.
Collaboration (~20%) — review data scientists' code for leakage, help them log experiments properly, ship their model behind a versioned API.
Reliability improvements (~15%) — add evaluation gates, improve monitoring coverage, tighten the rollback path.

If you want to build novel models, that is an ML Engineer role. MLOps is the engineering that makes those models reliably reach and stay in production.

How is MLOps different from DevOps — and from ML Engineering?

Three roles, one artefact, different halves of its life:

DevOps ships deterministic code. Same build → same behaviour. CI/CD, IaC, rollback. The artefact does not change after deploy.
ML Engineering builds the model — features, validation strategy, serving contracts, model architecture. The artefact is the model itself.
MLOps ships a model that depends on data, and the data drifts. So MLOps adds three things DevOps does not need: data validation (schema + distribution checks before training), evaluation gates (candidate must beat the current model on held-out data, not just pass tests), and model monitoring (track prediction quality, not just service health).

In small teams one person does all three. In larger teams they split: ML Engineers build models, MLOps engineers make them reach and stay in production, DevOps owns the underlying platform.

What tools should I learn first in MLOps?

Five, in this order — each maps to one lifecycle stage:

1. DVC — version your datasets and preprocessing the way Git versions code. Without this, "retrain on the latest data" is not reproducible.
2. MLflow — log params, metrics and the model artefact for every run, and keep a model registry. This is how you prove which run was best.
3. Docker — package the model + preprocessing together so it runs identically in dev, CI and prod.
4. FastAPI — serve the containerised model behind a REST endpoint with a /health check.
5. GitHub Actions — wire training, tests, evaluation gates and deployment into a pipeline that runs on every merge.

Add Prometheus + Grafana for monitoring once something is in production. Do not start with Kubernetes — it is the most over-prescribed tool in MLOps and will cost you weeks before you need it. Airflow and feature stores come later, only when a real problem demands them.

Is Kubernetes required for MLOps?

No. Containers — yes, because the model and its preprocessing must ship together. Kubernetes — no, unless you have a specific reason.

Most production ML systems run on a managed service (AWS SageMaker, GCP Vertex AI, Azure ML) or even a single beefy host. Reach for Kubernetes only when you hit one of: distributed training that one machine cannot handle, multi-tenant serving with autoscaling, or shared GPU infrastructure across teams.

Rule of thumb: if your model trains in under an hour on a single machine and serves under 100 QPS, Kubernetes is overhead you do not need. Adding it before you need it will slow your delivery more than it helps — you will spend more time on cluster YAML than on the model.

Do I need a feature store?

Only when you have a specific problem it solves. A feature store adds real infrastructure cost — do not adopt one on FOMO.

You need one when:
• Multiple teams share feature definitions and you are tired of three teams recomputing the same feature three different ways.
• You serve in real time and need online/offline consistency (the feature value at serving time must match what was used in training).
• You need point-in-time correctness for training (avoiding future leakage into historical features).

For a single model or a small team, versioned datasets (DVC) plus a preprocessing pipeline packaged inside the model container are enough. Adopt a feature store when the pain of not having one is concrete, not because a conference talk made it sound modern.

What is data drift and how do I detect it?

Data drift = the input distribution changed between training and production. The world moved; your model did not. A churn model trained on 2024 customer behaviour starts mispredicting in 2026 because usage patterns shifted — the code is fine, the data is not.

Detect it three ways:
1. Feature-level statistical tests — KS test or Population Stability Index (PSI) on each feature; flag when a feature's distribution shifts beyond a threshold.
2. Prediction distribution shift — if the model's output distribution changes (e.g. suddenly 30% more "churn" predictions), inputs likely shifted.
3. Embedding distance — for text/image inputs, track distance between production embeddings and a reference set.

Tools: Evidently and WhyLabs compute these automatically and generate reports. Drift is a signal to investigate and retrain a candidate — not to auto-promote a new model.

Should drift automatically trigger a new production model?

No. This is the single most expensive mistake in MLOps.

Drift means the data changed. It does not mean a model retrained on the new data will be better — it might overfit to a temporary shift, or the new data might be noisy.

Split it:
• Auto-trigger candidate retraining — yes. Run the pipeline, produce a candidate, log it.
• Auto-promote to production — no. The candidate must pass evaluation gates first: held-out metrics against a fixed test set, head-to-head comparison with the current production model, and operational checks (latency, memory, footprint).

Auto-retrain + auto-promote causes silent quality oscillation: the model flips between versions every few hours, nobody can explain why, and the team stops trusting the pipeline. Gate the promotion; automate the candidate.

What is the difference between service monitoring and model monitoring?

Two layers, two different questions. You need both.

Service monitoring asks: "is the endpoint alive and fast?" — CPU, memory, latency, error rate, pod restarts. This is standard DevOps monitoring (Prometheus + Grafana). It catches a crashed pod or a memory leak.

Model monitoring asks: "are the predictions still correct?" — input drift, prediction distribution shift, and delayed ground-truth comparison once real labels arrive. This is MLOps-specific. It catches a model that is happily serving 200ms responses that are silently wrong because the input data shifted last month.

The trap: a model can be perfectly healthy as a service and wrong as a predictor. Service monitoring alone will never catch silent model degradation. Model monitoring alone will never catch a crashed pod. Run both; wire both to alerting.

As an MLOps lead, what do I look for when hiring an MLOps engineer?

Three signals, in priority order. Tool names are teachable in a week; judgement about ML in production takes months — hire for the judgement.

1. A built pipeline, not installed tools. "I set up MLflow" tells me nothing. "I built a pipeline that catches a bad model before it reaches users and rolls back when serving breaks" tells me everything. I ask: "walk me through what happens when a data contract breaks at 2am." If they can narrate detect → alert → rollback → investigate → fix without hand-waving, they have run production ML.

2. Failure reasoning. I ask about three scenarios: a candidate model regresses on the gate, the serving endpoint OOMs, ground-truth labels are delayed two weeks. Can they reason through each, or do they freeze?

3. ML literacy. Can they read a confusion matrix, explain precision vs. recall trade-off, and say why a model degrades in production? They do not need to build models — they need to reason about the ones they ship.

How long does it take to learn MLOps, and what should I learn after this roadmap?

Indicative timeline: For someone with Python, Git and basic model training/evaluation, allow about 10–12 weeks at 8–10 hours per week to complete the roadmap builds and capstone. If you need those foundations first, budget additional preparation time; the amount varies by starting point. Completing this self-study roadmap is not a guarantee of job readiness and is not equivalent to the separate five-month live programme.

What to build: one capstone — a reproducible training pipeline, a containerised serving endpoint, a CI/CD pipeline with evaluation gates, a monitoring dashboard, and a runbook for three failure scenarios. That artefact is worth more on a CV than any certificate.

Where to go next:
• Deeper model development — feature engineering, validation, serving contracts → ML Engineer roadmap
• LLM-specific operations — prompt versioning, LLM evaluation, token cost → LLMOps roadmap
• AI-assisted incident detection → AIOps roadmap
• Structured practice with instructor feedback and a reviewed capstone → SCAI's MLOps course covers the full lifecycle live.