Docker & Kubernetes
Docker made 'runs on my machine' close to a solved problem; Kubernetes made 'runs on ten thousand machines' a solved problem — at the cost of considerable complexity. Both belong in a modern backend engineer's toolkit, but the honest answer to 'do I need Kubernetes?' is usually 'not yet'. This track treats them as two separate tools: Docker is nearly always the right answer for packaging, while Kubernetes is the right answer specifically when you have enough services and enough traffic to justify a control plane. Use each where it earns its keep.
What this track covers
Writing production-quality Dockerfiles (multi-stage builds, non-root users, minimal base images), Docker Compose for local development, container image security basics, then Kubernetes fundamentals — Pods, Deployments, Services, Ingress, ConfigMaps and Secrets, resource requests and limits, horizontal pod autoscaling, and the operational patterns (rolling updates, readiness probes) that make a Kubernetes deployment actually reliable.
Who this is for
Backend engineers who need to containerise a service for production, and platform engineers running a shared cluster that product teams deploy into.
Prerequisites
- Comfortable on the Linux command line
- Basic understanding of processes, ports and TCP
- Have built and shipped at least one HTTP service
- YAML familiarity — Kubernetes is YAML-dense
Recommended learning order
// beginner
Start with Dockerizing a Spring Boot application (or the FastAPI equivalent), then Docker Compose for a multi-service local stack (app + database + cache). You should be able to reproduce the entire environment on a new laptop in one command.
// intermediate
Move to Kubernetes basics — deploy a single service, expose it, set resource limits, wire in a config map. Then add ingress, TLS and a horizontal pod autoscaler. Study readiness and liveness probes carefully — this is where most first-time Kubernetes users lose availability.
// advanced
Multi-cluster topology, service mesh (Istio or Linkerd) when you actually need mTLS and traffic splitting, GitOps with Argo CD or Flux, and cluster-level cost and capacity planning. At this stage Kubernetes fades into the substrate and platform-team concerns dominate.
Common mistakes to avoid
- Running containers as root because it 'just works' locally
- Copying node_modules or the target/ folder into the image instead of building inside a multi-stage image
- No resource requests or limits on Kubernetes Pods — one runaway service starves every other Pod on the node
- Confusing liveness with readiness probes and getting Pods killed in a restart loop under load
- Reaching for Kubernetes before Docker Compose or a single VM has stopped being enough — the operational cost is real
Career relevance
Kubernetes fluency is now the default expectation for senior backend and platform roles at any company running more than a handful of services. Docker alone is table-stakes for every backend role — assume any team using Docker will expect you to be productive in it on day one.
Featured tutorials in this track
Scaling Java Microservices on AWS EKS with Terraform and Horizontal Pod Autoscaling
A production guide to scaling Spring Boot microservices on Amazon EKS using Terraform for infrastructure and Horizontal Pod Autoscaling for elastic capacity — with metrics, cost tips and CI/CD integration.
Dockerizing a Spring Boot Application: The Right Way
Build small, fast and secure Docker images for Spring Boot using multi-stage builds, layered jars and JVM container tuning.
Kafka & ZooKeeper Docker Setup — Quick Deploy Guide
Spin up a local Kafka cluster with ZooKeeper in 60 seconds using docker-compose, ready for Spring Boot integration.
Kubernetes Basics for Java Developers
Everything a backend developer needs to know about Kubernetes — Pods, Deployments, Services, Ingress and ConfigMaps — explained with a Spring Boot example.
Deploy Spring Boot to Kubernetes with a Helm Chart
Package a Spring Boot service as a reusable Helm chart with values for env, replicas, probes and HPA.
