Build reproducible machine-learning environments: pinned dependencies, a trainable script, persisted models and a run entrypoint. The second lab adds a Flask serving API with health and prediction endpoints; the third versions a dataset with DVC; the fourth restores a dataset from the DVC cache and remote; the fifth logs an MLflow experiment and registers its model; the sixth deploys a model-serving workload on Kubernetes; the seventh containerizes a Streamlit dashboard; the eighth containerizes a FastAPI inference API; the ninth hosts a model API on an EC2 VM with Nginx, Gunicorn and systemd; the tenth deploys a KServe InferenceService; the eleventh adds an HPA for the serving workload. The rest of the path is being written.
Beginner20 min
MLOps: Core Principles and Why Models Fail
Write a document covering the MLOps pillars, the gap between data science and production, and common reasons models fail after deployment. Graded against the document on disk.
Activities0102030 of 3 activities complete
Beginner20 min
MLOps: Map the Model Lifecycle
Write a lifecycle map from data collection to monitoring and a failure report that names detection, mitigation and prevention. Graded against the two documents.
Activities01020 of 2 activities complete
Intermediate20 min
MLOps: A Reproducible Training Package
Pin the dependencies, write a training script that reads the dataset, persist the model, and add a run script.
Activities010203040 of 4 activities complete
Intermediate25 min
MLOps: Serve a Model Behind a Health Endpoint
Create a virtual environment, pin Flask, then write a serving API with /health and /predict, a container image that exposes port 8000 and a run script. The install is graded in the venv; the API is graded on the files it defines.
Activities01020304050 of 5 activities complete
Intermediate25 min
MLOps: Version a Dataset with DVC
Initialise DVC, add data.csv to its cache, configure a storage remote and push the object. Graded against .dvc/config, data.csv.dvc and the remote object store.
Activities010203040 of 4 activities complete
Intermediate25 min
MLOps: Restore a Dataset from Cache and Remote
The working copy is gone but the DVC cache and metadata are present. Check out the data, configure the remote, push the object, delete the cache and pull it back. Graded against the working copy, cache and remote state.
Activities010203040 of 4 activities complete
Intermediate30 min
MLOps: Track an Experiment with MLflow
Create a venv with MLflow installed, write a training script that opens a run, logs parameters, metrics and an artifact, registers the model, and leave a run script that points MLflow at a local tracking store. Graded against the installed packages and the files.
Activities01020304050 of 5 activities complete
Intermediate30 min
MLOps: Serve a Model on Kubernetes
Declare a two-replica model-serving Deployment, inject MODEL_PATH from a ConfigMap, expose it through a Service on port 80 and apply all three. Graded against the Kubernetes object state.
Activities01020304050 of 5 activities complete
Intermediate25 min
MLOps: Containerize a Streamlit Dashboard
Write a Dockerfile for the Streamlit dashboard, build and tag the image with port 8501 exposed, confirm the start command, and run it as streamlit-app with host port 8501. Graded against the Docker daemon state.
Activities010203040 of 4 activities complete
Intermediate30 min
MLOps: Containerize a FastAPI Inference API
Write a FastAPI app with /health and /predict, containerize it with Uvicorn on port 8000, build the image and run it as fastapi-app. Graded against the API files and Docker daemon state.
Activities01020304050 of 5 activities complete
Advanced35 min
MLOps: Deploy a Model API on a VM
Provision a public web security group and a tagged EC2 instance, then configure the VM's Gunicorn unit, Nginx reverse proxy and systemd services. Graded against the AWS store and the sandbox service state.
Activities01020304050 of 5 activities complete
Advanced30 min
MLOps: Serve a Model with a KServe InferenceService
Write a KServe InferenceService for churn, point it at the model artifact, set the sklearn runtime, apply it with kubectl and verify the applied CRD fields. Graded against the KServe object state.
Activities010203040 of 4 activities complete
Advanced30 min
MLOps: Autoscale a Model API with an HPA
Deploy the churn-api workload, declare a HorizontalPodAutoscaler targeting it, and set 2-5 replicas with a 70% CPU target. Graded against the Kubernetes and HPA object state.
Activities01020304050 of 5 activities complete
Intermediate30 min
MLOps: Engineer Features for a Training Set
Create a venv with pandas and scikit-learn, write a feature-engineering script that splits the data, scales the feature and writes features.csv, and leave a run script. Graded against the environment and files.
Activities010203040 of 4 activities complete
Intermediate25 min
MLOps: Write a Model Card and Governance Gate
Document the model's intended use, limitations, metrics and owner, then define the roles and approval gate that move it from experimentation to operations.
Activities01020 of 2 activities complete
Intermediate25 min
MLOps: make the training run reproducible in a container
A pinned requirements file on your laptop is not reproducibility — the laptop is the variable. Pin the environment, put the training run in an image, and build that image so anyone can run the same job. Graded against the files and the image store.
Activities0102030 of 3 activities complete
Intermediate25 min
MLOps: gate the dataset with a feature schema
A feature pipeline that silently accepts bad data produces a model that silently fails. Declare the schema, write a validator that exits non-zero when the data violates it, and wrap it in a run script. Graded on the contract and the validator.
Activities0102030 of 3 activities complete
Beginner20 min
MLOps: write the model card and the lineage record
A model without paperwork cannot be audited, rolled back or defended. Write the model card a reviewer needs, and the lineage record that says which data and which run produced this artefact. Graded on the required fields.
Activities0102030 of 3 activities complete
Intermediate25 min
MLOps: promote the better MLflow run
Tracking is only useful if it changes a decision. Query the experiment, pick the run with the best accuracy, and register that run as the model — instead of shipping whichever notebook was open last.
Activities0102030 of 3 activities complete
Intermediate25 min
MLOps: validate input before the model sees it
A model that raises a stack trace on bad input is not an API. Give /predict a typed contract, return 422 for a violation instead of a 500, and pin that behaviour with a contract test.
Activities0102030 of 3 activities complete
Advanced25 min
MLOps: blue/green release on a VM
Two units run side by side: the stable model on 8000 and the candidate on 8001. Bring the candidate up, prove it is healthy, then move Nginx's upstream to it — a release you can undo by editing one line. Graded on service state and the proxy config.
Activities0102030 of 3 activities complete
Advanced25 min
MLOps: canary a model with two Deployments
Run the stable model and the candidate side by side, then point the Service at the candidate by changing one label. Rollback is the same edit in reverse — no rebuild, no redeploy.
Activities0102030 of 3 activities complete