Part 6 of the free Linux for DevOps course: why you should never log in as root, why every user is really a number, how to create a user with useradd, set its password with passwd, add it to groups with usermod -aG, read the user database in /etc/passwd and /etc/group, and run a command as anyone with sudo -u.
Part 5 of the free Linux for DevOps course: count lines with wc, group and count duplicates with sort and uniq, cut a slice out of a huge file with sed, pull columns and sums out of text with awk, and chain them all together with the pipe to turn 200,000 log lines into one clean answer.
Part 4 of the free Linux for DevOps course: create a file with touch, edit it in nano and actually get back out, print it with cat, read just the top or bottom with head and tail, add lines with >>, and find the one line that matters with grep.
Part 3 of the free Linux for DevOps course: the map of a Linux system — what /etc, /var and /home are really for — plus pwd, ls -la, cd, mkdir -p, touch, cp, mv, rm, find and head/tail, with the mistakes that catch every beginner.
Part 2 of the free Linux for DevOps course: what Linux actually is, the difference between a kernel and a distro, why cloud VMs, containers, CI runners and Kubernetes nodes are all Linux, how you reach a server with SSH, and the three commands to run on any machine you've never seen.
Part 1 of the free Linux for DevOps course: why more than 9 out of 10 cloud servers run Linux, what kernel, distro and shell really mean, how to install Ubuntu on Windows (WSL) or Mac (Multipass) in five minutes, and your first commands — plus the full 18-lesson roadmap.
The finale: assemble the whole series — FastAPI, Docker, GitHub Actions, ECR, Terraform, EKS, MLflow, Prometheus/Grafana, and drift-triggered retraining — into one platform, and trace a change from git push to a promoted model serving traffic. Part 11 of the MLOps series.
A model can fail with no code change at all: the world moves on and your frozen model goes stale. Detect data and concept drift with a KS test, and build a retraining pipeline that only ships a new model if it beats the current one. Part 10 of the MLOps series.
A running model you can't see is one you can't trust. Add a real /metrics endpoint, scrape it with Prometheus, chart it in Grafana, and alert on latency, errors, and the shape of your predictions. Part 9 of the MLOps series.
Stop building infrastructure by hand. Provision the VPC, EKS cluster, ECR, S3, and the GitHub OIDC role with Terraform — reproducible, reviewable, and easy to destroy on demand. Part 8 of the MLOps series.
Take the inference container to a real cluster: Deployments, Services, Ingress, ConfigMaps, Secrets, and an HPA — with the readiness probe we've been building since part two finally doing its job. Part 7 of the MLOps series.
Git tracks your code and MLflow tracks your models, but which dataset trained which model? DVC versions data the way Git versions code: a tiny pointer in Git, the bytes in S3. Hands-on init, add, remote, push, pull. Part 6 of the MLOps series.
Stop overwriting model.joblib. Track every experiment's params and metrics, register versions, and promote by a champion/challenger gate with MLflow, so 'which model is in production, and is it actually better' has an answer. Part 5 of the MLOps series.
Automate the gate: test the model API, build the image, scan it for CVEs with Trivy, and push to Amazon ECR — with OIDC instead of long-lived keys and the git SHA as an immutable image tag. Part 4 of the MLOps series.
Package the model, the exact scikit-learn version, and the API into one image that runs the same everywhere. Multi-stage builds, a lean non-root image, .dockerignore, and Docker Compose. Part 3 of the MLOps series.
Turn a model artifact into a real prediction API — request validation with Pydantic, automatic Swagger docs, real-time vs batch inference, and a Docker-ready project structure. Part 2 of the MLOps series.
MLOps explained for DevOps engineers — what it is, why plain DevOps isn't enough for ML, and a hands-on look at training vs inference using a real scikit-learn model. Part 1 of an 11-part series.
Design and deploy a production-grade 3-tier web app on AWS with Terraform, ECS Fargate, RDS Multi-AZ, and a GitHub Actions CI/CD pipeline. The complete build, the reasoning, and the repo you can run yourself.
The exact order to learn DevOps in 2026 — Linux, Git, Docker, CI/CD, cloud, Terraform, Kubernetes, and monitoring — and the mistakes that keep beginners stuck.