CourseAI / ML Engineer: The Complete Course · Module 10: MLOps · part 61 of 93
Part 61 · Module 10: MLOps

Lesson 1: A pipeline, a registry and gates that say no

30 min read·
Module 10 · Lesson 1 · About 55 minutes · Needs: Prefect flows and tasks (Module 5 lesson 1), the data contract and DVC (Module 5 lesson 3), MLflow runs and rebuilding from a commit (Module 6 lesson 1), prepare (Module 9 lesson 2) and the Kestrel data (course-guide/06).

The situation

Week 10 at Kestrel. Adaeze: "Someone retrains by hand and the newest file wins. I want a pipeline, a registry that knows what is live, and gates that can say no. And can you reproduce last month's model exactly?"

One run goes through the lesson: the training flow on the morning of Monday 28 September 2026 (simulated data). It trains on parcels shipped before 7 September, registers version 3 of kestrel-late-risk, and asks whether it may replace the champion, version 1, trained two weeks earlier.

WHERE THIS FITS The Kestrel system this lesson SHARED SERVICES Depot scans parcels, routes Ingestion nightly batch Validation Pandera checks Data lake Parquet, DuckDB Experiments MLflow runs Training LightGBM, Optuna Online store Feast, Redis Features point in time Gates vs the champion Registry staged versions Serving API FastAPI, ONNX Consumers vans, customers Retraining trigger, budget Alerting on call Monitoring drift, Evidently Late labels a day later Orchestrator Prefect flows Versions DVC, Git CI/CD GitHub Actions Containers Docker images
This lesson turns training into a flow with gates and a registry, tied to code and data versions (blue); the rest of Kestrel is grey for now.

The rest of this course is yours to keep

This course is bought on its own, once, and stays readable afterwards, including the parts added to it later.

Or open everything with a plan