Course 1 of 7 · The deployment/infra track

Containers & Local Dev, from newcomer to interview-ready

The foundation the whole deployments/ stack stands on — anchored to the local stack you run every day.

You asked to cover all of this repo's deployment domain — Kubernetes, Helm, Istio, runners, monitoring, Terraform. That's seven courses (see the plan below). This is Course 1, and it comes first for one reason: every one of those tools ultimately builds, ships, runs, or orchestrates a container. Get the container right and the rest has something to stand on.

Unlike the Airflow course (adjacent-team code), this one is grounded in files you touch daily — local/Dockerfile.development, local/docker-compose.*.yaml, local/run.bash. Two parts, built one at a time. Lessons are short — one win each. Read them in order.

How to use this Do one lesson, take its quiz from memory (no peeking), then skim the matching row of the cheat sheet. Come back a day later and re-take it — spacing beats cramming. Your sixth course; you know the rhythm. Stuck? Ask me — I'm your teacher, not just the author.

Part 1 — Containers & Docker available now

What a container actually is, how images are built, and how you run and wire them.

1 · What a container is (vs a VM)

Isolated process, not a machine — namespaces, cgroups, and the shared kernel.

ready

2 · Images, layers & Dockerfiles

The read-only template, why layers are cached, and this repo's multi-stage build.

ready

3 · Running containers

Ports, volumes (named vs bind), env vars, networks — and debugging one that won't start.

ready

4 · Docker Compose & multi-service stacks

One YAML, many containers — depends_on, healthchecks, and the repo's stack.

ready

Part 2 — This repo's local dev & the env×org model available now

From "a container" to "the whole backend running locally" — and the on-ramp to Kubernetes.

5 · The env × org model

Environment × organisation → namespaces & {env}-{org}-values.yaml.

ready

6 · The two local stacks

docker-compose (run.bash) vs kind+Skaffold (sk.bash) — when each.

ready

7 · Skaffold: build, render, deploy

How skaffold.*.yaml composes and hydrates the manifests.

ready

8 · The local dev loop

Code → binary → hot-swap into a running container (modd + docker cp).

ready

The 7-course deployment track

Decided this session, after surveying deployments/, local/ and .github/. Ordered bottom-up.

#CourseCovers
1Containers & Local Dev ← hereDocker, images/layers, Compose, the local stacks, env×org
2KubernetesPods, Deployments, Services, KEDA, HPA/VPA/PDB, the objects Helm renders
3Helm~106 charts, the shared library chart, values layering, SOPS secrets
4Istio & Service MeshVirtualServices, EnvoyFilters, the ingress gateway
5CI/CD & Delivery~99 GitHub workflows, trunk-based deploy, ARC runners, binary authorization
6Observability & MonitoringPrometheus, Grafana, Thanos, Jaeger, OTel, Kiali, Grafana OnCall
7Infrastructure as CodeTerraform (~34 modules), GCP (GKE/Cloud SQL/VPC/IAM/KMS), Workload Identity

Reference shelf

Cheat sheet

Dense revision sheet + interview one-liners.

Glossary

The canonical vocabulary, opinionated.

Repo map

Ground truth: Dockerfile, compose files, run.bash, sk.bash.

Resources

Docker, OCI, Compose, Skaffold, kind — official docs.

The full course is built — all 8 lessons across both parts. Course 1 is complete: you can define a container, build and run one, wire many with Compose, and explain this repo's env×org model, its two local stacks, Skaffold, and the hot-swap dev loop. Next: Course 2 (Kubernetes) picks up where the kind + Skaffold stack leaves off. Or — six courses built and still no retention check — ask me to run a mock interview and I'll record where you're solid.